{
    "schema_version": 5,
    "name": "시장 분석: 대한민국, 2026년 11월",
    "country": "kr",
    "country_name": "대한민국",
    "lang": "ko",
    "month": "2026-11",
    "period": {
        "from": "2026-11-01",
        "to": "2026-11-30"
    },
    "currency": "KRW",
    "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.",
        "4": "H-084: the price index is now the market analysis (the same addresses). New top-level field sellers: one entry a category with firms in our data (category_id, category_slug, category_name, category_url, has_prices, sellers_count, sellers: up to 10 of {name, city, url}); the registered sellers first, the rest alphabetical, not a rating; only public company data. With ?category= the entry of that category only. All earlier fields keep their names and meaning.",
        "5": "H-089: the field url of sellers[] is gone (no links to the firms' sites anywhere on BlaBlaPrice); each firm is {name, city}. All other fields keep their names and meaning."
    },
    "updated_at": "2026-11-05T23:40:33Z",
    "generated_at": "2026-11-06T17:27:52Z",
    "refresh_hours": 6,
    "html": "https://blablaprice.com/kr/site/price-index",
    "csv": "https://blablaprice.com/kr/site/price-index.csv",
    "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년 11월. 가격은 검색이 찾은 달 또는 판매자가 보낸 달에 들어가요. 데이터가 있는 이전 달은 아래 링크로 볼 수 있어요."
        },
        "filter": {
            "term": "선별",
            "text": "KRW 가격만 써요. 요청과 맞지 않는 검색 결과(일치 점수 100점 중 50점 미만이거나 \"맞지 않음\"으로 표시된 것)는 빼요. 같은 페이지의 같은 가격은 한 번만 세요. 카테고리 안에서 단위가 다르면 가장 많은 단위(예: 시간당)만 남겨, 시간당 요금과 작업 전체 가격이 섞이지 않게 해요."
        },
        "min": {
            "term": "최소 개수",
            "text": "그달에 가격이 5개 이상인 카테고리만 표에 들어가요. 그보다 적으면 몇 개의 가격으로 만든 범위가 우연에 좌우되므로 보여 주지 않아요. 그래서 카테고리 목록은 달마다 달라져요."
        },
        "kind": {
            "term": "상품과 서비스",
            "text": "상품은 모델별로 묶어요. 가격을 정하는 것은 모델이라, 같은 카테고리라도 모델이 다른 세탁기 두 대는 가격이 달라요. 서비스는 양의 단위별로 묶어요. 서비스에는 모델이 없고 가격은 작업량에 따라 정해지기 때문이에요: 1시간, 수업 1회, 1제곱미터, 출장 1회. 단위는 가격 자체나 제공자 사이트의 제목(「시간당」, 「1회」)에서 가져오며, 둘 다 단위가 없으면 서비스 전체 가격으로 보고 단위를 추측하지 않아요. 단위가 다른 가격은 섞지 않아요. 과외 1시간과 전체 과정, 출장비와 작업 전체는 몇 배씩 차이가 나서 공통 중앙값은 어느 것도 설명하지 못해요. 서비스 단위는 가격 3건이면 표에 들어가요. 카테고리가 상품인지 서비스인지는 국가별로 한 번 정해요: 그 카테고리의 요청을 BlaBlaPrice가 어떻게 읽었는지, 시간당 가격, 카테고리 이름, 카탈로그의 섹션에 따라요."
        },
        "model": {
            "term": "모델",
            "text": "모델은 쇼핑몰 사이트의 상품명에서 가져와요. 상품명에 브랜드가 있어야 하며(또는 한 브랜드만 만드는 제품군: Apple의 iPhone과 iPad, Samsung의 Galaxy, Xiaomi의 Redmi와 Poco), 브랜드 바로 뒤의 이름과 코드가 모델이에요. 색상, 연도, 화면 크기, 「Original」, 「신상품」, 이모지, 지역 표시(UA, EU, Global), 단위는 빼고, 가격을 좌우하는 메모리 용량(128GB, 8/256GB)과 타이어 규격은 남겨요. 중고품과 리퍼 제품(중고, refurbished)은 별도 모델로 세요. 모델은 가격 3건 이상 모였을 때 보여 줘요. 가격 한두 건의 중앙값은 우연이지만 세 건이면 가격이 어디쯤인지 보여요. 모델이 BlaBlaPrice 카탈로그의 카드와 일치하면 JSON에 그 product_id가 들어가며, 쇼핑몰 상품명으로 새 카드를 만들지는 않아요."
        },
        "others": {
            "term": "기타",
            "text": "상품명으로 모델을 하나로 특정할 수 없는 가격은 「기타」로 가요. 알려진 브랜드가 없거나(「5 kg 세탁기」), 모델 코드가 없거나(「Tigar Winter」), 크기만 있거나(「Xiaomi 32」), 다른 쇼핑몰은 같은 모델에 메모리를 적는데 적지 않았거나(「iPhone 14 Pro 256GB」 옆의 「iPhone 14 Pro」), 그달 그 모델의 가격이 아직 적은 경우(가격 3건 필요)예요. 「기타」 가격은 카테고리 전체 행에는 들어가지만 모델에는 들어가지 않아요. 그런 모델이 하나도 없는 카테고리는 「모델별 가격은 아직 적음」이라는 표시와 함께 범위만 보여 줘요."
        },
        "pct": {
            "term": "백분위수",
            "text": "25번째 백분위수(하한): 찾은 가격의 4분의 1이 이보다 낮아요. 중앙값: 절반은 낮고 절반은 높아요. 75번째 백분위수(상한): 4분의 3이 이보다 낮아요. 하한과 상한 사이에 가격의 가운데 절반이 있어서, 아주 싸거나 아주 비싼 제안 하나가 범위를 움직이지 않아요. 이웃한 가격 사이 값은 선형 보간으로 구해요."
        },
        "round": {
            "term": "반올림",
            "text": "값은 유효숫자 두 자리로 반올림해요(예: 13,009는 13,000). 특정 상품의 가격이 아니라 시장의 범위이기 때문이에요."
        },
        "cur": {
            "term": "통화",
            "text": "KRW. 다른 통화의 가격은 환산하지도, 세지도 않아요."
        },
        "upd": {
            "term": "업데이트",
            "text": "표는 6시간마다 다시 계산해요. 표에서 가장 최근 가격: 2026년 11월 5일. 계산일: 2026년 11월 6일."
        },
        "limits": {
            "term": "한계",
            "text": "나라의 모든 판매자가 아니라, BlaBlaPrice 요청을 위해 검색이 찾은 판매자만 포함해요. 그래서 카테고리 구성은 구매자들이 찾은 것을 반영해요. 가격은 판매자 사이트에 보인 그대로이고, 배송, 설치, 개인 할인, 흥정은 보통 들어가지 않아요. 한 카테고리에 서로 다른 모델과 작업량이 섞여 있어요. 한 줄이 요청 한두 건에만 기댈 수도 있어요(JSON과 CSV의 requests 필드). 이 시장 분석은 BlaBlaPrice의 제안이 아니에요. 저희는 물건도 서비스도 팔지 않아요."
        }
    },
    "count": 1,
    "models_count": 0,
    "units_count": 0,
    "kinds": {
        "goods": 1,
        "service": 0
    },
    "note": null,
    "rows": [
        {
            "country": "kr",
            "lang": "ko",
            "month": "2026-11",
            "category_slug": "laptop-parts",
            "category_name": "노트북 부품",
            "p25": 20000,
            "median": 30000,
            "p75": 40000,
            "currency": "KRW",
            "samples": 8,
            "updated_at": "2026-11-05T23:40:33Z",
            "unit": "",
            "shops": 8,
            "requests": 0,
            "level": "category",
            "model": null,
            "brand": null,
            "model_key": null,
            "model_samples": null,
            "model_shops": null,
            "used": null,
            "product_id": null,
            "kind": "goods",
            "unit_code": null,
            "variant": null,
            "unit_samples": null,
            "unit_shops": null,
            "category_id": 783,
            "category_url": "https://blablaprice.com/kr/laptop-parts",
            "models": [],
            "models_count": 0,
            "units": [],
            "units_count": 0,
            "other_samples": 8,
            "models_note": "모델별 가격은 아직 적어요. 모델 하나에 가격 3건이 필요한데 아직 그만큼 모인 모델이 없어요. 아래는 카테고리 전체 범위예요.",
            "units_note": null
        }
    ],
    "field_docs_sellers": {
        "name": "the firm's name (its own, or its site's name)",
        "city": "its town when known, else null"
    },
    "sellers_categories": 1,
    "sellers": [
        {
            "category_id": 783,
            "category_slug": "laptop-parts",
            "category_name": "노트북 부품",
            "category_url": "https://blablaprice.com/kr/laptop-parts",
            "has_prices": true,
            "sellers_count": 3,
            "sellers": [
                {
                    "name": "비파인",
                    "city": null
                },
                {
                    "name": "액정도매(LCD도매)",
                    "city": null
                },
                {
                    "name": "한성컴퓨터 슈퍼스토어",
                    "city": null
                }
            ]
        }
    ]
}