{
    "_meta": {
        "_warning": "MOCK DATA — Placeholder structure for Andre to fill with real Beherzig transaction-data.",
        "_scaffolded_at": "2026-05-24",
        "_scaffolded_by": "autopilot",
        "_plan_ref": "docs/PLAN-Off-Market-Premium-Indikator-2026-Q3.md",
        "_data_replacement_required": [
            "Replace ALL `sample_size`, `off_market_median_chf_m2`, `public_market_median_chf_m2` values with real anonymized transaction data.",
            "Verify K-Anonymity (sample_size >= 20 per region).",
            "Document methodology in methodology/off-market-index.html before publication.",
            "Schema.org Dataset markup should reference the public version after data review."
        ]
    },
    "version": "2026-Q3",
    "quarter": "Q3 2026",
    "generated_at": "2026-09-30T23:59:59+02:00",
    "methodology_url": "https://www.beherzig.ch/methodology/off-market-index.html",
    "publisher": {
        "name": "Beherzig Realty AG",
        "url": "https://www.beherzig.ch",
        "logo": "https://www.beherzig.ch/assets/logos/beherzig/primary/beherzig-full-lockup.svg"
    },
    "currency": "CHF",
    "unit": "CHF/m2",
    "regions": [
        {
            "id": "zuerichsee-goldkueste",
            "name": "Zuerichsee Goldkueste",
            "kantone": ["ZH"],
            "sample_size": 47,
            "off_market_median_chf_m2": 24500,
            "public_market_median_chf_m2": 18500,
            "premium_ratio": 1.324,
            "premium_ratio_yoy_change_pct": 8.2,
            "data_quality_score": 0.92,
            "time_series_4q": [1.291, 1.305, 1.318, 1.324]
        },
        {
            "id": "engadin-oberengadin",
            "name": "Engadin Oberengadin",
            "kantone": ["GR"],
            "sample_size": 23,
            "off_market_median_chf_m2": 32000,
            "public_market_median_chf_m2": 26000,
            "premium_ratio": 1.231,
            "premium_ratio_yoy_change_pct": 5.7,
            "data_quality_score": 0.88,
            "time_series_4q": [1.205, 1.214, 1.222, 1.231]
        },
        {
            "id": "zermatt-saastal",
            "name": "Zermatt Saastal",
            "kantone": ["VS"],
            "sample_size": 21,
            "off_market_median_chf_m2": 28500,
            "public_market_median_chf_m2": 22000,
            "premium_ratio": 1.295,
            "premium_ratio_yoy_change_pct": 6.3,
            "data_quality_score": 0.85,
            "time_series_4q": [1.262, 1.275, 1.288, 1.295]
        },
        {
            "id": "genfersee-westufer",
            "name": "Genfersee Westufer",
            "kantone": ["GE", "VD"],
            "sample_size": 38,
            "off_market_median_chf_m2": 22000,
            "public_market_median_chf_m2": 17500,
            "premium_ratio": 1.257,
            "premium_ratio_yoy_change_pct": 4.8,
            "data_quality_score": 0.9,
            "time_series_4q": [1.231, 1.24, 1.249, 1.257]
        },
        {
            "id": "vierwaldstaettersee",
            "name": "Vierwaldstaettersee",
            "kantone": ["LU", "NW", "SZ"],
            "sample_size": 31,
            "off_market_median_chf_m2": 19500,
            "public_market_median_chf_m2": 14800,
            "premium_ratio": 1.318,
            "premium_ratio_yoy_change_pct": 7.1,
            "data_quality_score": 0.89,
            "time_series_4q": [1.285, 1.297, 1.308, 1.318]
        },
        {
            "id": "gstaad-saanenland",
            "name": "Gstaad Saanenland",
            "kantone": ["BE"],
            "sample_size": 20,
            "off_market_median_chf_m2": 35000,
            "public_market_median_chf_m2": 28000,
            "premium_ratio": 1.25,
            "premium_ratio_yoy_change_pct": 5.2,
            "data_quality_score": 0.83,
            "time_series_4q": [1.222, 1.231, 1.241, 1.25]
        },
        {
            "id": "tessin-luganesere",
            "name": "Tessin Luganerresort",
            "kantone": ["TI"],
            "sample_size": 25,
            "off_market_median_chf_m2": 17000,
            "public_market_median_chf_m2": 13500,
            "premium_ratio": 1.259,
            "premium_ratio_yoy_change_pct": 4.5,
            "data_quality_score": 0.86,
            "time_series_4q": [1.235, 1.243, 1.251, 1.259]
        },
        {
            "id": "ascona-locarno",
            "name": "Ascona Locarno",
            "kantone": ["TI"],
            "sample_size": 22,
            "off_market_median_chf_m2": 19500,
            "public_market_median_chf_m2": 14800,
            "premium_ratio": 1.318,
            "premium_ratio_yoy_change_pct": 6.8,
            "data_quality_score": 0.84,
            "time_series_4q": [1.281, 1.294, 1.306, 1.318]
        },
        {
            "id": "verbier-val-dherens",
            "name": "Verbier Val d Herens",
            "kantone": ["VS"],
            "sample_size": 21,
            "off_market_median_chf_m2": 26500,
            "public_market_median_chf_m2": 20500,
            "premium_ratio": 1.293,
            "premium_ratio_yoy_change_pct": 5.9,
            "data_quality_score": 0.82,
            "time_series_4q": [1.263, 1.273, 1.283, 1.293]
        },
        {
            "id": "basel-riehen-bettingen",
            "name": "Basel Riehen Bettingen",
            "kantone": ["BS"],
            "sample_size": 27,
            "off_market_median_chf_m2": 15500,
            "public_market_median_chf_m2": 12500,
            "premium_ratio": 1.24,
            "premium_ratio_yoy_change_pct": 3.8,
            "data_quality_score": 0.87,
            "time_series_4q": [1.216, 1.224, 1.232, 1.24]
        },
        {
            "id": "zug-baar-aegerital",
            "name": "Zug Baar Aegerital",
            "kantone": ["ZG"],
            "sample_size": 29,
            "off_market_median_chf_m2": 21500,
            "public_market_median_chf_m2": 16800,
            "premium_ratio": 1.28,
            "premium_ratio_yoy_change_pct": 6.1,
            "data_quality_score": 0.91,
            "time_series_4q": [1.251, 1.261, 1.27, 1.28]
        }
    ],
    "aggregates": {
        "total_sample_size": 304,
        "weighted_median_premium_ratio": 1.279,
        "weighted_yoy_change_pct": 5.9,
        "regions_count": 11
    }
}
