{
  "snapshot_id": "approved-static-bb6d69cd3c074ae2",
  "schema_version": "immigrationdb-city-resource-v2",
  "generated_at": "2026-08-04",
  "canonical_path": "/cities/ee/viljandi-linn/",
  "mcp_uri": "immigrationdb://city/ee/viljandi-linn",
  "editorial_copy": {
    "status": "reviewed",
    "reviewed_at": "2026-07-29",
    "copy_depth": "city_standard",
    "blocks": {
      "intro": "Viljandi linn is a city in Estonia. The nearest airport was TKD, 579 km away, with 1 listed destinations in June 2026. Viljandi linn had a population of 17,157 at the start of 2025. For Viljandi linn, the foreign population count was 979 at the start of 2025.",
      "work_lead": "The unemployment rate was 2.44% at the end of 2025."
    },
    "used_claim_count": 6,
    "uses_supplemental_cd": false
  },
  "city": {
    "entity_id": "city:ee:slug:viljandi-linn",
    "name": "Viljandi linn",
    "country_code": "EE",
    "public_slug": "viljandi-linn",
    "canonical_path": "/cities/ee/viljandi-linn/",
    "mcp_uri": "immigrationdb://city/ee/viljandi-linn",
    "page_state": "published",
    "useful_blocks": [
      "mobility_admin",
      "work_income",
      "climate_air",
      "other"
    ],
    "useful_fact_count": 19,
    "city_tags": [
      "standard_municipality"
    ],
    "profile_scores": {
      "remote": {
        "point": 50,
        "low": 36,
        "high": 64,
        "factors": {
          "legal_path": 88,
          "cost_pressure": 61,
          "housing": 45,
          "work": 63,
          "family": 67,
          "education": 45,
          "healthcare": 45,
          "safety": 45,
          "air": 55,
          "bureaucracy": 45
        },
        "housing_budget": {
          "status": "unavailable",
          "currency": null,
          "fx_date": null,
          "normalized_monthly_eur": null,
          "source_id": null,
          "basis": null
        }
      },
      "skilled_employee": {
        "point": 49,
        "low": 35,
        "high": 63,
        "factors": {
          "legal_path": 88,
          "cost_pressure": 61,
          "housing": 45,
          "work": 63,
          "family": 67,
          "education": 45,
          "healthcare": 45,
          "safety": 45,
          "air": 55,
          "bureaucracy": 45
        },
        "housing_budget": {
          "status": "unavailable",
          "currency": null,
          "fx_date": null,
          "normalized_monthly_eur": null,
          "source_id": null,
          "basis": null
        }
      },
      "family": {
        "point": 55,
        "low": 41,
        "high": 69,
        "factors": {
          "legal_path": 88,
          "cost_pressure": 61,
          "housing": 45,
          "work": 63,
          "family": 67,
          "education": 45,
          "healthcare": 45,
          "safety": 45,
          "air": 55,
          "bureaucracy": 45
        },
        "housing_budget": {
          "status": "unavailable",
          "currency": null,
          "fx_date": null,
          "normalized_monthly_eur": null,
          "source_id": null,
          "basis": null
        }
      },
      "student": {
        "point": 47,
        "low": 33,
        "high": 61,
        "factors": {
          "legal_path": 88,
          "cost_pressure": 61,
          "housing": 45,
          "work": 63,
          "family": 67,
          "education": 45,
          "healthcare": 45,
          "safety": 45,
          "air": 55,
          "bureaucracy": 45
        },
        "housing_budget": {
          "status": "unavailable",
          "currency": null,
          "fx_date": null,
          "normalized_monthly_eur": null,
          "source_id": null,
          "basis": null
        }
      },
      "retirement": {
        "point": 54,
        "low": 40,
        "high": 68,
        "factors": {
          "legal_path": 88,
          "cost_pressure": 61,
          "housing": 45,
          "work": 63,
          "family": 67,
          "education": 45,
          "healthcare": 45,
          "safety": 45,
          "air": 55,
          "bureaucracy": 45
        },
        "housing_budget": {
          "status": "unavailable",
          "currency": null,
          "fx_date": null,
          "normalized_monthly_eur": null,
          "source_id": null,
          "basis": null
        }
      }
    },
    "facts_by_block": {
      "identity": [
        {
          "metric_id": "area_km2",
          "block_id": "identity",
          "value": 10,
          "unit": "km2",
          "geographic_scope": "linn",
          "observed_at": "2026-01-01",
          "verified_at": "2026-06-12T00:00:00Z",
          "comparison_eligible": true,
          "source_id": "maa_amet_ehak",
          "source_url": "https://geoportaal.maaamet.ee/est/Ruumiandmed/Haldus-ja-asustusjaotus/",
          "source_title": "Maa- ja Ruumiamet (Land and Spatial Development Board)",
          "source_authority": "Maa- ja Ruumiamet (Land and Spatial Development Board)",
          "source_type": "official",
          "source_badge": "Official source",
          "source_quality": "verified"
        },
        {
          "metric_id": "foreign_population_pct",
          "block_id": "identity",
          "value": 8,
          "unit": "percent",
          "geographic_scope": "maakond",
          "observed_at": "2026-01-01",
          "verified_at": "2026-06-12T00:00:00Z",
          "comparison_eligible": true,
          "source_id": "stat_ee_rv0661",
          "source_url": "https://andmed.stat.ee/api/v1/et/StatFin/rahvastik/rv0661.px",
          "source_title": "Statistics Estonia",
          "source_authority": "Statistics Estonia",
          "source_type": "official",
          "source_badge": "Official source",
          "source_quality": "verified"
        },
        {
          "metric_id": "foreign_population_total",
          "block_id": "identity",
          "value": 979,
          "unit": "people",
          "geographic_scope": "city",
          "observed_at": "2025-01-01",
          "verified_at": "2026-07-26",
          "comparison_eligible": true,
          "source_id": "source-7934c8360485",
          "source_url": "https://andmed.stat.ee/api/v1/en/stat/rahvastik/rahvastikunaitajad-ja-koosseis/rahvaarv-ja-rahvastiku-koosseis/RV068.px",
          "source_title": "Statistics Estonia RV068 — population by citizenship and place of residence",
          "source_authority": "Statistics Estonia",
          "source_type": "official",
          "source_badge": "Official source",
          "source_quality": "verified"
        },
        {
          "metric_id": "population_density_per_km2",
          "block_id": "identity",
          "value": 1534.5,
          "unit": "persons/km2",
          "geographic_scope": "linn",
          "observed_at": "2026-01-01",
          "verified_at": "2026-06-12T00:00:00Z",
          "comparison_eligible": true,
          "source_id": "stat_ee_rv031",
          "source_url": "https://andmed.stat.ee/api/v1/et/StatFin/rahvastik/rahvastikunaitajad-ja-koosseis/rahvaarv-ja-rahvastiku-koosseis/RV031.px",
          "source_title": "Statistics Estonia",
          "source_authority": "Statistics Estonia",
          "source_type": "official",
          "source_badge": "Official source",
          "source_quality": "verified"
        },
        {
          "metric_id": "population_total",
          "block_id": "identity",
          "value": 17157,
          "unit": "persons",
          "geographic_scope": "city",
          "observed_at": "2025-01-01",
          "verified_at": "2026-07-26",
          "comparison_eligible": true,
          "source_id": "source-9a12cad200b5",
          "source_url": "https://andmed.stat.ee/api/v1/en/stat/rahvastik/rahvastikunaitajad-ja-koosseis/rahvaarv-ja-rahvastiku-koosseis/RV0240.PX",
          "source_title": "Statistics Estonia RV0240 — population by place of residence",
          "source_authority": "Statistics Estonia",
          "source_type": "official",
          "source_badge": "Official source",
          "source_quality": "verified"
        }
      ],
      "work_income": [
        {
          "metric_id": "fiber_coverage_pct",
          "block_id": "work_income",
          "value": 80,
          "unit": "percent",
          "geographic_scope": "maakond",
          "observed_at": "2026-01-01",
          "verified_at": "2026-06-12T00:00:00Z",
          "comparison_eligible": true,
          "source_id": "ttja_ee",
          "source_url": "https://ttja.ee/",
          "source_title": "Tarbijakaitse ja Tehnilise Järelevalve Amet (TTJA)",
          "source_authority": "Tarbijakaitse ja Tehnilise Järelevalve Amet (TTJA)",
          "source_type": "official",
          "source_badge": "Official source",
          "source_quality": "verified"
        },
        {
          "metric_id": "income_tax_max_rate_percent",
          "block_id": "work_income",
          "value": 20,
          "unit": "percent",
          "geographic_scope": "national",
          "observed_at": "2026-01-01",
          "verified_at": "2026-06-12T00:00:00Z",
          "comparison_eligible": true,
          "source_id": "emta_tax_rates",
          "source_url": "https://www.emta.ee/eraklient/maksud-ja-tasumine/tulu-deklareerimine/maksumaarad",
          "source_title": "Maksu- ja Tolliamet (EMTA)",
          "source_authority": "Maksu- ja Tolliamet (EMTA)",
          "source_type": "official",
          "source_badge": "Official source",
          "source_quality": "verified"
        },
        {
          "metric_id": "median_salary_eur_month",
          "block_id": "work_income",
          "value": 1550,
          "unit": "EUR/month",
          "geographic_scope": "maakond",
          "observed_at": "2026-01-01",
          "verified_at": "2026-06-12T00:00:00Z",
          "comparison_eligible": true,
          "source_id": "stat_ee_pa001",
          "source_url": "https://andmed.stat.ee/api/v1/et/StatFin/palk/palk-ja-toojaoukulu/PA001.px",
          "source_title": "Statistics Estonia",
          "source_authority": "Statistics Estonia",
          "source_type": "official",
          "source_badge": "Official source",
          "source_quality": "verified"
        },
        {
          "metric_id": "top_employment_sector",
          "block_id": "work_income",
          "value": "Manufacturing (C), Agriculture forestry and fishing (A), Wholesale and retail trade (G)",
          "unit": null,
          "geographic_scope": "maakond",
          "observed_at": "2026-01-01",
          "verified_at": "2026-06-12T00:00:00Z",
          "comparison_eligible": true,
          "source_id": "stat_ee_pa001",
          "source_url": "https://andmed.stat.ee/api/v1/et/StatFin/palk/palk-ja-toojaoukulu/PA001.px",
          "source_title": "Statistics Estonia",
          "source_authority": "Statistics Estonia",
          "source_type": "official",
          "source_badge": "Official source",
          "source_quality": "verified"
        },
        {
          "metric_id": "unemployment_rate_percent",
          "block_id": "work_income",
          "value": 7,
          "unit": "percent",
          "geographic_scope": "maakond",
          "observed_at": "2026-01-01",
          "verified_at": "2026-06-12T00:00:00Z",
          "comparison_eligible": true,
          "source_id": "stat_ee_tt10",
          "source_url": "https://andmed.stat.ee/api/v1/et/StatFin/tooelu/tooturg/toojaoukulu/TT10.px",
          "source_title": "Statistics Estonia",
          "source_authority": "Statistics Estonia",
          "source_type": "official",
          "source_badge": "Official source",
          "source_quality": "verified"
        },
        {
          "metric_id": "unemployment_total_percent",
          "block_id": "work_income",
          "value": 2.442152,
          "unit": "percent",
          "geographic_scope": "city",
          "observed_at": "2025-12-31",
          "verified_at": "2026-07-26",
          "comparison_eligible": true,
          "source_id": "source-764c025d760b",
          "source_url": "https://andmed.stat.ee/api/v1/en/stat/sotsiaalelu/tooturg/tootud/luhiajastatistika/TT065.PX",
          "source_title": "Statistics Estonia TT065 + RV0240 — registered unemployment share",
          "source_authority": "Statistics Estonia",
          "source_type": "official",
          "source_badge": "Official source",
          "source_quality": "verified"
        }
      ],
      "climate_air": [
        {
          "metric_id": "climate_avg_temp_jan_c",
          "block_id": "climate_air",
          "value": -5,
          "unit": "°C",
          "geographic_scope": "linn",
          "observed_at": "2026-01-01",
          "verified_at": "2026-06-12T00:00:00Z",
          "comparison_eligible": true,
          "source_id": "ilmateenistus_ee",
          "source_url": "https://www.ilmateenistus.ee/kliima/kliimanormid/",
          "source_title": "Keskkonnaagentuur (KAUR) / ilmateenistus.ee",
          "source_authority": "Keskkonnaagentuur (KAUR) / ilmateenistus.ee",
          "source_type": "official",
          "source_badge": "Official source",
          "source_quality": "verified"
        },
        {
          "metric_id": "climate_precipitation_mm_year",
          "block_id": "climate_air",
          "value": 600,
          "unit": "mm",
          "geographic_scope": "linn",
          "observed_at": "2026-01-01",
          "verified_at": "2026-06-12T00:00:00Z",
          "comparison_eligible": true,
          "source_id": "ilmateenistus_ee",
          "source_url": "https://www.ilmateenistus.ee/kliima/kliimanormid/",
          "source_title": "Keskkonnaagentuur (KAUR) / ilmateenistus.ee",
          "source_authority": "Keskkonnaagentuur (KAUR) / ilmateenistus.ee",
          "source_type": "official",
          "source_badge": "Official source",
          "source_quality": "verified"
        }
      ],
      "mobility_admin": [
        {
          "metric_id": "nearest_airport_destinations_count",
          "block_id": "mobility_admin",
          "value": 1,
          "unit": "count",
          "geographic_scope": "city",
          "observed_at": "2026-06-13",
          "verified_at": "2026-06-13",
          "comparison_eligible": true,
          "source_id": "openflights_routes_dat",
          "source_url": "https://raw.githubusercontent.com/jpatokal/openflights/master/data/routes.dat",
          "source_title": "OpenFlights — routes.dat",
          "source_authority": "multi-country",
          "source_type": "official",
          "source_badge": "Official source",
          "source_quality": "verified"
        },
        {
          "metric_id": "nearest_airport_iata",
          "block_id": "mobility_admin",
          "value": "TKD",
          "unit": "code",
          "geographic_scope": "city",
          "observed_at": "2026-06-13",
          "verified_at": "2026-06-13",
          "comparison_eligible": true,
          "source_id": "ourairports_airports_csv",
          "source_url": "https://davidmegginson.github.io/ourairports-data/airports.csv",
          "source_title": "OurAirports — airports.csv",
          "source_authority": "multi-country",
          "source_type": "official",
          "source_badge": "Official source",
          "source_quality": "verified"
        },
        {
          "metric_id": "nearest_airport_km",
          "block_id": "mobility_admin",
          "value": 579,
          "unit": "km",
          "geographic_scope": "city",
          "observed_at": "2026-06-13",
          "verified_at": "2026-06-13",
          "comparison_eligible": true,
          "source_id": "ourairports_airports_csv",
          "source_url": "https://davidmegginson.github.io/ourairports-data/airports.csv",
          "source_title": "OurAirports — airports.csv",
          "source_authority": "multi-country",
          "source_type": "official",
          "source_badge": "Official source",
          "source_quality": "verified"
        }
      ],
      "other": [
        {
          "metric_id": "corporate_tax_rate_percent",
          "block_id": "other",
          "value": 0,
          "unit": "percent",
          "geographic_scope": "national",
          "observed_at": "2026-01-01",
          "verified_at": "2026-06-12T00:00:00Z",
          "comparison_eligible": true,
          "source_id": "emta_tax_rates",
          "source_url": "https://www.emta.ee/eraklient/maksud-ja-tasumine/tulu-deklareerimine/maksumaarad",
          "source_title": "Maksu- ja Tolliamet (EMTA)",
          "source_authority": "Maksu- ja Tolliamet (EMTA)",
          "source_type": "official",
          "source_badge": "Official source",
          "source_quality": "verified"
        },
        {
          "metric_id": "employer_social_contribution_percent",
          "block_id": "other",
          "value": 33,
          "unit": "percent",
          "geographic_scope": "national",
          "observed_at": "2026-01-01",
          "verified_at": "2026-06-12T00:00:00Z",
          "comparison_eligible": true,
          "source_id": "emta_tax_rates",
          "source_url": "https://www.emta.ee/eraklient/maksud-ja-tasumine/tulu-deklareerimine/maksumaarad",
          "source_title": "Maksu- ja Tolliamet (EMTA)",
          "source_authority": "Maksu- ja Tolliamet (EMTA)",
          "source_type": "official",
          "source_badge": "Official source",
          "source_quality": "verified"
        },
        {
          "metric_id": "vat_standard_percent",
          "block_id": "other",
          "value": 22,
          "unit": "percent",
          "geographic_scope": "national",
          "observed_at": "2026-01-01",
          "verified_at": "2026-06-12T00:00:00Z",
          "comparison_eligible": true,
          "source_id": "emta_tax_rates",
          "source_url": "https://www.emta.ee/eraklient/maksud-ja-tasumine/tulu-deklareerimine/maksumaarad",
          "source_title": "Maksu- ja Tolliamet (EMTA)",
          "source_authority": "Maksu- ja Tolliamet (EMTA)",
          "source_type": "official",
          "source_badge": "Official source",
          "source_quality": "verified"
        }
      ]
    }
  }
}
