fire-planner/fire_planner/geo.py

30 lines
1.1 KiB
Python
Raw Normal View History

"""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)