"""Map a COL city slug to a tax jurisdiction the simulator models. Cities without a dedicated tax engine fall back to ``nomad`` (a neutral 1% regulatory-premium regime) — a deliberate, documented approximation. Adding a real regime (e.g. Portugal NHR, Greece, Spain Beckham) is a separate change; until then their countdown targets carry the nomad assumption. """ from __future__ import annotations # Only slugs whose jurisdiction has a dedicated engine in `tax/`. Everything # else (Lisbon, Porto, Athens, Tallinn, Tbilisi, Madrid, Valencia, Singapore, # Taipei, Bali, Medellin, Mexico City, Bucharest, Ho Chi Minh City) -> nomad. CITY_JURISDICTION: dict[str, str] = { "sofia": "bulgaria", "limassol": "cyprus", "bangkok": "thailand", "chiang-mai": "thailand", "kuala-lumpur": "malaysia", "penang": "malaysia", "dubai": "uae", "london": "uk", } FALLBACK_JURISDICTION = "nomad" def jurisdiction_for_city(slug: str) -> str: """Return the tax-jurisdiction key for a COL city slug (``nomad`` if none).""" return CITY_JURISDICTION.get(slug, FALLBACK_JURISDICTION)