{
  "snapshot_id": "approved-static-48d32b636f07abc8",
  "page_version": "037fa4752a70b4013fe25a3a8266899f",
  "content_date": "2026-10-16",
  "schema_version": "immigrationdb-city-resource-v2",
  "generated_at": "2026-10-25",
  "citation": {
    "@type": "CreativeWork",
    "@id": "https://immigrationdb.com/cities/dk/otterup/#citation",
    "schema_version": "immigrationdb-citation-v1",
    "citation_type": "ImmigrationDB compilation",
    "canonical_url": "https://immigrationdb.com/cities/dk/otterup/",
    "title": "Otterup, Denmark: population, rent, salary, cost of living",
    "author": {
      "name": "ImmigrationDB",
      "url": "https://immigrationdb.com/"
    },
    "publisher": {
      "name": "ImmigrationDB",
      "url": "https://immigrationdb.com/"
    },
    "snapshot_id": "approved-static-48d32b636f07abc8",
    "version": "037fa4752a70b4013fe25a3a8266899f",
    "retrieval_date": "2026-10-16",
    "build_date": "2026-10-16",
    "compilation_license": {
      "name": "CC BY 4.0",
      "url": "https://creativecommons.org/licenses/by/4.0/",
      "terms_url": "https://immigrationdb.com/about/copyright/"
    },
    "formats": {
      "apa": "ImmigrationDB. (2026, October 16). Otterup, Denmark: population, rent, salary, cost of living [ImmigrationDB compilation; version 037fa4752a70b4013fe25a3a8266899f]. ImmigrationDB. https://immigrationdb.com/cities/dk/otterup/ Retrieved 2026-10-16. Compilation license: CC BY 4.0, https://creativecommons.org/licenses/by/4.0/",
      "bibtex": "@misc{immigrationdb_immigrationdb_otterup-denmark-population-rent-salary-cost-of-living_842adbe79ff3,\n  author = {ImmigrationDB},\n  title = {Otterup, Denmark: population, rent, salary, cost of living},\n  publisher = {ImmigrationDB},\n  year = {2026},\n  date = {2026-10-16},\n  version = {037fa4752a70b4013fe25a3a8266899f},\n  url = {https://immigrationdb.com/cities/dk/otterup/},\n  note = {Retrieved 2026-10-16. ImmigrationDB compilation. Compilation license: CC BY 4.0, https://creativecommons.org/licenses/by/4.0/},\n}",
      "markdown": "[Otterup, Denmark: population, rent, salary, cost of living](https://immigrationdb.com/cities/dk/otterup/) — ImmigrationDB; ImmigrationDB; version 037fa4752a70b4013fe25a3a8266899f; retrieved 2026-10-16; built 2026-10-16."
    },
    "boundary_note": "This citation identifies the ImmigrationDB compilation/page. Underlying source publishers and datasets retain their own terms; inspect the Sources section and cite those records separately."
  },
  "generated_overview": "An unemployment rate of 3.3% was measured in November 2025.",
  "generated_overview_claim_ids": [],
  "underlying_source_references": [
    {
      "source_id": "source-b75f127f5266",
      "source_url": "https://api.statbank.dk/v1/data/BY3/CSV",
      "source_title": "Population 1. January",
      "publisher": "Population 1. January",
      "source_quality": "verified",
      "last_checked": "2026-09-23"
    },
    {
      "source_id": "source-22057e8ab18b",
      "source_url": "https://lbf.dk/media/tdtm43i4/basistabeller-for-huslejestatistik-2026.xlsx",
      "source_title": "Landsbyggefonden Huslejestatistik 2026",
      "publisher": "Landsbyggefonden Huslejestatistik 2026",
      "source_quality": "verified",
      "last_checked": "2026-10-06"
    },
    {
      "source_id": "source-982b0ce30dae",
      "source_url": "https://api.statbank.dk/v1/data",
      "source_title": "Level of earnings by work/residence, region, age, sex and family type (LIGELB1)",
      "publisher": "Level of earnings by work/residence, region, age, sex and family type (LIGELB1)",
      "source_quality": "verified",
      "last_checked": "2026-10-07"
    },
    {
      "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",
      "publisher": "StatBank Denmark AUP02",
      "source_quality": "verified",
      "last_checked": "2026-07-26"
    },
    {
      "source_id": "source-97ee8ae8d254",
      "source_url": "https://www.nodc.noaa.gov/archive/arc0216/0253808/1.1/data/0-data/data-composite-primary-parameters/wmo_normals_9120_TAVG.csv",
      "source_title": "NOAA National Centers for Environmental Information / WMO",
      "publisher": "NOAA National Centers for Environmental Information / WMO",
      "source_quality": "verified",
      "last_checked": "2026-08-06"
    },
    {
      "source_id": "source-6fae53d787a5",
      "source_url": "https://www.norlys.dk/internet/",
      "source_title": "Norlys fixed broadband",
      "publisher": "Norlys fixed broadband",
      "source_quality": "verified",
      "last_checked": "2026-09-15"
    },
    {
      "source_id": "source-401936cb8d69",
      "source_url": "https://www.3.dk/internet/mobilt-internet/",
      "source_title": "3 mobile internet 10GB",
      "publisher": "3 mobile internet 10GB",
      "source_quality": "verified",
      "last_checked": "2026-09-15"
    },
    {
      "source_id": "source-f7aac9816cb9",
      "source_url": "https://api.statbank.dk/v1/data?lang=en",
      "source_title": "Reported criminal offences and charges by region, type of offence and reported criminal offences and charges (STRAF22)",
      "publisher": "Reported criminal offences and charges by region, type of offence and reported criminal offences and charges (STRAF22)",
      "source_quality": "verified",
      "last_checked": "2026-10-05"
    },
    {
      "source_id": "source-4e7d55f2c3dd",
      "source_url": "https://davidmegginson.github.io/ourairports-data/airports.csv",
      "source_title": "OurAirports",
      "publisher": "OurAirports",
      "source_quality": "verified",
      "last_checked": "2026-08-03"
    },
    {
      "source_id": "source-b525a1de8f2f",
      "source_url": "https://gisco-services.ec.europa.eu/distribution/v2/urau/geojson/URAU_RG_100K_2021_4326_FUA.geojson",
      "source_title": "GISCO Urban Audit 2021 — Functional Urban Areas (URAU_RG_100K_2021_4326_FUA)",
      "publisher": "GISCO Urban Audit 2021",
      "source_quality": "verified",
      "last_checked": "2026-09-19"
    },
    {
      "source_id": "source-b44c85354f51",
      "source_url": "https://www.wikidata.org/wiki/Q2633021",
      "source_title": "Coordinate identity evidence",
      "publisher": "Coordinate identity evidence",
      "source_quality": "verified",
      "last_checked": "2026-09-06"
    },
    {
      "source_id": "source-9f157da109a4",
      "source_url": "https://www.wikidata.org/wiki/Q21146",
      "source_title": "Wikidata identity and coordinates — Q21146",
      "publisher": "Wikidata identity and coordinates",
      "source_quality": "verified",
      "last_checked": "2026-09-05"
    },
    {
      "source_id": "source-12fb0cdb5235",
      "source_url": "https://ec.europa.eu/eurostat/databrowser/view/urb_clivcon/default/table?lang=en",
      "source_title": "Eurostat",
      "publisher": "Eurostat",
      "source_quality": "verified",
      "last_checked": "2026-08-27"
    },
    {
      "source_id": "source-fdfab222ff24",
      "source_url": "https://www.wikidata.org/wiki/Q20770",
      "source_title": "Wikidata identity and coordinates — Q20770",
      "publisher": "Wikidata identity and coordinates",
      "source_quality": "verified",
      "last_checked": "2026-09-05"
    },
    {
      "source_id": "source-621a2a269300",
      "source_url": "https://www.wikidata.org/wiki/Q1953365",
      "source_title": "Coordinate identity evidence",
      "publisher": "Coordinate identity evidence",
      "source_quality": "verified",
      "last_checked": "2026-09-06"
    },
    {
      "source_id": "source-688cdc93f3d8",
      "source_url": "https://www.wikidata.org/wiki/Q12328490",
      "source_title": "Coordinate identity evidence",
      "publisher": "Coordinate identity evidence",
      "source_quality": "verified",
      "last_checked": "2026-09-06"
    },
    {
      "source_id": "source-2fb4c18b6423",
      "source_url": "https://www.wikidata.org/wiki/Q612488",
      "source_title": "Wikidata identity and coordinates — Q612488",
      "publisher": "Wikidata identity and coordinates",
      "source_quality": "verified",
      "last_checked": "2026-09-05"
    },
    {
      "source_id": "source-5228aefe4ed0",
      "source_url": "https://www.wikidata.org/wiki/Q2788987",
      "source_title": "Coordinate identity evidence",
      "publisher": "Coordinate identity evidence",
      "source_quality": "verified",
      "last_checked": "2026-09-06"
    },
    {
      "source_id": "688:source:dk-lifeindenmark",
      "source_url": "https://lifeindenmark.borger.dk/leisure-and-networking/Danish-language-training",
      "source_title": "page#Danish-language-training",
      "publisher": "lifeindenmark.borger.dk",
      "source_quality": "verified",
      "last_checked": "2026-08-10"
    },
    {
      "source_id": "source-c6b32b4ee688",
      "source_url": "https://jobnet.dk/",
      "source_title": "Jobnet Denmark",
      "publisher": "Danish Agency for Labour Market and Recruitment (STAR)",
      "source_quality": "verified",
      "last_checked": "2026-08-10"
    },
    {
      "source_id": "source-6d9be1a94b5f",
      "source_url": "https://lifeindenmark.borger.dk/healthcare/health-insurance/health-insurance-in-denmark---if-you-move-to-denmark-",
      "source_title": "lifeindenmark.dk (official Danish government portal for newcomers)",
      "publisher": "lifeindenmark.dk (official Danish government portal for newcomers)",
      "source_quality": "verified",
      "last_checked": "2026-08-03"
    }
  ],
  "canonical_path": "/cities/dk/otterup/",
  "rankings": [],
  "mcp_uri": "immigrationdb://city/dk/otterup",
  "editorial_copy": {
    "status": "reviewed",
    "reviewed_at": "2026-08-08",
    "copy_depth": "city_standard",
    "blocks": {
      "intro": "An unemployment rate of 3.3% was measured in November 2025.",
      "climate_lead": "Otterup's monthly mean temperatures were 1.8°C in January and 17.3°C in July.",
      "mobility_lead": "Otterup's nearest major airport was 6 km away.",
      "safety_lead": "The city's crime rate was 5,577.1 incidents per 100,000 residents at the end of 2025."
    },
    "used_claim_count": 3,
    "uses_supplemental_cd": false
  },
  "city": {
    "coordinates": {
      "coordinate_id": "source-76d934c6db32",
      "latitude": 55.516666666,
      "longitude": 10.4,
      "source_id": "source-b44c85354f51",
      "source_url": "https://www.wikidata.org/wiki/Q2633021",
      "source_locator": "P1566 exact lookup (2615351; Wikidata lexical value 2615351); P625",
      "source_quality": "verified",
      "observed_at": "2026-09-06",
      "verified_at": "2026-09-06",
      "method": "registry_wikidata_cross_reference",
      "identity_property": "P1566",
      "identity_key": "2615351",
      "wikidata_qid": "Q2633021"
    },
    "entity_id": "city:dk:geonames:2615351",
    "name": "Otterup",
    "name_en": "Otterup",
    "country_code": "DK",
    "public_slug": "otterup",
    "canonical_path": "/cities/dk/otterup/",
    "mcp_uri": "immigrationdb://city/dk/otterup",
    "page_state": "published",
    "usefulness": {
      "policy": "city_usefulness_v1",
      "has_reviewed_copy": true,
      "valid_slug": true,
      "counts": {
        "ab_facts": 11,
        "metrics": 11,
        "source_blocks": 7,
        "decision_domains": 5,
        "answer_intents": 4,
        "fresh_facts": 11
      },
      "answer_intents": [
        "income",
        "rent",
        "safety",
        "work"
      ],
      "decision_domains": [
        "environment",
        "housing",
        "mobility",
        "safety",
        "work"
      ],
      "requirements": {
        "metrics": true,
        "source_blocks": true,
        "decision_domains": true,
        "answer_intents": true,
        "fresh_facts": true
      },
      "base_floor_passed": true,
      "tier": "answer_linked",
      "indexable": true,
      "internal_link_kind": "typed_relationship",
      "structured_context_count": 1,
      "missing_requirements": []
    },
    "useful_blocks": [
      "work_income",
      "climate_air",
      "cost_living",
      "safety",
      "mobility_admin",
      "housing"
    ],
    "useful_fact_count": 11,
    "city_tags": [],
    "profile_scores": {
      "remote": {
        "point": 53,
        "low": 39,
        "high": 67,
        "factors": {
          "employment_service": 68,
          "family": 34,
          "language_integration": 82,
          "legal_path": 88,
          "safety": 34
        },
        "housing_budget": {
          "status": "fits",
          "currency": "EUR",
          "fx_date": null,
          "normalized_monthly_eur": 809,
          "source_id": "source-22057e8ab18b",
          "basis": "monthly_total"
        },
        "coverage": 0.2,
        "confidence": 0.9,
        "coverage_status": "capped",
        "missing_factors": [
          "air",
          "cost_pressure",
          "healthcare_capacity",
          "healthcare_migrant_access",
          "housing",
          "tax_retention",
          "work"
        ],
        "country_context": {
          "employment_service": {
            "score": 68,
            "weight": 0.75,
            "confidence": 0.9,
            "grain": "country",
            "grainLabel": "country-grain national context",
            "sourceCount": 1,
            "metricIds": [],
            "peerCounts": [],
            "normalization": []
          },
          "language_integration": {
            "score": 82,
            "weight": 0.5,
            "confidence": 0.9,
            "grain": "country",
            "grainLabel": "country-grain national context",
            "sourceCount": 1,
            "metricIds": [],
            "peerCounts": [],
            "normalization": []
          },
          "legal_path": {
            "score": 88,
            "weight": 1,
            "confidence": 0.9,
            "grain": "country",
            "grainLabel": "country-grain national context",
            "sourceCount": 1,
            "metricIds": [],
            "peerCounts": [],
            "normalization": []
          }
        }
      },
      "skilled_employee": {
        "point": 58,
        "low": 46,
        "high": 70,
        "factors": {
          "employment_service": 68,
          "family": 34,
          "language_integration": 82,
          "legal_path": 88,
          "safety": 34,
          "tax_retention": 65
        },
        "housing_budget": {
          "status": "fits",
          "currency": "EUR",
          "fx_date": null,
          "normalized_monthly_eur": 809,
          "source_id": "source-22057e8ab18b",
          "basis": "monthly_total"
        },
        "coverage": 0.3889,
        "confidence": 0.7857,
        "coverage_status": "capped",
        "missing_factors": [
          "education",
          "healthcare_capacity",
          "healthcare_migrant_access",
          "housing",
          "work"
        ],
        "country_context": {
          "employment_service": {
            "score": 68,
            "weight": 1,
            "confidence": 0.9,
            "grain": "country",
            "grainLabel": "country-grain national context",
            "sourceCount": 1,
            "metricIds": [],
            "peerCounts": [],
            "normalization": []
          },
          "language_integration": {
            "score": 82,
            "weight": 1,
            "confidence": 0.9,
            "grain": "country",
            "grainLabel": "country-grain national context",
            "sourceCount": 1,
            "metricIds": [],
            "peerCounts": [],
            "normalization": []
          },
          "legal_path": {
            "score": 88,
            "weight": 2,
            "confidence": 0.9,
            "grain": "country",
            "grainLabel": "country-grain national context",
            "sourceCount": 1,
            "metricIds": [],
            "peerCounts": [],
            "normalization": []
          },
          "tax_retention": {
            "score": 65,
            "weight": 2,
            "confidence": 0.5,
            "grain": "country",
            "grainLabel": "country-grain national context",
            "sourceCount": 1,
            "metricIds": [],
            "peerCounts": [],
            "normalization": []
          }
        }
      },
      "family": {
        "point": 46,
        "low": 35,
        "high": 57,
        "factors": {
          "employment_service": 68,
          "family": 34,
          "language_integration": 82,
          "legal_path": 54,
          "safety": 34
        },
        "housing_budget": {
          "status": "fits",
          "currency": "EUR",
          "fx_date": null,
          "normalized_monthly_eur": 809,
          "source_id": "source-22057e8ab18b",
          "basis": "monthly_total"
        },
        "coverage": 0.5429,
        "confidence": 0.9,
        "coverage_status": "usable",
        "missing_factors": [
          "cost_pressure",
          "education",
          "healthcare_capacity",
          "healthcare_migrant_access",
          "housing"
        ],
        "country_context": {
          "employment_service": {
            "score": 68,
            "weight": 0.5,
            "confidence": 0.9,
            "grain": "country",
            "grainLabel": "country-grain national context",
            "sourceCount": 1,
            "metricIds": [],
            "peerCounts": [],
            "normalization": []
          },
          "language_integration": {
            "score": 82,
            "weight": 1,
            "confidence": 0.9,
            "grain": "country",
            "grainLabel": "country-grain national context",
            "sourceCount": 1,
            "metricIds": [],
            "peerCounts": [],
            "normalization": []
          },
          "legal_path": {
            "score": 54,
            "weight": 1,
            "confidence": 0.9,
            "grain": "country",
            "grainLabel": "country-grain national context",
            "sourceCount": 1,
            "metricIds": [],
            "peerCounts": [],
            "normalization": []
          }
        }
      },
      "student": {
        "point": 32,
        "low": 19,
        "high": 45,
        "factors": {
          "employment_service": 68,
          "family": 34,
          "language_integration": 82,
          "legal_path": 54,
          "safety": 34
        },
        "housing_budget": {
          "status": "over",
          "currency": "EUR",
          "fx_date": null,
          "normalized_monthly_eur": 809,
          "source_id": "source-22057e8ab18b",
          "basis": "monthly_total"
        },
        "coverage": 0.2941,
        "confidence": 0.9,
        "coverage_status": "capped",
        "missing_factors": [
          "cost_pressure",
          "education",
          "healthcare_capacity",
          "healthcare_migrant_access",
          "housing",
          "work"
        ],
        "country_context": {
          "employment_service": {
            "score": 68,
            "weight": 0,
            "confidence": 0.9,
            "grain": "country",
            "grainLabel": "country-grain national context",
            "sourceCount": 1,
            "metricIds": [],
            "peerCounts": [],
            "normalization": []
          },
          "language_integration": {
            "score": 82,
            "weight": 1,
            "confidence": 0.9,
            "grain": "country",
            "grainLabel": "country-grain national context",
            "sourceCount": 1,
            "metricIds": [],
            "peerCounts": [],
            "normalization": []
          },
          "legal_path": {
            "score": 54,
            "weight": 2,
            "confidence": 0.9,
            "grain": "country",
            "grainLabel": "country-grain national context",
            "sourceCount": 1,
            "metricIds": [],
            "peerCounts": [],
            "normalization": []
          }
        }
      },
      "retirement": {
        "point": 52,
        "low": 39,
        "high": 65,
        "factors": {
          "employment_service": 68,
          "family": 34,
          "language_integration": 82,
          "legal_path": 88,
          "safety": 34
        },
        "housing_budget": {
          "status": "fits",
          "currency": "EUR",
          "fx_date": null,
          "normalized_monthly_eur": 809,
          "source_id": "source-22057e8ab18b",
          "basis": "monthly_total"
        },
        "coverage": 0.275,
        "confidence": 0.9,
        "coverage_status": "capped",
        "missing_factors": [
          "air",
          "bureaucracy",
          "cost_pressure",
          "healthcare_capacity",
          "healthcare_migrant_access",
          "housing",
          "tax_retention"
        ],
        "country_context": {
          "employment_service": {
            "score": 68,
            "weight": 0,
            "confidence": 0.9,
            "grain": "country",
            "grainLabel": "country-grain national context",
            "sourceCount": 1,
            "metricIds": [],
            "peerCounts": [],
            "normalization": []
          },
          "language_integration": {
            "score": 82,
            "weight": 0.5,
            "confidence": 0.9,
            "grain": "country",
            "grainLabel": "country-grain national context",
            "sourceCount": 1,
            "metricIds": [],
            "peerCounts": [],
            "normalization": []
          },
          "legal_path": {
            "score": 88,
            "weight": 2,
            "confidence": 0.9,
            "grain": "country",
            "grainLabel": "country-grain national context",
            "sourceCount": 1,
            "metricIds": [],
            "peerCounts": [],
            "normalization": []
          }
        }
      }
    },
    "facts_by_block": {
      "identity": [
        {
          "reader_label": "Population",
          "label_owner_metric_id": "population_total",
          "reader_label_role": "primary",
          "metric_id": "population_total",
          "block_id": "identity",
          "value": 5264,
          "unit": "people",
          "geographic_scope": "city",
          "observed_at": "2026-01-01",
          "verified_at": "2026-09-23",
          "comparison_eligible": true,
          "comparison_basis": {
            "geographic_scope": "city",
            "unit": "people",
            "observed_at": "2026-01-01",
            "data_level": null
          },
          "source_id": "source-b75f127f5266",
          "source_url": "https://api.statbank.dk/v1/data/BY3/CSV",
          "source_title": "Population 1. January",
          "source_authority": "Statistics Denmark (Danmarks Statistik)",
          "source_type": "official",
          "source_badge": "Official source",
          "source_quality": "verified"
        }
      ],
      "housing_cost": [
        {
          "reader_label": "Internet, 60 Mbps unlimited",
          "label_owner_metric_id": null,
          "reader_label_role": "metric",
          "metric_id": "col_internet_60mbps_eur_month",
          "block_id": "cost_living",
          "value": 40.001070262749,
          "unit": "EUR/month",
          "geographic_scope": "national_market",
          "observed_at": "2026-09-30",
          "verified_at": "2026-09-19",
          "comparison_eligible": true,
          "comparison_basis": {
            "geographic_scope": "national_market",
            "unit": "eur/month",
            "observed_at": "2026-09-30",
            "data_level": null
          },
          "source_id": "source-6fae53d787a5",
          "source_url": "https://www.norlys.dk/internet/",
          "source_title": "Norlys fixed broadband",
          "source_authority": "Norlys",
          "source_type": "official",
          "source_badge": "Official source",
          "source_quality": "verified"
        },
        {
          "reader_label": "Mobile plan, 10 GB",
          "label_owner_metric_id": null,
          "reader_label_role": "metric",
          "metric_id": "col_mobile_plan_10gb_eur_month",
          "block_id": "cost_living",
          "value": 19.933643709531,
          "unit": "EUR/month",
          "geographic_scope": "national_market",
          "observed_at": "2026-09-30",
          "verified_at": "2026-09-19",
          "comparison_eligible": true,
          "comparison_basis": {
            "geographic_scope": "national_market",
            "unit": "eur/month",
            "observed_at": "2026-09-30",
            "data_level": null
          },
          "source_id": "source-401936cb8d69",
          "source_url": "https://www.3.dk/internet/mobilt-internet/",
          "source_title": "3 mobile internet 10GB",
          "source_authority": "3 Denmark",
          "source_type": "official",
          "source_badge": "Official source",
          "source_quality": "verified"
        },
        {
          "reader_label": "Average net rent (nettokalt)",
          "label_owner_metric_id": null,
          "reader_label_role": "metric",
          "metric_id": "rent_avg_nettokalt_eur_per_m2_month",
          "block_id": "housing",
          "value": 9.409771,
          "unit": "EUR/m2/month",
          "geographic_scope": "regional_context",
          "observed_at": "2026-12-31",
          "verified_at": "2026-10-07",
          "comparison_eligible": true,
          "comparison_basis": {
            "geographic_scope": "regional_context",
            "unit": "eur/m²/month",
            "observed_at": "2026-12-31",
            "data_level": null
          },
          "source_id": "source-22057e8ab18b",
          "source_url": "https://lbf.dk/media/tdtm43i4/basistabeller-for-huslejestatistik-2026.xlsx",
          "source_title": "Landsbyggefonden Huslejestatistik 2026",
          "source_authority": "Landsbyggefonden",
          "source_type": "official",
          "source_badge": "Official source",
          "source_quality": "verified"
        },
        {
          "reader_label": "Median monthly rent (whole dwelling)",
          "label_owner_metric_id": null,
          "reader_label_role": "metric",
          "metric_id": "rent_median_dwelling_eur_month",
          "block_id": "housing",
          "value": 809.284902,
          "unit": "EUR/month",
          "geographic_scope": "parent_municipality",
          "observed_at": "2026-12-31",
          "verified_at": "2026-10-07",
          "comparison_eligible": true,
          "comparison_basis": {
            "geographic_scope": "parent_municipality",
            "unit": "eur/month",
            "observed_at": "2026-12-31",
            "data_level": null
          },
          "source_id": "source-22057e8ab18b",
          "source_url": "https://lbf.dk/media/tdtm43i4/basistabeller-for-huslejestatistik-2026.xlsx",
          "source_title": "Landsbyggefonden Huslejestatistik 2026",
          "source_authority": "Landsbyggefonden",
          "source_type": "official",
          "source_badge": "Official source",
          "source_quality": "verified"
        }
      ],
      "work_income": [
        {
          "reader_label": "Average gross earnings",
          "label_owner_metric_id": null,
          "reader_label_role": "metric",
          "metric_id": "average_monthly_gross_earnings_eur",
          "block_id": "work_income",
          "value": 6516.2,
          "unit": "EUR/month",
          "geographic_scope": "parent_municipality",
          "observed_at": "2025-12-31",
          "verified_at": "2026-10-07",
          "comparison_eligible": true,
          "comparison_basis": {
            "geographic_scope": "parent_municipality",
            "unit": "eur/month",
            "observed_at": "2025-12-31",
            "data_level": null
          },
          "source_id": "source-982b0ce30dae",
          "source_url": "https://api.statbank.dk/v1/data",
          "source_title": "Level of earnings by work/residence, region, age, sex and family type (LIGELB1)",
          "source_authority": "Statistics Denmark",
          "source_type": "official",
          "source_badge": "Official source",
          "source_quality": "verified"
        },
        {
          "reader_label": "Unemployment rate",
          "label_owner_metric_id": "unemployment_total_percent",
          "reader_label_role": "primary",
          "metric_id": "unemployment_total_percent",
          "block_id": "work_income",
          "value": 3.3,
          "unit": "percent",
          "geographic_scope": "parent_municipality",
          "observed_at": "2025-11-30",
          "verified_at": "2026-08-06",
          "comparison_eligible": true,
          "comparison_basis": {
            "geographic_scope": "parent_municipality",
            "unit": "%",
            "observed_at": "2025-11-30",
            "data_level": null
          },
          "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": [
        {
          "reader_label": "Recorded incidents per 100,000 residents",
          "label_owner_metric_id": null,
          "reader_label_role": "metric",
          "metric_id": "crime_incidents_per_100k",
          "block_id": "safety",
          "value": 5064.41,
          "unit": "incidents/100k residents",
          "geographic_scope": "municipality",
          "observed_at": "2025-12-31",
          "verified_at": "2026-10-07",
          "comparison_eligible": true,
          "comparison_basis": {
            "geographic_scope": "municipality",
            "unit": "incidents per 100,000",
            "observed_at": "2025-12-31",
            "data_level": null
          },
          "source_id": "source-f7aac9816cb9",
          "source_url": "https://api.statbank.dk/v1/data?lang=en",
          "source_title": "Reported criminal offences and charges by region, type of offence and reported criminal offences and charges (STRAF22)",
          "source_authority": "Statistics Denmark (Danmarks Statistik)",
          "source_type": "official",
          "source_badge": "Official source",
          "source_quality": "verified"
        }
      ],
      "climate_air": [
        {
          "reader_label": "Average temperature by month",
          "label_owner_metric_id": null,
          "reader_label_role": "metric",
          "metric_id": "climate_monthly_mean_c",
          "block_id": "climate_air",
          "value": [
            1.8,
            1.9,
            3.7,
            7.6,
            11.7,
            14.9,
            17.3,
            17.2,
            13.8,
            9.6,
            5.7,
            3
          ],
          "unit": "°C",
          "geographic_scope": "nearest_station",
          "observed_at": "1991-12-31",
          "verified_at": "2026-08-06",
          "comparison_eligible": true,
          "comparison_basis": {
            "geographic_scope": "nearest_station",
            "unit": "°c",
            "observed_at": "1991-12-31",
            "data_level": null
          },
          "source_id": "source-97ee8ae8d254",
          "source_url": "https://www.nodc.noaa.gov/archive/arc0216/0253808/1.1/data/0-data/data-composite-primary-parameters/wmo_normals_9120_TAVG.csv",
          "source_title": "NOAA National Centers for Environmental Information / WMO",
          "source_authority": "NOAA National Centers for Environmental Information / WMO",
          "source_type": "official",
          "source_badge": "Official source",
          "source_quality": "verified"
        }
      ],
      "mobility_admin": [
        {
          "reader_label": "Distance to the nearest major airport",
          "label_owner_metric_id": null,
          "reader_label_role": "metric",
          "metric_id": "nearest_major_airport_distance_km",
          "block_id": "mobility_admin",
          "value": 6,
          "unit": "km",
          "geographic_scope": "city",
          "observed_at": "2026-08-03",
          "verified_at": "2026-08-03",
          "comparison_eligible": true,
          "comparison_basis": {
            "geographic_scope": "city",
            "unit": "km",
            "observed_at": "2026-08-03",
            "data_level": null
          },
          "source_id": "source-4e7d55f2c3dd",
          "source_url": "https://davidmegginson.github.io/ourairports-data/airports.csv",
          "source_title": "OurAirports",
          "source_authority": "OurAirports",
          "source_type": "official",
          "source_badge": "Official source",
          "source_quality": "verified"
        },
        {
          "reader_label": "Nearest major airport (IATA code)",
          "label_owner_metric_id": null,
          "reader_label_role": "metric",
          "metric_id": "nearest_major_airport_iata",
          "block_id": "mobility_admin",
          "value": "ODE",
          "unit": "iata_code",
          "geographic_scope": "city",
          "observed_at": "2026-08-03",
          "verified_at": "2026-08-03",
          "comparison_eligible": true,
          "comparison_basis": {
            "geographic_scope": "city",
            "unit": "unit-not-stated",
            "observed_at": "2026-08-03",
            "data_level": null
          },
          "source_id": "source-4e7d55f2c3dd",
          "source_url": "https://davidmegginson.github.io/ourairports-data/airports.csv",
          "source_title": "OurAirports",
          "source_authority": "OurAirports",
          "source_type": "official",
          "source_badge": "Official source",
          "source_quality": "verified"
        }
      ]
    },
    "language_integration": {
      "mode": "national",
      "local_locations": [],
      "supplemental_locations": [],
      "programmes": [
        {
          "program_id": "li:dk:program:danish-language-training",
          "name": "Danish language training for adult foreign nationals",
          "type": "state_language_course",
          "responsible_body": "Danish municipalities and language centres",
          "scope": {
            "name": "Denmark",
            "grain": "national",
            "country_code": "DK",
            "relation_method": "national_scope"
          },
          "target_groups": [
            "adult foreign nationals",
            "newly arrived residents"
          ],
          "languages_taught": [
            "Danish"
          ],
          "cefr_start": null,
          "cefr_end": null,
          "eligibility_summary": null,
          "cost_model": "varies",
          "modality": [
            "in_person"
          ],
          "official_url": "https://lifeindenmark.borger.dk/leisure-and-networking/Danish-language-training",
          "source": {
            "source_id": "688:source:dk-lifeindenmark",
            "title": "page#Danish-language-training",
            "publisher": "lifeindenmark.borger.dk",
            "url": "https://lifeindenmark.borger.dk/leisure-and-networking/Danish-language-training",
            "source_url": "https://lifeindenmark.borger.dk/leisure-and-networking/Danish-language-training",
            "source_quality": "verified",
            "last_checked": "2026-08-10"
          }
        }
      ],
      "supplemental_programmes": []
    },
    "public_employment_service": {
      "mode": "national",
      "local_locations": [],
      "services": [
        {
          "service_id": "employment:dk:service:jobnet",
          "name": "Jobnet Denmark",
          "agency_name": "Danish Agency for Labour Market and Recruitment (STAR)",
          "scope": {
            "name": "DK",
            "grain": "national",
            "entity_id": null,
            "country_code": "DK",
            "official_key": null,
            "relation_method": "national_scope"
          },
          "service_types": [
            "job_search"
          ],
          "eligible_statuses": [],
          "registration_requirements": null,
          "languages_available": [],
          "information_url": "https://jobnet.dk/",
          "registration_url": null,
          "job_search_url": "https://jobnet.dk/",
          "source": {
            "source_id": "source-c6b32b4ee688",
            "title": "Jobnet Denmark",
            "publisher": "Danish Agency for Labour Market and Recruitment (STAR)",
            "source_url": "https://jobnet.dk/",
            "source_quality": "verified",
            "last_checked": "2026-08-10"
          }
        }
      ]
    },
    "healthcare_access": {
      "scope": "country_rule_with_city_capacity_when_available",
      "facts": [
        {
          "reader_label": "Public healthcare access for foreign residents",
          "label_owner_metric_id": null,
          "reader_label_role": "metric",
          "metric_id": "public_health_expat_coverage",
          "value": "yes",
          "unit": "eligibility_status",
          "geographic_scope": "country",
          "observed_at": "2026-08-03",
          "verified_at": "2026-08-03",
          "comparison_eligible": false,
          "comparison_basis": {
            "geographic_scope": "country",
            "unit": "unit-not-stated",
            "observed_at": "2026-08-03",
            "data_level": null
          },
          "source_id": "source-6d9be1a94b5f",
          "source_url": "https://lifeindenmark.borger.dk/healthcare/health-insurance/health-insurance-in-denmark---if-you-move-to-denmark-",
          "source_title": "lifeindenmark.dk (official Danish government portal for newcomers)",
          "source_authority": "lifeindenmark.dk (official Danish government portal for newcomers)",
          "source_quality": "verified"
        }
      ]
    },
    "city_intent": {
      "relationship_to_hub": {
        "relationship_id": "source-eeae8bb4bca6",
        "relation_type": "commuting_zone_of",
        "distance_km": null,
        "independent_administrative_status": null,
        "subject": {
          "entity_id": "city:dk:geonames:2615351",
          "name": "Otterup",
          "canonical_path": "/cities/dk/otterup/"
        },
        "anchor": {
          "entity_id": "city:dk:slug:odense",
          "name": "Odense",
          "canonical_path": "/cities/dk/odense/"
        },
        "sources": [
          {
            "title": "GISCO Urban Audit 2021 — Functional Urban Areas (URAU_RG_100K_2021_4326_FUA)",
            "status": "retained",
            "official": true,
            "publisher": "European Commission GISCO",
            "source_id": "source-b525a1de8f2f",
            "source_url": "https://gisco-services.ec.europa.eu/distribution/v2/urau/geojson/URAU_RG_100K_2021_4326_FUA.geojson",
            "source_type": "official_statistics",
            "jurisdiction": null,
            "last_checked": "2026-09-19",
            "source_quality": "verified",
            "last_checked_period": "2026-09-19",
            "last_checked_precision": "day"
          }
        ]
      },
      "nearby_places": [
        {
          "entity_id": "city:dk:slug:odense",
          "canonical_path": "/cities/dk/odense/",
          "distance_km": 13.441,
          "relation_type": "commuting_zone_of",
          "method": "great_circle_from_admitted_coordinates",
          "living_context": {
            "rent": {
              "metric_id": "rent_avg_nettokalt_eur_per_m2_month",
              "label": "Average net rent (nettokalt)",
              "value_display": "7.7 EUR/m²/month",
              "observed_period": "2012-12-31",
              "grain": "city",
              "source_quality": "verified",
              "source_title": "Official source",
              "source_url": "https://ec.europa.eu/eurostat/databrowser/view/urb_clivcon/default/table?lang=en"
            },
            "salary": null
          },
          "relationship_id": "source-eeae8bb4bca6",
          "source_urls": [
            "https://www.wikidata.org/wiki/Q2633021",
            "https://www.wikidata.org/wiki/Q21146",
            "https://gisco-services.ec.europa.eu/distribution/v2/urau/geojson/URAU_RG_100K_2021_4326_FUA.geojson"
          ]
        },
        {
          "entity_id": "city:dk:slug:nordfyns",
          "canonical_path": "/cities/dk/nordfyns/",
          "distance_km": 11.208,
          "relation_type": "within_25km",
          "method": "great_circle_from_admitted_coordinates",
          "living_context": {
            "rent": null,
            "salary": null
          },
          "source_urls": [
            "https://www.wikidata.org/wiki/Q2633021",
            "https://www.wikidata.org/wiki/Q20770"
          ]
        },
        {
          "entity_id": "city:dk:geonames:2616672",
          "canonical_path": "/cities/dk/munkebo/",
          "distance_km": 11.702,
          "relation_type": "within_25km",
          "method": "great_circle_from_admitted_coordinates",
          "living_context": {
            "rent": null,
            "salary": null
          },
          "source_urls": [
            "https://www.wikidata.org/wiki/Q2633021",
            "https://www.wikidata.org/wiki/Q1953365"
          ]
        },
        {
          "entity_id": "city:dk:geonames:2616540",
          "canonical_path": "/cities/dk/neder-holluf/",
          "distance_km": 17.766,
          "relation_type": "within_25km",
          "method": "great_circle_from_admitted_coordinates",
          "living_context": {
            "rent": null,
            "salary": null
          },
          "source_urls": [
            "https://www.wikidata.org/wiki/Q2633021",
            "https://www.wikidata.org/wiki/Q12328490"
          ]
        },
        {
          "entity_id": "city:dk:slug:kerteminde",
          "canonical_path": "/cities/dk/kerteminde/",
          "distance_km": 18.365,
          "relation_type": "within_25km",
          "method": "great_circle_from_admitted_coordinates",
          "living_context": {
            "rent": null,
            "salary": null
          },
          "source_urls": [
            "https://www.wikidata.org/wiki/Q2633021",
            "https://www.wikidata.org/wiki/Q612488"
          ]
        },
        {
          "entity_id": "city:dk:geonames:2624193",
          "canonical_path": "/cities/dk/bellinge/",
          "distance_km": 20.928,
          "relation_type": "within_25km",
          "method": "great_circle_from_admitted_coordinates",
          "living_context": {
            "rent": null,
            "salary": null
          },
          "source_urls": [
            "https://www.wikidata.org/wiki/Q2633021",
            "https://www.wikidata.org/wiki/Q2788987"
          ]
        }
      ],
      "international_community": [],
      "homebuyer": null,
      "recorded_safety": null,
      "questions": [
        {
          "question": "Is Otterup part of Odense?",
          "answer": "Otterup is in the published commuting zone of Odense; this does not mean it is administratively part of the hub."
        },
        {
          "question": "Which cities are near Otterup?",
          "answer": "Odense, Nordfyns, Munkebo, Neder Holluf, Kerteminde are near Otterup. Typed relationship labels are shown where published; other rows use straight-line distance from admitted coordinates."
        }
      ]
    },
    "country_rules_url": "/countries/denmark/",
    "answers": [
      {
        "answer_id": "answer:city:dk:otterup:population-current",
        "slot_id": "city.population.current",
        "answer_type": "direct_metric",
        "status": "supported",
        "question": "How many people live in Otterup?",
        "direct_answer": "The published population was 5,264 people in January 2026.",
        "qualifier": "City-scope resident count. Density, foreign-resident counts and the country-wide figure are separate rows in the table below.",
        "temporal": {
          "mode": "historical_observation",
          "source_period": "January 2026",
          "captured_at": "2026-09-23"
        },
        "value": {
          "raw_value": 5264,
          "normalized_value": 5264,
          "machine_value": 5264,
          "display_value": "5,264",
          "unit": "people",
          "format_profile_id": "people.count.answer.whole.v1",
          "approximation_label": null
        },
        "format_profile_id": "people.count.answer.whole.v1",
        "evidence": [
          {
            "claim_id": "claim-f1875d4abc59",
            "role": "primary",
            "metric_id": "population_total"
          }
        ],
        "alternatives": [],
        "dependency_hash": "09365257cf04a06527c0aeba5495492627970e5a0d0b5b3f7a1983d57eef00ab"
      },
      {
        "answer_id": "answer:city:dk:otterup:safety-crime",
        "slot_id": "city.safety.crime",
        "answer_type": "direct_metric",
        "status": "supported",
        "question": "How safe is Otterup?",
        "direct_answer": "Police recorded about 5,064 incidents per 100,000 (2025). This counts all offences, so it is not comparable with a violent-crime-only rate from another source.",
        "qualifier": null,
        "temporal": {
          "mode": "historical_observation",
          "source_period": "2025",
          "captured_at": "2026-10-07"
        },
        "value": {
          "raw_value": 5064.41,
          "normalized_value": 5064.41,
          "machine_value": 5064.41,
          "display_value": "5,064",
          "unit": "incidents per 100,000",
          "format_profile_id": "count.per_100k.answer.whole.v1",
          "approximation_label": "about"
        },
        "format_profile_id": "count.per_100k.answer.whole.v1",
        "evidence": [
          {
            "claim_id": "claim-03f818acb47b",
            "role": "primary",
            "metric_id": "crime_incidents_per_100k"
          }
        ],
        "alternatives": [],
        "dependency_hash": "ba27ee094369de24a5a181189a9d4e16fc72eaff9e3896e14f051d3b9654244e"
      },
      {
        "answer_id": "answer:city:dk:otterup:unemployment-current",
        "slot_id": "city.unemployment.current",
        "answer_type": "direct_metric",
        "status": "supported",
        "question": "What is the unemployment rate in Otterup?",
        "direct_answer": "The unemployment rate is 3.3 % (November 2025).",
        "qualifier": null,
        "temporal": {
          "mode": "historical_observation",
          "source_period": "November 2025",
          "captured_at": "2026-08-06"
        },
        "value": {
          "raw_value": 3.3,
          "normalized_value": 3.3,
          "machine_value": 3.3,
          "display_value": "3.3",
          "unit": "%",
          "format_profile_id": "percent.1dp.answer.v1",
          "approximation_label": null
        },
        "format_profile_id": "percent.1dp.answer.v1",
        "evidence": [
          {
            "claim_id": "claim-1b72e8232feb",
            "role": "primary",
            "metric_id": "unemployment_total_percent"
          }
        ],
        "alternatives": [],
        "dependency_hash": "a47b5ad4f184fc6c90e57e7ac17b09f38a776ff69c9436df51889598f82a8f62"
      }
    ]
  }
}
