{
    "_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)"
        ],
        "_recher_2026_07_03": {
            "_status": "BLOCKED — keine Werte eingefügt (Anti-Fabrikations-Regel Chain-of-Verification)",
            "_researcher": "Claude Code",
            "_legal_framework_verified": {
                "BewG": "SR 211.412.41 — BG über den Erwerb von Grundstücken durch Personen im Ausland (Lex Koller)",
                "BewV": "SR 211.412.411 — Verordnung; kantonale Jahres-Kontingente in Anhang 1",
                "federal_total_approx": "~1500 Bewilligungseinheiten/Jahr (Ferienwohnungen), verteilt auf Kantone"
            },
            "_partial_datapoints_found_but_NOT_inserted": [
                "VS Wallis ~330/Jahr (Sekundärquellen, Jahr 2016 — datiert)",
                "VD Waadt 165-175/Jahr (quellen-inkonsistent 2016)",
                "TI Tessin 195-197/Jahr (quellen-inkonsistent 2016)",
                "SG St. Gallen 45/Jahr (sg.ch offiziell, aber Einzel-Kanton)"
            ],
            "_gaps_blocking_go_live": [
                "Vollständige AKTUELLE kantonale Kontingent-Tabelle (BewV Anhang 1) nicht via verfügbare Tools erreichbar: fedlex JS-gerendert, BJ-Wegleitung-PDF HTTP 502. Nur datierte Sekundär-Fragmente.",
                "Laufende Lex-Koller-VERSCHÄRFUNG in Vernehmlassung (Bundesrat) würde Kontingente REDUZIEREN → jede 2016er-Zahl potenziell veraltet.",
                "Gemeinde-Aufteilung (quota_annual pro Gemeinde) wird NICHT föderal als Primär-Open-Data publiziert — kantonale interne Verteilung, nicht einzeln zitierbar.",
                "used / available (Echtzeit-Verbrauch) ist KEINE publizierte Open-Data-Grösse — nur kantonale Bewilligungsbehörden intern; ohne Behörden-Datenvereinbarung nicht verifizierbar."
            ],
            "_verdict": "NICHT befüllen. Tool bleibt noindex + aus Sitemap + nicht in Nav bis (a) BewV-Anhang-1-Aktuelltabelle aus fedlex/BJ als Primärquelle vorliegt UND (b) kantonale Datenquellen für Gemeinde-/Verbrauchswerte vertraglich gesichert sind. Report: docs/lex-koller-recher-2026-07-03.md"
        }
    },
    "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
    }
}
