{
  "snapshot_id": "approved-static-bb6d69cd3c074ae2",
  "schema_version": "immigrationdb-city-resource-v2",
  "generated_at": "2026-08-04",
  "canonical_path": "/cities/dk/vejle/",
  "mcp_uri": "immigrationdb://city/dk/vejle",
  "editorial_copy": {
    "status": "reviewed",
    "reviewed_at": "2026-07-29",
    "copy_depth": "city_standard",
    "blocks": {
      "intro": "Population density was 116 people per km² in 2026. The unemployment rate was 2.3% in November 2025. Vejle is in Denmark; its population was 122,000 at the start of 2024. Car density was 549 vehicles per 1,000 residents at the start of 2026. The city covered 1,058.7 km² in 2026.",
      "mobility_lead": "The nearest airport was BLL, 24 km away, with 39 listed destinations in June 2026.",
      "immigration_lead": "The foreign population count was 15,149 at the start of 2026."
    },
    "used_claim_count": 9,
    "uses_supplemental_cd": false
  },
  "city": {
    "entity_id": "city:dk:slug:vejle",
    "name": "Vejle",
    "country_code": "DK",
    "public_slug": "vejle",
    "canonical_path": "/cities/dk/vejle/",
    "mcp_uri": "immigrationdb://city/dk/vejle",
    "page_state": "published",
    "useful_blocks": [
      "mobility_admin",
      "cost_living",
      "safety",
      "work_income",
      "other"
    ],
    "useful_fact_count": 17,
    "city_tags": [
      "economic_hub",
      "regional_capital"
    ],
    "profile_scores": {
      "remote": {
        "point": 58,
        "low": 44,
        "high": 72,
        "factors": {
          "legal_path": 88,
          "cost_pressure": 48,
          "housing": 45,
          "work": 60,
          "family": 60,
          "education": 45,
          "healthcare": 45,
          "safety": 47,
          "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": 48,
          "housing": 45,
          "work": 60,
          "family": 60,
          "education": 45,
          "healthcare": 45,
          "safety": 47,
          "air": 45,
          "bureaucracy": 45
        },
        "housing_budget": {
          "status": "unavailable",
          "currency": null,
          "fx_date": null,
          "normalized_monthly_eur": null,
          "source_id": null,
          "basis": null
        }
      },
      "family": {
        "point": 50,
        "low": 36,
        "high": 64,
        "factors": {
          "legal_path": 54,
          "cost_pressure": 48,
          "housing": 45,
          "work": 60,
          "family": 60,
          "education": 45,
          "healthcare": 45,
          "safety": 47,
          "air": 45,
          "bureaucracy": 45
        },
        "housing_budget": {
          "status": "unavailable",
          "currency": null,
          "fx_date": null,
          "normalized_monthly_eur": null,
          "source_id": null,
          "basis": null
        }
      },
      "student": {
        "point": 52,
        "low": 38,
        "high": 66,
        "factors": {
          "legal_path": 54,
          "cost_pressure": 48,
          "housing": 45,
          "work": 60,
          "family": 60,
          "education": 45,
          "healthcare": 45,
          "safety": 47,
          "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": 48,
          "housing": 45,
          "work": 60,
          "family": 60,
          "education": 45,
          "healthcare": 45,
          "safety": 47,
          "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": 549,
          "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": 1058.7,
          "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": 15149,
          "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": 116,
          "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": 122000,
          "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": 38.77,
          "unit": "EUR/month",
          "geographic_scope": "city",
          "observed_at": "2025-12-31",
          "verified_at": "2026-08-01",
          "comparison_eligible": false,
          "source_id": "633:source:be500493f55b373a9d6f7c69aceefe91",
          "source_url": "https://web.archive.org/web/20250116150551/https://www.numbeo.com/cost-of-living/in/Vejle",
          "source_title": "Numbeo — Cost of Living in Vejle (Wayback capture 20250116150551)",
          "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.63,
          "unit": "EUR/month",
          "geographic_scope": "city",
          "observed_at": "2025-12-31",
          "verified_at": "2026-08-01",
          "comparison_eligible": false,
          "source_id": "633:source:be500493f55b373a9d6f7c69aceefe91",
          "source_url": "https://web.archive.org/web/20250116150551/https://www.numbeo.com/cost-of-living/in/Vejle",
          "source_title": "Numbeo — Cost of Living in Vejle (Wayback capture 20250116150551)",
          "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": 468.21,
          "unit": "EUR/month",
          "geographic_scope": "city",
          "observed_at": "2025-12-31",
          "verified_at": "2026-08-01",
          "comparison_eligible": false,
          "source_id": "633:source:be500493f55b373a9d6f7c69aceefe91",
          "source_url": "https://web.archive.org/web/20250116150551/https://www.numbeo.com/cost-of-living/in/Vejle",
          "source_title": "Numbeo — Cost of Living in Vejle (Wayback capture 20250116150551)",
          "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": 15.34,
          "unit": "EUR/month",
          "geographic_scope": "city",
          "observed_at": "2025-12-31",
          "verified_at": "2026-08-01",
          "comparison_eligible": false,
          "source_id": "633:source:be500493f55b373a9d6f7c69aceefe91",
          "source_url": "https://web.archive.org/web/20250116150551/https://www.numbeo.com/cost-of-living/in/Vejle",
          "source_title": "Numbeo — Cost of Living in Vejle (Wayback capture 20250116150551)",
          "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": 63.54,
          "unit": "EUR/month",
          "geographic_scope": "city",
          "observed_at": "2025-12-31",
          "verified_at": "2026-08-01",
          "comparison_eligible": false,
          "source_id": "633:source:be500493f55b373a9d6f7c69aceefe91",
          "source_url": "https://web.archive.org/web/20250116150551/https://www.numbeo.com/cost-of-living/in/Vejle",
          "source_title": "Numbeo — Cost of Living in Vejle (Wayback capture 20250116150551)",
          "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": 170.56,
          "unit": "EUR/month",
          "geographic_scope": "city",
          "observed_at": "2025-12-31",
          "verified_at": "2026-08-01",
          "comparison_eligible": false,
          "source_id": "633:source:be500493f55b373a9d6f7c69aceefe91",
          "source_url": "https://web.archive.org/web/20250116150551/https://www.numbeo.com/cost-of-living/in/Vejle",
          "source_title": "Numbeo — Cost of Living in Vejle (Wayback capture 20250116150551)",
          "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.3,
          "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": 6989.648602,
          "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"
        }
      ],
      "mobility_admin": [
        {
          "metric_id": "nearest_airport_destinations_count",
          "block_id": "mobility_admin",
          "value": 39,
          "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": "BLL",
          "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": 24,
          "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"
        }
      ]
    }
  }
}
