{
    "schema_version": 5,
    "name": "تحليل السوق: الإمارات، نوفمبر 2026",
    "country": "ae",
    "country_name": "الإمارات",
    "lang": "ar",
    "month": "2026-11",
    "period": {
        "from": "2026-11-01",
        "to": "2026-11-30"
    },
    "currency": "AED",
    "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-05T21:53:48Z",
    "generated_at": "2026-11-06T11:21:32Z",
    "refresh_hours": 6,
    "html": "https://blablaprice.com/ae/ar/site/price-index",
    "csv": "https://blablaprice.com/ae/ar/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. ينتمي السعر إلى الشهر الذي وجده فيه البحث أو أرسله فيه البائع. الأشهر السابقة لها روابط أدناه عندما تتوفر فيها بيانات."
        },
        "filter": {
            "term": "الاختيار",
            "text": "الأسعار بعملة AED فقط. تُستبعد نتائج البحث التي لا تطابق الطلب (درجة تطابق أقل من 50 من 100 أو موسومة بـ «لا يناسب»). السعر نفسه على الصفحة نفسها يُحتسب مرة واحدة. إذا كانت أسعار الفئة بوحدات مختلفة تُترك الوحدة الأكثر تكرارًا (مثلًا للساعة)، حتى لا يختلط سعر الساعة بسعر العمل كاملًا."
        },
        "min": {
            "term": "الحد الأدنى",
            "text": "تدخل الفئة الجدول عندما يكون فيها 5 أسعار على الأقل خلال الشهر. وإذا كانت الأسعار أقل لا تظهر، لأن نطاقًا مأخوذًا من بضعة أسعار يكون عشوائيًا. لهذا تتغير قائمة الفئات من شهر إلى آخر."
        },
        "kind": {
            "term": "السلع والخدمات",
            "text": "نجمع السلع حسب الطراز لأن الطراز يحدد السعر: غسالتان من طرازين مختلفين تختلف أسعارهما حتى في الفئة نفسها. ونجمع الخدمات حسب وحدة الحجم لأن الخدمة لا طراز لها، وسعرها يتوقف على مقدار العمل: ساعة أو حصة أو متر مربع أو زيارة. نأخذ الوحدة من السعر نفسه أو من العنوان على موقع مقدم الخدمة («للساعة»، «حصة واحدة»)، وإذا لم تُذكر فهو سعر للخدمة كاملة ولا نفترض وحدة. لا نخلط الأسعار بوحدات مختلفة: ساعة مع مدرس خصوصي ودورة كاملة، أو رسوم الزيارة والعمل كله، تختلف أضعافًا، فلا يصف وسيط مشترك أيًا منها. يكفي وحدة الخدمة 3 أسعار لتدخل الجدول. نحدد مرة واحدة لكل بلد ما إذا كانت الفئة سلعًا أو خدمة: من الطريقة التي فهم بها BlaBlaPrice طلبات المشترين فيها، ومن الأسعار بالساعة، ومن اسم الفئة وقسمها في الدليل."
        },
        "model": {
            "term": "الطرازات",
            "text": "نأخذ الطراز من اسم المنتج في موقع المتجر. يجب أن يذكر الاسم العلامة التجارية (أو خط منتجات لا تصنعه إلا علامة واحدة: iPhone وiPad من Apple، وGalaxy من Samsung، وRedmi وPoco من Xiaomi)، والطراز هو الاسم والرمز بعد العلامة مباشرة. نحذف اللون والسنة وحجم الشاشة و«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": "AED. الأسعار بعملات أخرى لا تُحوَّل ولا تُحتسب."
        },
        "upd": {
            "term": "التحديث",
            "text": "يُعاد حساب الجدول كل 6 ساعات. أحدث سعر فيه: 5 نوفمبر 2026. تاريخ الحساب: 6 نوفمبر 2026."
        },
        "limits": {
            "term": "الحدود",
            "text": "هؤلاء ليسوا كل بائعي البلد، بل فقط من وجدهم البحث لطلبات على BlaBlaPrice، لذلك تعكس الفئات ما بحث عنه المشترون. الأسعار كما أظهرها موقع البائع: التوصيل والتركيب والخصومات الشخصية والتفاوض غير مشمولة عادةً. الفئة الواحدة تجمع طرازات وأحجام أعمال مختلفة. قد يستند صف واحد إلى طلب أو طلبين (حقل requests في JSON وCSV). تحليل السوق ليس عرضًا من BlaBlaPrice: نحن لا نبيع منتجات ولا خدمات."
        }
    },
    "count": 1,
    "models_count": 0,
    "units_count": 0,
    "kinds": {
        "goods": 1,
        "service": 0
    },
    "note": null,
    "rows": [
        {
            "country": "ae",
            "lang": "ar",
            "month": "2026-11",
            "category_slug": "forklifts-loaders",
            "category_name": "رافعات شوكية ولوادر",
            "p25": 4400,
            "median": 16000,
            "p75": 48000,
            "currency": "AED",
            "samples": 9,
            "updated_at": "2026-11-05T21:53:48Z",
            "unit": "",
            "shops": 9,
            "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": 196,
            "category_url": "https://blablaprice.com/ae/ar/forklifts-loaders",
            "models": [],
            "models_count": 0,
            "units": [],
            "units_count": 0,
            "other_samples": 9,
            "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": 5,
    "sellers": [
        {
            "category_id": 196,
            "category_slug": "forklifts-loaders",
            "category_name": "رافعات شوكية ولوادر",
            "category_url": "https://blablaprice.com/ae/ar/forklifts-loaders",
            "has_prices": true,
            "sellers_count": 2,
            "sellers": [
                {
                    "name": "ARAS Developments FZE",
                    "city": null
                },
                {
                    "name": "GCC Motor",
                    "city": null
                }
            ]
        },
        {
            "category_id": 969,
            "category_slug": "generator-hire",
            "category_name": "تأجير مولدات الكهرباء",
            "category_url": "https://blablaprice.com/ae/ar/generator-hire",
            "has_prices": false,
            "sellers_count": 1,
            "sellers": [
                {
                    "name": "SINTAQA Power Solutions",
                    "city": null
                }
            ]
        },
        {
            "category_id": 1267,
            "category_slug": "salon-chair-rental",
            "category_name": "إيجار مقعد عمل في صالون تجميل",
            "category_url": "https://blablaprice.com/ae/ar/salon-chair-rental",
            "has_prices": false,
            "sellers_count": 1,
            "sellers": [
                {
                    "name": "Pretty WOW",
                    "city": "Dubai"
                }
            ]
        },
        {
            "category_id": 1298,
            "category_slug": "cleaning-equipment-hire",
            "category_name": "تأجير معدات التنظيف",
            "category_url": "https://blablaprice.com/ae/ar/cleaning-equipment-hire",
            "has_prices": false,
            "sellers_count": 1,
            "sellers": [
                {
                    "name": "Al Buraq Equipment",
                    "city": null
                }
            ]
        },
        {
            "category_id": 1391,
            "category_slug": "home-visit-vet",
            "category_name": "طبيب بيطري بزيارة منزلية",
            "category_url": "https://blablaprice.com/ae/ar/home-visit-vet",
            "has_prices": false,
            "sellers_count": 2,
            "sellers": [
                {
                    "name": "Amity Veterinary Clinic",
                    "city": null
                },
                {
                    "name": "VET Veterinary Clinic LLC",
                    "city": null
                }
            ]
        }
    ]
}