{
  "snapshot_id": "approved-static-bb6d69cd3c074ae2",
  "schema_version": "immigrationdb-city-resource-v2",
  "generated_at": "2026-08-04",
  "canonical_path": "/cities/dk/haderslev/",
  "mcp_uri": "immigrationdb://city/dk/haderslev",
  "editorial_copy": {
    "status": "reviewed",
    "reviewed_at": "2026-07-29",
    "copy_depth": "city_standard",
    "blocks": {
      "intro": "For Haderslev, car density was 580 vehicles per 1,000 residents at the start of 2026. The city covered 816.8 km² in 2026. Population density was 68 people per km² in 2026. The unemployment rate was 2.5% in November 2025. Haderslev is in Denmark; its population was 56,000 at the start of 2024.",
      "mobility_lead": "The nearest airport was SGD, 37.1 km away, with 1 listed destinations in June 2026.",
      "immigration_lead": "The foreign population count was 6,279 at the start of 2026."
    },
    "used_claim_count": 9,
    "uses_supplemental_cd": false
  },
  "city": {
    "entity_id": "city:dk:slug:haderslev",
    "name": "Haderslev",
    "country_code": "DK",
    "public_slug": "haderslev",
    "canonical_path": "/cities/dk/haderslev/",
    "mcp_uri": "immigrationdb://city/dk/haderslev",
    "page_state": "published",
    "useful_blocks": [
      "mobility_admin",
      "safety",
      "work_income",
      "other"
    ],
    "useful_fact_count": 11,
    "city_tags": [
      "regional_hub"
    ],
    "profile_scores": {
      "remote": {
        "point": 61,
        "low": 47,
        "high": 75,
        "factors": {
          "legal_path": 88,
          "cost_pressure": 62,
          "housing": 45,
          "work": 60,
          "family": 55,
          "education": 45,
          "healthcare": 45,
          "safety": 52,
          "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": 56,
        "low": 42,
        "high": 70,
        "factors": {
          "legal_path": 54,
          "cost_pressure": 62,
          "housing": 45,
          "work": 60,
          "family": 55,
          "education": 45,
          "healthcare": 45,
          "safety": 52,
          "air": 45,
          "bureaucracy": 45
        },
        "housing_budget": {
          "status": "unavailable",
          "currency": null,
          "fx_date": null,
          "normalized_monthly_eur": null,
          "source_id": null,
          "basis": null
        }
      },
      "family": {
        "point": 51,
        "low": 37,
        "high": 65,
        "factors": {
          "legal_path": 54,
          "cost_pressure": 62,
          "housing": 45,
          "work": 60,
          "family": 55,
          "education": 45,
          "healthcare": 45,
          "safety": 52,
          "air": 45,
          "bureaucracy": 45
        },
        "housing_budget": {
          "status": "unavailable",
          "currency": null,
          "fx_date": null,
          "normalized_monthly_eur": null,
          "source_id": null,
          "basis": null
        }
      },
      "student": {
        "point": 56,
        "low": 42,
        "high": 70,
        "factors": {
          "legal_path": 54,
          "cost_pressure": 62,
          "housing": 45,
          "work": 60,
          "family": 55,
          "education": 45,
          "healthcare": 45,
          "safety": 52,
          "air": 45,
          "bureaucracy": 45
        },
        "housing_budget": {
          "status": "unavailable",
          "currency": null,
          "fx_date": null,
          "normalized_monthly_eur": null,
          "source_id": null,
          "basis": null
        }
      },
      "retirement": {
        "point": 53,
        "low": 39,
        "high": 67,
        "factors": {
          "legal_path": 88,
          "cost_pressure": 62,
          "housing": 45,
          "work": 60,
          "family": 55,
          "education": 45,
          "healthcare": 45,
          "safety": 52,
          "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": 580,
          "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": 816.8,
          "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": 6279,
          "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": 68,
          "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": 56000,
          "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"
        }
      ],
      "work_income": [
        {
          "metric_id": "unemployment_total_percent",
          "block_id": "work_income",
          "value": 2.5,
          "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": 6367.120503,
          "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": 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": "SGD",
          "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": 37.1,
          "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"
        }
      ]
    }
  }
}
