{
    "schema_version": 3,
    "name": "BlaBlaPrice баға индексі, Қазақстан: 2026 жылғы қараша",
    "country": "kz",
    "country_name": "Қазақстан",
    "lang": "kk",
    "month": "2026-11",
    "period": {
        "from": "2026-11-01",
        "to": "2026-11-30"
    },
    "currency": "KZT",
    "min_samples": 5,
    "min_model_samples": 3,
    "min_service_unit_samples": 3,
    "schema_changes": {
        "2": "H-023: model level added (fields level, model, brand, model_key, model_samples, model_shops, used, product_id; the models list of each category row; models_count, other_samples, models_note). The version 1 fields keep their names and meaning; a category row reads as before.",
        "3": "H-026: goods and services (fields kind, unit_code, variant, unit_samples, unit_shops; the units list of each category row with level \"unit\" rows; units_count, units_note, unit_label). Goods keep their models; a service has no models (models empty, models_note null) and is grouped by price unit instead, from 3 prices a unit, its category row being its most usual unit. The version 1 and 2 fields keep their names and meaning; ?level=category in the CSV gives the same category lines as before."
    },
    "updated_at": "2026-11-05T22:03:33Z",
    "generated_at": "2026-11-05T23:16:04Z",
    "refresh_hours": 6,
    "html": "https://blablaprice.com/kz/kk/site/price-index/pirsing",
    "csv": "https://blablaprice.com/kz/kk/site/price-index.csv?category=pirsing",
    "license": "https://creativecommons.org/licenses/by/4.0/",
    "creator": "BlaBlaPrice (EVERLOGIC LLC)",
    "months_available": [
        "2026-11"
    ],
    "fields": [
        "country",
        "lang",
        "month",
        "category_slug",
        "category_name",
        "p25",
        "median",
        "p75",
        "currency",
        "samples",
        "updated_at",
        "unit",
        "shops",
        "requests",
        "level",
        "model",
        "brand",
        "model_key",
        "model_samples",
        "model_shops",
        "used",
        "product_id",
        "kind",
        "unit_code",
        "variant",
        "unit_samples",
        "unit_shops"
    ],
    "field_docs": {
        "country": "country code of the site folder (ISO 3166-1 alpha-2, lower case; \"ua\" = Ukraine, \"us\" = the site root)",
        "lang": "language of category_name (ISO 639-1)",
        "month": "calendar month of the observations, YYYY-MM",
        "category_slug": "address of the category page on this country's site, relative to the country folder",
        "category_name": "category name in lang",
        "p25": "25th percentile of the observed prices (a quarter of the prices are lower), in currency, rounded to 2 significant digits",
        "median": "median (50th percentile) of the observed prices, in currency, rounded to 2 significant digits",
        "p75": "75th percentile of the observed prices (three quarters are lower), in currency, rounded to 2 significant digits",
        "currency": "ISO 4217 code; prices in other currencies are not converted, they are left out",
        "samples": "number of distinct prices behind the row (a goods category at least 5, a service unit at least 3)",
        "updated_at": "time of the newest price in the row, ISO 8601, UTC",
        "unit": "on a category row: price unit when sellers quote per unit (per hour, per m2), as the source wrote it, empty = a whole item or job; on a unit row (level \"unit\"): the unit code, the same as unit_code",
        "shops": "number of distinct sellers (web sites or BlaBlaPrice accounts) behind the row",
        "requests": "number of distinct buyer requests whose web search or offers gave the prices; a small number means the row rests on few searches",
        "level": "\"category\" for a row of all the category's prices, \"model\" for the prices of one model inside a goods category (schema_version 2), \"unit\" for the prices of one unit inside a service category (schema_version 3); in JSON the model rows are in the category row's \"models\" list and the unit rows in its \"units\" list, in CSV they follow their category row",
        "model": "model without the brand, as most shops write it, taken from the shop's product title: series and code, plus the memory or capacity when the title gives it (\"iPhone 14 Pro 256GB\", \"TDLRB 65242BS\"); empty on a category row",
        "brand": "brand named in the title, or the only brand that makes the product line in it (iPhone: Apple, Galaxy: Samsung, Redmi and Poco: Xiaomi); empty on a category row",
        "model_key": "stable key of the model: Latin letters, digits and hyphens, brand first, \"-used\" at the end for used or refurbished goods (\"apple-iphone-14-pro-256gb-used\"); empty on a category row",
        "model_samples": "number of distinct prices of the model (at least 3); equals samples on a model row, empty on a category row",
        "model_shops": "number of distinct sellers of the model; equals shops on a model row, empty on a category row",
        "used": "true when the shops' titles say used or refurbished (б/у, б/в, вживаний, refurbished, \"хороший стан\"); such goods are a model of their own; false = not said to be used; empty on a category row",
        "product_id": "ID of the matching product card of the BlaBlaPrice catalog when the brand and the model match one, else empty (cards are not created from shop titles)",
        "models": "JSON only: the category's model rows, more prices first; empty when no model has 3 prices",
        "models_count": "JSON only: number of models shown for the category",
        "other_samples": "JSON only: prices of the category not in a shown model (no clear model in the title, or fewer than 3 prices of that model); they are in the category row, not in a model",
        "models_note": "JSON only: why the category has no model rows yet, in lang; null when it has some",
        "name": "JSON model rows only: brand and model as the page shows them",
        "label": "JSON model and unit rows: the model with the used mark, or the service with its unit (\"Maths tutors: prices per hour\"), in lang",
        "kind": "\"goods\" or \"service\" (schema_version 3). Goods are grouped by model, services by price unit: a service has no models. Worked out once per country, not per page: the kind the request reader gave the category's requests (two thirds agreeing), else per-hour prices, else the category's name, else its section of the tree",
        "unit_code": "service rows: the unit of the price, a stable code: hour, lesson, visit, m2, m3, lm (running metre), kg, pack, t, l, or service = the source names no unit (a price for the whole service). Taken from the price's own unit or a unit the seller's title states outright (\"1 lesson\", \"per hour\"), never guessed; on a service category row the code of its first unit; empty for goods",
        "variant": "service rows: the variant every price of the unit names in its title: group, individual, online, or several joined with \"+\"; empty when the titles name none or differ (then see variants)",
        "unit_samples": "service rows: number of distinct prices of the unit (at least 3); on a category row those of its first unit; empty for goods",
        "unit_shops": "service rows: number of distinct sellers of the unit; empty for goods",
        "units": "JSON only: a service category's unit rows, more prices first, never mixed; empty for goods",
        "units_count": "JSON only: number of units shown for the category",
        "units_note": "JSON only: why a service category has no unit row yet, in lang; null otherwise",
        "unit_label": "JSON service rows only: the unit as the page says it, in lang (\"за годину\", \"per lesson\")",
        "variants": "JSON unit rows only: how many prices of the unit name each variant in their titles",
        "variant_label": "JSON unit rows only: the variant in lang"
    },
    "methodology": {
        "source": {
            "term": "Дереккөз",
            "text": "BlaBlaPrice іздеуі Қазақстанда сатып алушылардың сұраныстары үшін тапқан дүкендер мен сатушылар сайттарындағы бағалар. Оларға BlaBlaPrice-тағы сатушылар ұсыныстарындағы және сатушылар жүктеген прайстардағы бағалар қосылады. Тест аккаунттары есепке алынбайды. BlaBlaPrice айына бір рет елдегі интернет-дүкендердің бағаларын да жинайды."
        },
        "period": {
            "term": "Кезең",
            "text": "Бір күнтізбелік ай: 2026 жылғы қараша. Баға оны іздеу тапқан немесе сатушы жіберген айға жатады. Деректер болса, алдыңғы айлар төмендегі сілтемелер арқылы қолжетімді."
        },
        "filter": {
            "term": "Іріктеу",
            "text": "Тек KZT бағаларын аламыз. Сұранысқа сәйкес келмейтін іздеу нәтижелері (сәйкестік бағасы 100-ден 50-ден төмен немесе «сәйкес емес» белгісі бар) алынып тасталады. Бір беттегі бір баға бір рет есептеледі. Санаттағы бағалар әртүрлі бірлікпен көрсетілсе, ең жиі кездесетінін қалдырамыз (мысалы, сағат үшін), сағат бағасы бүкіл жұмыстың бағасымен араласпауы үшін."
        },
        "min": {
            "term": "Ең аз саны",
            "text": "Санат кестеге бір айда кемінде 5 баға болғанда енеді. Баға аз болса, санатты көрсетпейміз: бірнеше бағадан шыққан аралық кездейсоқ болады. Сондықтан санаттар тізімі айдан айға өзгереді."
        },
        "kind": {
            "term": "Тауарлар мен қызметтер",
            "text": "Тауарларды модель бойынша топтаймыз, себебі бағаны модель анықтайды: әр түрлі модельдегі екі кір жуғыш машина бір санатта да әр түрлі тұрады. Қызметтерді көлем бірлігі бойынша топтаймыз, себебі қызметтің моделі жоқ, ал бағасы жұмыстың көлеміне байланысты: сағат, сабақ, шаршы метр, шығу. Бірлікті бағаның өзінен немесе орындаушы сайтындағы атаудан аламыз («сағатына», «1 сабақ»); екеуінде де бірлік болмаса, бұл бүкіл қызметтің бағасы, біз бірлікті ойдан қоспаймыз. Әр түрлі бірліктегі бағаларды араластырмаймыз: репетитордың бір сағаты мен толық курс, шығу ақысы мен бүкіл жұмыс бірнеше есе ерекшеленеді, сондықтан ортақ медиана олардың ешқайсысын сипаттамас еді. Қызмет бірлігіне кестеге кіру үшін 3 баға жеткілікті. Санат тауар ма, қызмет пе, әр ел үшін бір рет анықтаймыз: BlaBlaPrice ондағы сатып алушылардың сұрауларын қалай таныды, сағаттық бағалар, санаттың атауы және оның каталогтағы бөлімі бойынша."
        },
        "model": {
            "term": "Модельдер",
            "text": "Модельді дүкен сайтындағы тауар атауынан аламыз. Атауда бренд аталуы керек (немесе тек бір бренд шығаратын желі: Apple-да iPhone мен iPad, Samsung-та Galaxy, Xiaomi-де Redmi мен Poco), модель деп брендтен кейінгі атау мен кодты аламыз. Түсі, жылы, экран диагоналі, «Original», «Жаңа», emoji, өңір белгілері (UA, EU, Global) және бірліктер алынып тасталады, жад көлемі (128GB, 8/256GB) мен шина өлшемі қалады, себебі баға соларға байланысты. Қолданылған және қалпына келтірілген тауарлар (б/у, refurbished) жеке модель болып саналады. Модельді оған 3 баға не одан көп болғанда көрсетеміз: бір-екі бағаның медианасы кездейсоқ, ал үшеуінен бағаның қай жерде екені көрінеді. Модель BlaBlaPrice каталогындағы карточкаға сәйкес келсе, JSON-да оның product_id бар; дүкен атауларынан жаңа карточка жасамаймыз."
        },
        "others": {
            "term": "Басқалар",
            "text": "Атаудан модель нақты анықталмаса, баға «басқаларға» түседі: белгілі бренд жоқ («Пральні машини на 5 кг»), модель коды жоқ («Tigar Winter»), тек өлшем бар («Xiaomi 32»), басқа дүкендер сол модельге жадты жазса да, мұнда жазылмаған («iPhone 14 Pro» мен «iPhone 14 Pro 256GB» қатар), немесе бұл модельдің айдағы бағасы әзірге аз (3 баға керек). «Басқа» бағалар бүкіл санаттың жолында бар, бірақ модельдерде жоқ. Санатта мұндай модель болмаса, тек санаттың ауқымын «модельдер бойынша бағалар әзірге аз» белгісімен көрсетеміз."
        },
        "pct": {
            "term": "Перцентильдер",
            "text": "25-ші перцентиль (төменгі шек): табылған бағалардың төрттен бірі одан төмен. Медиана: бағалардың жартысы төмен, жартысы жоғары. 75-ші перцентиль (жоғарғы шек): бағалардың төрттен үші төмен. Төменгі және жоғарғы шектің арасында бағалардың ортаңғы жартысы жатыр, сондықтан бір өте арзан немесе өте қымбат ұсыныс аралықты жылжытпайды. Көрші бағалардың арасындағы мән сызықтық интерполяциямен есептеледі."
        },
        "round": {
            "term": "Дөңгелектеу",
            "text": "Мәндер екі мәнді цифрға дейін дөңгелектенген (мысалы, 13 009 саны 13 000 болады), өйткені бұл нақты тауардың бағасы емес, нарық аралығы."
        },
        "cur": {
            "term": "Валюта",
            "text": "KZT. Басқа валютадағы бағаларды қайта есептемейміз және есепке алмаймыз."
        },
        "upd": {
            "term": "Жаңарту",
            "text": "Кесте әр 6 сағат сайын қайта есептеледі. Ондағы ең жаңа баға: 2026 жылғы 5 қараша. Есептелген күні: 2026 жылғы 5 қараша."
        },
        "limits": {
            "term": "Шектеулер",
            "text": "Бұл елдің барлық сатушылары емес, тек іздеу BlaBlaPrice-тағы сұраныстар үшін тапқандары, сондықтан санаттар жиынтығы сатып алушылар не іздегенін көрсетеді. Бағалар сатушы сайты көрсеткендей: жеткізу, орнату, жеке жеңілдіктер мен саудаласу әдетте есепке алынбаған. Бір санатта әртүрлі модельдер мен жұмыс көлемдері араласқан. Жеке жол бір-екі сұранысқа сүйенуі мүмкін (JSON мен CSV-дегі requests өрісі). Индекс BlaBlaPrice ұсынысы емес: біз өзіміз тауар мен қызмет сатпаймыз."
        }
    },
    "count": 1,
    "models_count": 0,
    "units_count": 1,
    "kinds": {
        "goods": 0,
        "service": 1
    },
    "note": null,
    "rows": [
        {
            "country": "kz",
            "lang": "kk",
            "month": "2026-11",
            "category_slug": "pirsing",
            "category_name": "Пирсинг",
            "p25": 11000,
            "median": 12000,
            "p75": 14000,
            "currency": "KZT",
            "samples": 3,
            "updated_at": "2026-11-05T22:03:33Z",
            "unit": "",
            "shops": 3,
            "requests": 0,
            "level": "category",
            "model": null,
            "brand": null,
            "model_key": null,
            "model_samples": null,
            "model_shops": null,
            "used": null,
            "product_id": null,
            "kind": "service",
            "unit_code": "service",
            "variant": null,
            "unit_samples": 3,
            "unit_shops": 3,
            "category_id": 1405,
            "category_url": "https://blablaprice.com/kz/kk/pirsing",
            "models": [],
            "models_count": 0,
            "unit_label": "қызмет үшін",
            "units": [
                {
                    "country": "kz",
                    "lang": "kk",
                    "month": "2026-11",
                    "category_slug": "pirsing",
                    "category_name": "Пирсинг",
                    "p25": 11000,
                    "median": 12000,
                    "p75": 14000,
                    "currency": "KZT",
                    "samples": 3,
                    "updated_at": "2026-11-05T22:03:33Z",
                    "unit": "service",
                    "shops": 3,
                    "requests": 0,
                    "level": "unit",
                    "model": null,
                    "brand": null,
                    "model_key": null,
                    "model_samples": null,
                    "model_shops": null,
                    "used": null,
                    "product_id": null,
                    "kind": "service",
                    "unit_code": "service",
                    "variant": null,
                    "unit_samples": 3,
                    "unit_shops": 3,
                    "category_id": 1405,
                    "category_url": "https://blablaprice.com/kz/kk/pirsing",
                    "unit_label": "қызмет үшін",
                    "variants": {},
                    "variant_label": null,
                    "label": "Пирсинг: қызмет бағасы"
                }
            ],
            "units_count": 1,
            "other_samples": 0,
            "models_note": null,
            "units_note": null
        }
    ],
    "category": "pirsing",
    "total_count": 1,
    "pagination": {
        "page": 1,
        "per_page": 50,
        "pages": 1,
        "total": 1,
        "of": "units",
        "prev": null,
        "next": null
    },
    "query_parameters": {
        "m": "YYYY-MM, an earlier month",
        "category": "category_slug: that category only, its models or units paged",
        "page": "page number from 1, 50 rows a page (categories, or the category's models or units)"
    }
}