{
  "snapshot_id": "approved-static-bb6d69cd3c074ae2",
  "schema_version": "immigrationdb-city-resource-v2",
  "generated_at": "2026-08-04",
  "canonical_path": "/cities/dk/esbjerg/",
  "mcp_uri": "immigrationdb://city/dk/esbjerg",
  "editorial_copy": {
    "status": "reviewed",
    "reviewed_at": "2026-07-29",
    "copy_depth": "city_standard",
    "blocks": {
      "intro": "Esbjerg had 115,000 residents at the start of 2024 and is a city in Denmark. Population density was 144 people per km² in 2026. The unemployment rate was 2.4% in November 2025. The nearest airport was EBJ, 8 km away, with 2 listed destinations in June 2026. The city covered 795.6 km² in 2026.",
      "mobility_lead": "Car density was 522 vehicles per 1,000 residents at the start of 2026.",
      "immigration_lead": "The foreign population count was 10,641 at the start of 2026."
    },
    "used_claim_count": 9,
    "uses_supplemental_cd": false
  },
  "city": {
    "entity_id": "city:dk:slug:esbjerg",
    "name": "Esbjerg",
    "country_code": "DK",
    "public_slug": "esbjerg",
    "canonical_path": "/cities/dk/esbjerg/",
    "mcp_uri": "immigrationdb://city/dk/esbjerg",
    "page_state": "published",
    "useful_blocks": [
      "mobility_admin",
      "cost_living",
      "climate_air",
      "safety",
      "work_income",
      "other"
    ],
    "useful_fact_count": 18,
    "city_tags": [
      "economic_hub",
      "regional_capital"
    ],
    "profile_scores": {
      "remote": {
        "point": 60,
        "low": 46,
        "high": 74,
        "factors": {
          "legal_path": 88,
          "cost_pressure": 57,
          "housing": 45,
          "work": 60,
          "family": 54,
          "education": 45,
          "healthcare": 45,
          "safety": 45,
          "air": 45,
          "bureaucracy": 45
        },
        "housing_budget": {
          "status": "unavailable",
          "currency": null,
          "fx_date": null,
          "normalized_monthly_eur": null,
          "source_id": null,
          "basis": null
        }
      },
      "skilled_employee": {
        "point": 55,
        "low": 41,
        "high": 69,
        "factors": {
          "legal_path": 54,
          "cost_pressure": 57,
          "housing": 45,
          "work": 60,
          "family": 54,
          "education": 45,
          "healthcare": 45,
          "safety": 45,
          "air": 45,
          "bureaucracy": 45
        },
        "housing_budget": {
          "status": "unavailable",
          "currency": null,
          "fx_date": null,
          "normalized_monthly_eur": null,
          "source_id": null,
          "basis": null
        }
      },
      "family": {
        "point": 49,
        "low": 35,
        "high": 63,
        "factors": {
          "legal_path": 54,
          "cost_pressure": 57,
          "housing": 45,
          "work": 60,
          "family": 54,
          "education": 45,
          "healthcare": 45,
          "safety": 45,
          "air": 45,
          "bureaucracy": 45
        },
        "housing_budget": {
          "status": "unavailable",
          "currency": null,
          "fx_date": null,
          "normalized_monthly_eur": null,
          "source_id": null,
          "basis": null
        }
      },
      "student": {
        "point": 54,
        "low": 40,
        "high": 68,
        "factors": {
          "legal_path": 54,
          "cost_pressure": 57,
          "housing": 45,
          "work": 60,
          "family": 54,
          "education": 45,
          "healthcare": 45,
          "safety": 45,
          "air": 45,
          "bureaucracy": 45
        },
        "housing_budget": {
          "status": "unavailable",
          "currency": null,
          "fx_date": null,
          "normalized_monthly_eur": null,
          "source_id": null,
          "basis": null
        }
      },
      "retirement": {
        "point": 51,
        "low": 37,
        "high": 65,
        "factors": {
          "legal_path": 88,
          "cost_pressure": 57,
          "housing": 45,
          "work": 60,
          "family": 54,
          "education": 45,
          "healthcare": 45,
          "safety": 45,
          "air": 45,
          "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": "car_density_per_1000",
          "block_id": "identity",
          "value": 522,
          "unit": "cars/1000 residents",
          "geographic_scope": "city",
          "observed_at": "2026-01-01",
          "verified_at": "2026-07-15",
          "comparison_eligible": true,
          "source_id": "dst_bil54_2026m01__dst_folk1a_2026k1",
          "source_url": "https://api.statbank.dk/v1/data",
          "source_title": "Derived stock density from DST BIL54 passenger-car stock and DST FOLK1A population. BIL54 is stock of passenger cars, not registrations, trips or ownership-only subset.",
          "source_authority": "Danmarks Statistik (DST)",
          "source_type": "official",
          "source_badge": "Official source",
          "source_quality": "verified"
        },
        {
          "metric_id": "city_area_km2",
          "block_id": "identity",
          "value": 795.6,
          "unit": "km2",
          "geographic_scope": "city",
          "observed_at": "2026-01-01",
          "verified_at": "2026-07-15",
          "comparison_eligible": true,
          "source_id": "dst_are207_2026",
          "source_url": "https://api.statbank.dk/v1/data",
          "source_title": "DST ARE207 Area 1 January; area based on the SDFE land register. Registered area is used; some lakes are excluded according to the table footnote.",
          "source_authority": "Danmarks Statistik (DST)",
          "source_type": "official",
          "source_badge": "Official source",
          "source_quality": "verified"
        },
        {
          "metric_id": "foreign_population_total",
          "block_id": "identity",
          "value": 10641,
          "unit": "people",
          "geographic_scope": "city",
          "observed_at": "2026-01-01",
          "verified_at": "2026-07-15",
          "comparison_eligible": true,
          "source_id": "dst_folk1d_2026k1_foreign_citizens",
          "source_url": "https://api.statbank.dk/v1/data",
          "source_title": "DST FOLK1D: population at the first day of the quarter, total sex, total age, STATSB=UDLAND (Foreign citizen). This is citizenship, not foreign-born or foreign-origin population.",
          "source_authority": "Danmarks Statistik (DST)",
          "source_type": "official",
          "source_badge": "Official source",
          "source_quality": "verified"
        },
        {
          "metric_id": "population_density_per_km2",
          "block_id": "identity",
          "value": 144,
          "unit": "people/km2",
          "geographic_scope": "city",
          "observed_at": "2026-01-01",
          "verified_at": "2026-07-15",
          "comparison_eligible": true,
          "source_id": "dst_folk1a_2026k1__dst_are207_2026",
          "source_url": "https://api.statbank.dk/v1/data",
          "source_title": "Derived municipality density from DST population and ARE207 registered municipal area.",
          "source_authority": "Danmarks Statistik (DST)",
          "source_type": "official",
          "source_badge": "Official source",
          "source_quality": "verified"
        },
        {
          "metric_id": "population_total",
          "block_id": "identity",
          "value": 115000,
          "unit": "people",
          "geographic_scope": "place",
          "observed_at": "2024-01-01",
          "verified_at": "2026-07-14",
          "comparison_eligible": true,
          "source_id": "Danmarks Statistik",
          "source_url": "https://www.dst.dk/da/TilSalg/data-til-forskning/generelt-om-data/dokumentation-af-data/hoejkvalitetsvariable/folketal/kom",
          "source_title": "DST KOM kommunekode source register; exact municipality row keyed by kommunekode.",
          "source_authority": "Danmarks Statistik",
          "source_type": "official",
          "source_badge": "Official source",
          "source_quality": "verified"
        }
      ],
      "cost_living": [
        {
          "metric_id": "col_fitness_club_eur_month",
          "block_id": "cost_living",
          "value": 33.44,
          "unit": "EUR/month",
          "geographic_scope": "city",
          "observed_at": "2025-12-31",
          "verified_at": "2026-08-01",
          "comparison_eligible": false,
          "source_id": "633:source:0afe3b7b0fc7848cf7293ced61256c96",
          "source_url": "https://web.archive.org/web/20250117201837/https://www.numbeo.com/cost-of-living/in/Esbjerg",
          "source_title": "Numbeo — Cost of Living in Esbjerg (Wayback capture 20250117201837)",
          "source_authority": "Numbeo",
          "source_type": "independent",
          "source_badge": "Independent source",
          "source_quality": "supplemental"
        },
        {
          "metric_id": "col_internet_60mbps_eur_month",
          "block_id": "cost_living",
          "value": 35.25,
          "unit": "EUR/month",
          "geographic_scope": "city",
          "observed_at": "2025-12-31",
          "verified_at": "2026-08-01",
          "comparison_eligible": false,
          "source_id": "633:source:0afe3b7b0fc7848cf7293ced61256c96",
          "source_url": "https://web.archive.org/web/20250117201837/https://www.numbeo.com/cost-of-living/in/Esbjerg",
          "source_title": "Numbeo — Cost of Living in Esbjerg (Wayback capture 20250117201837)",
          "source_authority": "Numbeo",
          "source_type": "independent",
          "source_badge": "Independent source",
          "source_quality": "supplemental"
        },
        {
          "metric_id": "col_kindergarten_private_eur_month",
          "block_id": "cost_living",
          "value": 508.35,
          "unit": "EUR/month",
          "geographic_scope": "city",
          "observed_at": "2025-12-31",
          "verified_at": "2026-08-01",
          "comparison_eligible": false,
          "source_id": "633:source:0afe3b7b0fc7848cf7293ced61256c96",
          "source_url": "https://web.archive.org/web/20250117201837/https://www.numbeo.com/cost-of-living/in/Esbjerg",
          "source_title": "Numbeo — Cost of Living in Esbjerg (Wayback capture 20250117201837)",
          "source_authority": "Numbeo",
          "source_type": "independent",
          "source_badge": "Independent source",
          "source_quality": "supplemental"
        },
        {
          "metric_id": "col_mobile_plan_10gb_eur_month",
          "block_id": "cost_living",
          "value": 17.18,
          "unit": "EUR/month",
          "geographic_scope": "city",
          "observed_at": "2025-12-31",
          "verified_at": "2026-08-01",
          "comparison_eligible": false,
          "source_id": "633:source:0afe3b7b0fc7848cf7293ced61256c96",
          "source_url": "https://web.archive.org/web/20250117201837/https://www.numbeo.com/cost-of-living/in/Esbjerg",
          "source_title": "Numbeo — Cost of Living in Esbjerg (Wayback capture 20250117201837)",
          "source_authority": "Numbeo",
          "source_type": "independent",
          "source_badge": "Independent source",
          "source_quality": "supplemental"
        },
        {
          "metric_id": "col_transport_monthly_pass_eur",
          "block_id": "cost_living",
          "value": 167.22,
          "unit": "EUR/month",
          "geographic_scope": "city",
          "observed_at": "2025-12-31",
          "verified_at": "2026-08-01",
          "comparison_eligible": false,
          "source_id": "633:source:0afe3b7b0fc7848cf7293ced61256c96",
          "source_url": "https://web.archive.org/web/20250117201837/https://www.numbeo.com/cost-of-living/in/Esbjerg",
          "source_title": "Numbeo — Cost of Living in Esbjerg (Wayback capture 20250117201837)",
          "source_authority": "Numbeo",
          "source_type": "independent",
          "source_badge": "Independent source",
          "source_quality": "supplemental"
        },
        {
          "metric_id": "col_utilities_basic_85m2_eur_month",
          "block_id": "cost_living",
          "value": 178.79,
          "unit": "EUR/month",
          "geographic_scope": "city",
          "observed_at": "2025-12-31",
          "verified_at": "2026-08-01",
          "comparison_eligible": false,
          "source_id": "633:source:0afe3b7b0fc7848cf7293ced61256c96",
          "source_url": "https://web.archive.org/web/20250117201837/https://www.numbeo.com/cost-of-living/in/Esbjerg",
          "source_title": "Numbeo — Cost of Living in Esbjerg (Wayback capture 20250117201837)",
          "source_authority": "Numbeo",
          "source_type": "independent",
          "source_badge": "Independent source",
          "source_quality": "supplemental"
        }
      ],
      "work_income": [
        {
          "metric_id": "unemployment_total_percent",
          "block_id": "work_income",
          "value": 2.4,
          "unit": "percent",
          "geographic_scope": "city",
          "observed_at": "2025-11-30",
          "verified_at": "2026-07-26",
          "comparison_eligible": true,
          "source_id": "source-8327f4a013b3",
          "source_url": "https://api.statbank.dk/v1/data/AUP02/CSV",
          "source_title": "StatBank Denmark AUP02 — unemployed in per cent of the labour force",
          "source_authority": "Statistics Denmark",
          "source_type": "official",
          "source_badge": "Official source",
          "source_quality": "verified"
        }
      ],
      "safety": [
        {
          "metric_id": "crime_incidents_per_100k",
          "block_id": "safety",
          "value": 7110.12245,
          "unit": "offences/100k",
          "geographic_scope": "city",
          "observed_at": "2025-12-31",
          "verified_at": "2026-07-27",
          "comparison_eligible": true,
          "source_id": "source-600620cda256",
          "source_url": "https://api.statbank.dk/v1/data/STRAF11/CSV",
          "source_title": "StatBank Denmark STRAF11 — reported criminal offences, municipality, all offence types",
          "source_authority": "Statistics Denmark",
          "source_type": "official",
          "source_badge": "Official source",
          "source_quality": "verified"
        }
      ],
      "climate_air": [
        {
          "metric_id": "climate_monthly_precip_mm",
          "block_id": "climate_air",
          "value": [
            67.6,
            55,
            49.3,
            36,
            40.3,
            56.8,
            64.6,
            83.5,
            88.3,
            100,
            86,
            80.6
          ],
          "unit": "mm",
          "geographic_scope": "nearest_station",
          "observed_at": "1991-12-31",
          "verified_at": "2026-08-01",
          "comparison_eligible": true,
          "source_id": "633:source:dd6168666a1d454d6a41a0c43edccab7",
          "source_url": "https://www.ncei.noaa.gov/data/oceans/archive/arc0216/0253808/1.1/data/0-data/Region-6-WMO-Normals-9120/Denmark/CSV/NORDBY_06088.csv",
          "source_title": "WMO Climatological Normals 1991-2020 — station NORDBY",
          "source_authority": "World Meteorological Organization / NOAA NCEI",
          "source_type": "official",
          "source_badge": "Official source",
          "source_quality": "verified"
        }
      ],
      "mobility_admin": [
        {
          "metric_id": "nearest_airport_destinations_count",
          "block_id": "mobility_admin",
          "value": 2,
          "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": "EBJ",
          "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": 8,
          "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": "english_portal_url",
          "block_id": "other",
          "value": "https://www.nyidanmark.dk/",
          "unit": "url",
          "geographic_scope": "city",
          "observed_at": "2026-06-09",
          "verified_at": "2026-06-10T00:00:00Z",
          "comparison_eligible": true,
          "source_id": "nyidanmark",
          "source_url": "https://www.nyidanmark.dk/en",
          "source_title": "nyidanmark.dk — Danish immigration portal (English)",
          "source_authority": "nyidanmark.dk",
          "source_type": "official",
          "source_badge": "Official source",
          "source_quality": "verified"
        }
      ]
    }
  }
}
