{
    "schema_version": 5,
    "name": "Análisis de mercado: Chile, noviembre de 2026",
    "country": "cl",
    "country_name": "Chile",
    "lang": "es",
    "month": "2026-11",
    "period": {
        "from": "2026-11-01",
        "to": "2026-11-30"
    },
    "currency": "CLP",
    "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:38:38Z",
    "generated_at": "2026-11-06T17:17:10Z",
    "refresh_hours": 6,
    "html": "https://blablaprice.com/cl/site/price-index",
    "csv": "https://blablaprice.com/cl/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": "Fuente",
            "text": "Precios en sitios de tiendas y vendedores que la búsqueda de BlaBlaPrice encontró para solicitudes de compradores en Chile, más los precios de las ofertas de vendedores en BlaBlaPrice y de las listas de precios que subieron los vendedores. Las cuentas de prueba no se cuentan. Una vez al mes, BlaBlaPrice también recopila los precios de las tiendas en línea del país."
        },
        "period": {
            "term": "Período",
            "text": "Un mes calendario: noviembre de 2026. Un precio pertenece al mes en que la búsqueda lo encontró o el vendedor lo envió. Los meses anteriores están enlazados abajo cuando tienen datos."
        },
        "filter": {
            "term": "Selección",
            "text": "Solo precios en CLP. Se descartan los resultados de búsqueda que no corresponden a la solicitud (puntuación de coincidencia menor que 50 de 100 o marcados como «no corresponde»). El mismo precio en la misma página se cuenta una vez. Si una categoría tiene precios en unidades distintas, se conserva la más frecuente (por ejemplo, por hora), para no mezclar la tarifa por hora con el precio de un trabajo completo."
        },
        "min": {
            "term": "Mínimo",
            "text": "Una categoría entra en la tabla cuando tiene al menos 5 precios en el mes. Con menos no se muestra, porque un rango sacado de unos pocos precios es casual. Por eso la lista de categorías cambia de un mes a otro."
        },
        "kind": {
            "term": "Productos y servicios",
            "text": "Agrupamos los productos por modelo, porque el modelo fija el precio: dos lavadoras de modelos distintos cuestan diferente aun dentro de una categoría. Agrupamos los servicios por unidad de volumen, porque un servicio no tiene modelo y su precio depende de cuánto trabajo implica: una hora, una clase, un metro cuadrado, una visita. La unidad sale del propio precio o del título en el sitio del proveedor («por hora», «1 clase»); si ninguno la indica, es un precio por el servicio completo y no inventamos una unidad. No mezclamos precios en unidades distintas: una hora de un profesor y un curso completo, una visita y todo el trabajo difieren varias veces, así que una mediana común no describiría ninguno. A una unidad de servicio le bastan 3 precios para entrar en la tabla. Si una categoría es de productos o de servicios se decide una vez por país: según cómo BlaBlaPrice leyó las solicitudes de los compradores en ella, los precios por hora, el nombre de la categoría y su sección del catálogo."
        },
        "model": {
            "term": "Modelos",
            "text": "El modelo se toma del nombre del producto en el sitio de la tienda. El nombre debe citar la marca (o una línea que solo fabrica una marca: iPhone y iPad de Apple, Galaxy de Samsung, Redmi y Poco de Xiaomi); el modelo es el nombre y el código que siguen a la marca. Se descartan el color, el año, el tamaño de pantalla, «Original», «Nuevo», los emoji, las marcas de región (UA, EU, Global) y las unidades; se conservan la memoria (128GB, 8/256GB) y la medida del neumático, porque el precio depende de ellas. Los productos usados y reacondicionados (usado, refurbished) forman un modelo aparte. Un modelo se muestra cuando tiene 3 precios o más: la mediana de uno o dos precios es azar, con tres ya se ve dónde está el precio. Si el modelo coincide con una ficha del catálogo de BlaBlaPrice, el JSON da su product_id; no se crean fichas a partir de nombres de tiendas."
        },
        "others": {
            "term": "Otros",
            "text": "Un precio va a «otros» cuando el nombre no indica un modelo con claridad: no hay marca conocida («Lavadoras de 5 kg»), no hay código de modelo («Tigar Winter»), solo hay un tamaño («Xiaomi 32»), falta la memoria aunque otras tiendas la indican para el mismo modelo («iPhone 14 Pro» junto a «iPhone 14 Pro 256GB»), o el modelo aún tiene pocos precios en el mes (hacen falta 3 precios). Esos precios están en la fila de toda la categoría, pero no en los modelos. Si una categoría no tiene ningún modelo así, solo se muestra su rango con la nota «aún hay pocos precios por modelo»."
        },
        "pct": {
            "term": "Percentiles",
            "text": "Percentil 25 (límite inferior): una cuarta parte de los precios encontrados es menor. Mediana: la mitad es menor y la mitad mayor. Percentil 75 (límite superior): tres cuartas partes son menores. La mitad central de los precios queda entre los dos límites, así que una sola oferta muy barata o muy cara no mueve el rango. Entre precios vecinos el valor se interpola linealmente."
        },
        "round": {
            "term": "Redondeo",
            "text": "Los valores se redondean a dos cifras significativas (13.009 pasa a 13.000), porque es un rango del mercado, no el precio de un producto concreto."
        },
        "cur": {
            "term": "Moneda",
            "text": "CLP. Los precios en otras monedas no se convierten ni se cuentan."
        },
        "upd": {
            "term": "Actualización",
            "text": "La tabla se recalcula cada 6 horas. Precio más reciente: 5 de noviembre de 2026. Calculado el 6 de noviembre de 2026."
        },
        "limits": {
            "term": "Límites",
            "text": "No son todos los vendedores del país, solo los que la búsqueda encontró para solicitudes en BlaBlaPrice, así que las categorías reflejan lo que buscaron los compradores. Los precios son los que mostró el sitio del vendedor: envío, instalación, descuentos personales y regateo normalmente no están incluidos. Una categoría mezcla modelos y trabajos de distinto tamaño. Una fila puede apoyarse en una o dos solicitudes (campo requests del JSON y del CSV). El análisis de mercado no es una oferta de BlaBlaPrice: nosotros no vendemos productos ni servicios."
        }
    },
    "count": 1,
    "models_count": 0,
    "units_count": 0,
    "kinds": {
        "goods": 1,
        "service": 0
    },
    "note": null,
    "rows": [
        {
            "country": "cl",
            "lang": "es",
            "month": "2026-11",
            "category_slug": "alarmas-de-seguridad",
            "category_name": "Alarmas de seguridad",
            "p25": 58000,
            "median": 140000,
            "p75": 160000,
            "currency": "CLP",
            "samples": 7,
            "updated_at": "2026-11-05T23:38:38Z",
            "unit": "",
            "shops": 7,
            "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": 1624,
            "category_url": "https://blablaprice.com/cl/alarmas-de-seguridad",
            "models": [],
            "models_count": 0,
            "units": [],
            "units_count": 0,
            "other_samples": 7,
            "models_note": "Aún hay pocos precios por modelo: un modelo necesita 3 precios y ninguno los ha alcanzado. Abajo, el rango de toda la categoría.",
            "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": 3,
    "sellers": [
        {
            "category_id": 206,
            "category_slug": "maquinaria-forestal",
            "category_name": "Maquinaria forestal",
            "category_url": "https://blablaprice.com/cl/maquinaria-forestal",
            "has_prices": false,
            "sellers_count": 4,
            "sellers": [
                {
                    "name": "Empresas Capurro",
                    "city": null
                },
                {
                    "name": "Ferramak Chile",
                    "city": null
                },
                {
                    "name": "GreenMaq",
                    "city": null
                },
                {
                    "name": "TecnoDeliv",
                    "city": null
                }
            ]
        },
        {
            "category_id": 1349,
            "category_slug": "reparacion-de-calderas-y-calentadores-de-gas",
            "category_name": "Reparación de calderas y calentadores de gas",
            "category_url": "https://blablaprice.com/cl/reparacion-de-calderas-y-calentadores-de-gas",
            "has_prices": false,
            "sellers_count": 10,
            "sellers": [
                {
                    "name": "DATO GASFITER",
                    "city": null
                },
                {
                    "name": "Elegas",
                    "city": null
                },
                {
                    "name": "Fixers",
                    "city": "Región Metropolitana"
                },
                {
                    "name": "FluxClean",
                    "city": null
                },
                {
                    "name": "Gásfiter a Domicilio, AQUI GASFITER",
                    "city": null
                },
                {
                    "name": "Gasfiter Autorizado",
                    "city": null
                },
                {
                    "name": "Gasfiter Profesionales",
                    "city": null
                },
                {
                    "name": "Gásfiter Urgencias",
                    "city": null
                },
                {
                    "name": "Gasfiteria 24 Hrs",
                    "city": null
                },
                {
                    "name": "MantencionCalefont.cl",
                    "city": "Región Metropolitana"
                }
            ]
        },
        {
            "category_id": 1624,
            "category_slug": "alarmas-de-seguridad",
            "category_name": "Alarmas de seguridad",
            "category_url": "https://blablaprice.com/cl/alarmas-de-seguridad",
            "has_prices": true,
            "sellers_count": 2,
            "sellers": [
                {
                    "name": "FERSONTEC: ALARMAS PARA CASAS",
                    "city": null
                },
                {
                    "name": "Ikseg Store",
                    "city": null
                }
            ]
        }
    ]
}