{
    "_meta": {
        "_warning": "MOCK DATA — Placeholder structure. Andre + Legal-Researcher must replace with verified BWO-Daten + kantonale Behörden-Reports.",
        "_scaffolded_at": "2026-05-25",
        "_scaffolded_by": "autopilot",
        "_plan_ref": "docs/PLAN-Lex-Koller-Quoten-Tracker-2026-Q4.md",
        "_data_replacement_required": [
            "Replace ALL `quota_annual`, `used`, `available` values with real BWO + kantonale Bewilligungsbehörden-Daten",
            "Validate each commune-status with Lindemann Law or comparable legal counsel before publication",
            "Mock-Daten kennzeichnen via `_meta._warning` Banner solange nicht-verifiziert",
            "Quartal-Update via N8N-Workflow (siehe DataIngest-Logik in QuotaService.php)"
        ]
    },
    "version": "2026-Q4",
    "quarter": "Q4 2026",
    "last_updated": "2026-11-15",
    "next_update": "2027-02-15",
    "data_disclaimer_url": "https://www.beherzig.ch/methodology/lex-koller-quoten.html",
    "publisher": {
        "name": "Beherzig Realty AG",
        "url": "https://www.beherzig.ch",
        "logo": "https://www.beherzig.ch/assets/logos/beherzig/primary/beherzig-full-lockup.svg"
    },
    "data_sources": [
        "Bundesamt fuer Wohnungswesen (BWO) — Q4-Reports 2024-2026",
        "Walliser Service du logement, Sion (VS)",
        "Bündner Amt fuer Wirtschaft und Tourismus, Chur (GR)",
        "Vaudois Office cantonal du logement, Lausanne (VD)",
        "Berner Amt fuer Gemeinden und Raumordnung (BE)",
        "Tessiner Dipartimento del territorio (TI)",
        "Beherzig-Recherche (Stichproben-Telefonate Q3 2026)"
    ],
    "cantons": [
        {
            "code": "VS",
            "name": "Wallis",
            "name_fr": "Valais",
            "total_annual_quota": 350,
            "used_2026": 287,
            "available_2026": 63,
            "communes": [
                {
                    "id": "verbier-bagnes",
                    "name": "Verbier (Bagnes)",
                    "quota_annual": 60,
                    "used": 47,
                    "available": 13,
                    "status": "AVAILABLE",
                    "average_processing_time_weeks": 8,
                    "lat": 46.0967,
                    "lng": 7.228
                },
                {
                    "id": "crans-montana",
                    "name": "Crans-Montana",
                    "quota_annual": 80,
                    "used": 71,
                    "available": 9,
                    "status": "LOW_AVAILABILITY",
                    "average_processing_time_weeks": 10,
                    "lat": 46.3122,
                    "lng": 7.4778
                },
                {
                    "id": "zermatt",
                    "name": "Zermatt",
                    "quota_annual": 35,
                    "used": 35,
                    "available": 0,
                    "status": "CLOSED_FOR_2026",
                    "next_year_outlook": "Erwartet aehnliche Quote 2027",
                    "average_processing_time_weeks": null,
                    "lat": 46.0207,
                    "lng": 7.7491
                },
                {
                    "id": "saas-fee",
                    "name": "Saas-Fee",
                    "quota_annual": 25,
                    "used": 18,
                    "available": 7,
                    "status": "AVAILABLE",
                    "average_processing_time_weeks": 7,
                    "lat": 46.1097,
                    "lng": 7.9286
                },
                {
                    "id": "leukerbad",
                    "name": "Leukerbad",
                    "quota_annual": 30,
                    "used": 22,
                    "available": 8,
                    "status": "AVAILABLE",
                    "average_processing_time_weeks": 6,
                    "lat": 46.3792,
                    "lng": 7.6275
                },
                {
                    "id": "nendaz",
                    "name": "Nendaz",
                    "quota_annual": 40,
                    "used": 33,
                    "available": 7,
                    "status": "LOW_AVAILABILITY",
                    "average_processing_time_weeks": 9,
                    "lat": 46.1758,
                    "lng": 7.3133
                }
            ]
        },
        {
            "code": "GR",
            "name": "Graubuenden",
            "name_it": "Grigioni",
            "name_rm": "Grischun",
            "total_annual_quota": 250,
            "used_2026": 198,
            "available_2026": 52,
            "communes": [
                {
                    "id": "st-moritz",
                    "name": "St. Moritz",
                    "quota_annual": 55,
                    "used": 51,
                    "available": 4,
                    "status": "LOW_AVAILABILITY",
                    "average_processing_time_weeks": 12,
                    "lat": 46.4983,
                    "lng": 9.8369
                },
                {
                    "id": "davos",
                    "name": "Davos",
                    "quota_annual": 45,
                    "used": 38,
                    "available": 7,
                    "status": "AVAILABLE",
                    "average_processing_time_weeks": 8,
                    "lat": 46.8033,
                    "lng": 9.8369
                },
                {
                    "id": "arosa",
                    "name": "Arosa",
                    "quota_annual": 25,
                    "used": 25,
                    "available": 0,
                    "status": "CLOSED_FOR_2026",
                    "next_year_outlook": "Quote 2027 in Diskussion",
                    "average_processing_time_weeks": null,
                    "lat": 46.7794,
                    "lng": 9.6772
                },
                {
                    "id": "flims-laax",
                    "name": "Flims-Laax",
                    "quota_annual": 35,
                    "used": 24,
                    "available": 11,
                    "status": "AVAILABLE",
                    "average_processing_time_weeks": 7,
                    "lat": 46.8369,
                    "lng": 9.2864
                },
                {
                    "id": "pontresina-celerina",
                    "name": "Pontresina/Celerina",
                    "quota_annual": 30,
                    "used": 22,
                    "available": 8,
                    "status": "AVAILABLE",
                    "average_processing_time_weeks": 9,
                    "lat": 46.4942,
                    "lng": 9.9019
                }
            ]
        },
        {
            "code": "VD",
            "name": "Waadt",
            "name_fr": "Vaud",
            "total_annual_quota": 180,
            "used_2026": 142,
            "available_2026": 38,
            "communes": [
                {
                    "id": "villars-gryon",
                    "name": "Villars-Gryon",
                    "quota_annual": 40,
                    "used": 28,
                    "available": 12,
                    "status": "AVAILABLE",
                    "average_processing_time_weeks": 7,
                    "lat": 46.2967,
                    "lng": 7.0533
                },
                {
                    "id": "leysin",
                    "name": "Leysin",
                    "quota_annual": 25,
                    "used": 18,
                    "available": 7,
                    "status": "AVAILABLE",
                    "average_processing_time_weeks": 6,
                    "lat": 46.35,
                    "lng": 7.0167
                },
                {
                    "id": "chateau-doex",
                    "name": "Chateau-d'Oex",
                    "quota_annual": 20,
                    "used": 14,
                    "available": 6,
                    "status": "AVAILABLE",
                    "average_processing_time_weeks": 8,
                    "lat": 46.4711,
                    "lng": 7.1389
                },
                {
                    "id": "rougemont",
                    "name": "Rougemont",
                    "quota_annual": 15,
                    "used": 11,
                    "available": 4,
                    "status": "LOW_AVAILABILITY",
                    "average_processing_time_weeks": 9,
                    "lat": 46.4936,
                    "lng": 7.2225
                }
            ]
        },
        {
            "code": "BE",
            "name": "Bern",
            "name_fr": "Berne",
            "total_annual_quota": 120,
            "used_2026": 92,
            "available_2026": 28,
            "communes": [
                {
                    "id": "gstaad-saanen",
                    "name": "Gstaad-Saanen",
                    "quota_annual": 50,
                    "used": 41,
                    "available": 9,
                    "status": "AVAILABLE",
                    "average_processing_time_weeks": 9,
                    "lat": 46.4719,
                    "lng": 7.2858
                },
                {
                    "id": "interlaken-region",
                    "name": "Interlaken-Region",
                    "quota_annual": 30,
                    "used": 19,
                    "available": 11,
                    "status": "AVAILABLE",
                    "average_processing_time_weeks": 7,
                    "lat": 46.6863,
                    "lng": 7.8632
                }
            ]
        },
        {
            "code": "TI",
            "name": "Tessin",
            "name_it": "Ticino",
            "total_annual_quota": 100,
            "used_2026": 78,
            "available_2026": 22,
            "communes": [
                {
                    "id": "ascona-locarno",
                    "name": "Ascona/Locarno-Riviera",
                    "quota_annual": 40,
                    "used": 31,
                    "available": 9,
                    "status": "AVAILABLE",
                    "average_processing_time_weeks": 8,
                    "lat": 46.1556,
                    "lng": 8.7706
                },
                {
                    "id": "lugano-region",
                    "name": "Lugano-Region",
                    "quota_annual": 35,
                    "used": 27,
                    "available": 8,
                    "status": "AVAILABLE",
                    "average_processing_time_weeks": 9,
                    "lat": 46.004,
                    "lng": 8.953
                }
            ]
        }
    ],
    "aggregates": {
        "total_cantons": 5,
        "total_communes": 18,
        "total_annual_quota": 1000,
        "total_used_2026": 797,
        "total_available_2026": 203,
        "utilization_rate_pct": 79.7,
        "closed_communes_2026": 2
    }
}
