{
    "schema_version": 4,
    "name": "市場分析：香港，2026年11月",
    "country": "hk",
    "country_name": "香港",
    "lang": "zh",
    "month": "2026-11",
    "period": {
        "from": "2026-11-01",
        "to": "2026-11-30"
    },
    "currency": "HKD",
    "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."
    },
    "updated_at": "2026-11-05T23:32:59Z",
    "generated_at": "2026-11-05T23:35:38Z",
    "refresh_hours": 6,
    "html": "https://blablaprice.com/hk/zh/site/price-index/freezers",
    "csv": "https://blablaprice.com/hk/zh/site/price-index.csv?category=freezers",
    "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": "只採用 HKD 的價格。與需求不符的搜尋結果（相符分數低於 100 分中的 50 分，或被標為「不符合」）會被排除。同一頁面上的同一價格只計一次。若同一類別的價格使用不同單位，只保留最常見的單位（例如每小時），避免把時薪和整件工作的價格混在一起。"
        },
        "min": {
            "term": "最低數量",
            "text": "類別在當月至少有 5 個價格才會列入表格。少於這個數量就不顯示，因為只用幾個價格算出的範圍很隨機。所以類別清單每個月都會不同。"
        },
        "kind": {
            "term": "商品與服務",
            "text": "商品按型號分組，因為價格由型號決定：同一類別裡兩台不同型號的洗衣機價格也不同。服務按數量單位分組，因為服務沒有型號，價格取決於工作量：一小時、一堂課、一平方公尺、一次到府。單位取自價格本身或提供者網站上的標題（「每小時」、「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 公斤洗衣機」）、沒有型號代碼（「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": "HKD。其他貨幣的價格既不換算，也不計入。"
        },
        "upd": {
            "term": "更新",
            "text": "表格每 6 小時重新計算。表中最新的價格：2026年11月5日。計算日期：2026年11月5日。"
        },
        "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": "hk",
            "lang": "zh",
            "month": "2026-11",
            "category_slug": "freezers",
            "category_name": "冷凍櫃",
            "p25": 1800,
            "median": 2300,
            "p75": 3900,
            "currency": "HKD",
            "samples": 5,
            "updated_at": "2026-11-05T23:32:59Z",
            "unit": "",
            "shops": 5,
            "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": 1461,
            "category_url": "https://blablaprice.com/hk/zh/freezers",
            "models": [],
            "models_count": 0,
            "units": [],
            "units_count": 0,
            "other_samples": 5,
            "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",
        "url": "its own site (the home page), null for a seller registered on BlaBlaPrice without a confirmed site"
    },
    "sellers_categories": 1,
    "sellers": [
        {
            "category_id": 1461,
            "category_slug": "freezers",
            "category_name": "冷凍櫃",
            "category_url": "https://blablaprice.com/hk/zh/freezers",
            "has_prices": true,
            "sellers_count": 3,
            "sellers": [
                {
                    "name": "220-electronics",
                    "city": null,
                    "url": "https://220-electronics.com/"
                },
                {
                    "name": "judge",
                    "city": null,
                    "url": "https://judge.me/"
                },
                {
                    "name": "ubuy",
                    "city": null,
                    "url": "https://ubuy.com/"
                }
            ]
        }
    ],
    "category": "freezers",
    "total_count": 0,
    "pagination": {
        "page": 1,
        "per_page": 50,
        "pages": 1,
        "total": 0,
        "of": "models",
        "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)"
    }
}