{
  "snapshot_id": "approved-static-d7ed373c115d60d0",
  "schema_version": "immigrationdb-city-resource-v2",
  "generated_at": "2026-09-12",
  "citation": {
    "@type": "CreativeWork",
    "@id": "https://immigrationdb.com/cities/lu/rodange/#citation",
    "schema_version": "immigrationdb-citation-v1",
    "citation_type": "ImmigrationDB compilation",
    "canonical_url": "https://immigrationdb.com/cities/lu/rodange/",
    "title": "Rodange, Luxembourg: jobs, climate",
    "author": {
      "name": "ImmigrationDB",
      "url": "https://immigrationdb.com/"
    },
    "publisher": {
      "name": "ImmigrationDB",
      "url": "https://immigrationdb.com/"
    },
    "snapshot_id": "approved-static-d7ed373c115d60d0",
    "version": "approved-static-d7ed373c115d60d0",
    "retrieval_date": "2026-09-12",
    "build_date": "2026-09-12",
    "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, September 12). Rodange, Luxembourg: jobs, climate [ImmigrationDB compilation; snapshot approved-static-d7ed373c115d60d0; version approved-static-d7ed373c115d60d0]. ImmigrationDB. https://immigrationdb.com/cities/lu/rodange/ Retrieved 2026-09-12. Compilation license: CC BY 4.0, https://creativecommons.org/licenses/by/4.0/",
      "bibtex": "@misc{immigrationdb_immigrationdb_rodange-luxembourg-jobs-climate_36aa38f41f8f,\n  author = {ImmigrationDB},\n  title = {Rodange, Luxembourg: jobs, climate},\n  publisher = {ImmigrationDB},\n  year = {2026},\n  date = {2026-09-12},\n  version = {approved-static-d7ed373c115d60d0},\n  snapshot = {approved-static-d7ed373c115d60d0},\n  url = {https://immigrationdb.com/cities/lu/rodange/},\n  note = {Retrieved 2026-09-12. ImmigrationDB compilation. Compilation license: CC BY 4.0, https://creativecommons.org/licenses/by/4.0/},\n}",
      "markdown": "[Rodange, Luxembourg: jobs, climate](https://immigrationdb.com/cities/lu/rodange/) — ImmigrationDB; ImmigrationDB; snapshot approved-static-d7ed373c115d60d0; version approved-static-d7ed373c115d60d0; retrieved 2026-09-12; built 2026-09-12."
    },
    "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."
  },
  "underlying_source_references": [
    {
      "source_id": "source-f2dafe7dcd7e",
      "source_url": "https://lustat.statec.lu/vis?df[ds]=ds-release&vw=tb&df[ag]=LU1&df[id]=DF_X026",
      "source_title": "Emploi et chômage par canton et commune — DF_X026, C6 Unemployment rate (in %), 2025",
      "publisher": "Emploi et chômage par canton et commune",
      "source_quality": "verified",
      "last_checked": "2026-07-27"
    },
    {
      "source_id": "task-647-city-admission-01:source:92f9fe9d47f12283a7ae179038a748d5",
      "source_url": "https://www.nodc.noaa.gov/archive/arc0216/0253808/1.1/data/0-data/data-composite-primary-parameters/wmo_normals_9120_TMAX.csv",
      "source_title": "World Meteorological Organization / NOAA NCEI",
      "publisher": "World Meteorological Organization / NOAA NCEI",
      "source_quality": "verified",
      "last_checked": "2026-08-03"
    },
    {
      "source_id": "task-647-city-admission-01:source:440075ba4a6cece781897687b7c0806e",
      "source_url": "https://www.nodc.noaa.gov/archive/arc0216/0253808/1.1/data/0-data/data-composite-primary-parameters/wmo_normals_9120_TMIN.csv",
      "source_title": "World Meteorological Organization / NOAA NCEI",
      "publisher": "World Meteorological Organization / NOAA NCEI",
      "source_quality": "verified",
      "last_checked": "2026-08-03"
    },
    {
      "source_id": "task-647-city-admission-01:source:47b77f0ca641ce63e618bd410f032a97",
      "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": "World Meteorological Organization / NOAA NCEI",
      "publisher": "World Meteorological Organization / NOAA NCEI",
      "source_quality": "verified",
      "last_checked": "2026-08-03"
    },
    {
      "source_id": "task-647-city-admission-01:source:f0f1965d27a78ec13787552e59b66827",
      "source_url": "https://www.nodc.noaa.gov/archive/arc0216/0253808/1.1/data/0-data/data-composite-primary-parameters/wmo_normals_9120_PRCP.csv",
      "source_title": "World Meteorological Organization / NOAA NCEI",
      "publisher": "World Meteorological Organization / NOAA NCEI",
      "source_quality": "verified",
      "last_checked": "2026-08-03"
    },
    {
      "source_id": "task-647-city-admission-01:source:d3a3238a5a59f87b8985d6a9fb5ba106",
      "source_url": "https://www.nodc.noaa.gov/archive/arc0216/0253808/1.1/data/0-data/data-composite-primary-parameters/wmo_normals_9120_TSUN.csv",
      "source_title": "World Meteorological Organization / NOAA NCEI",
      "publisher": "World Meteorological Organization / NOAA NCEI",
      "source_quality": "verified",
      "last_checked": "2026-08-03"
    },
    {
      "source_id": "source-2c811b7da15a",
      "source_url": "https://raw.githubusercontent.com/jpatokal/openflights/master/data/routes.dat",
      "source_title": "OpenFlights",
      "publisher": "OpenFlights",
      "source_quality": "verified",
      "last_checked": "2026-08-03"
    },
    {
      "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-c2b4a0bb7b2b",
      "source_url": "https://gisco-services.ec.europa.eu/distribution/v2/lau/geojson/LAU_RG_01M_2024_4326.geojson",
      "source_title": "gisco-services.ec.europa.eu place coordinates",
      "publisher": "gisco-services.ec.europa.eu place coordinates",
      "source_quality": "verified",
      "last_checked": "2026-08-28"
    },
    {
      "source_id": "source-818a3a07ca27",
      "source_url": "https://guichet.public.lu/en/citoyens/citoyennete/vivre-ensemble/pacte-citoyen.html",
      "source_title": "Guichet page for the Biergerpakt civic and language modules.",
      "publisher": "guichet.public.lu",
      "source_quality": "verified",
      "last_checked": "2026-08-10"
    },
    {
      "source_id": "source-a27ac14ae19e",
      "source_url": "https://men.public.lu/en/systeme-educatif/formation-adultes/integration-nationalite/cours-examen.html",
      "source_title": "Ministry page for introductory Luxembourgish courses, approved providers and course locations.",
      "publisher": "men.public.lu",
      "source_quality": "verified",
      "last_checked": "2026-08-10"
    },
    {
      "source_id": "source-1a0210874c7a",
      "source_url": "https://men.public.lu/en/systeme-educatif/formation-adultes/integration-nationalite/integration.html",
      "source_title": "Luxembourg Ministry page for linguistic integration, language/literacy/integration courses and Vivre ensemble.",
      "publisher": "men.public.lu",
      "source_quality": "verified",
      "last_checked": "2026-08-10"
    },
    {
      "source_id": "source-4008cd25f574",
      "source_url": "https://adem.public.lu/en.html",
      "source_title": "Agence pour le développement de l'emploi",
      "publisher": "Agence pour le développement de l'emploi (ADEM)",
      "source_quality": "verified",
      "last_checked": "2026-08-10"
    },
    {
      "source_id": "task-647-648-country-region-admission-01:source:ee05fc3165e2df0749935e78256bfc6f",
      "source_url": "https://cns.public.lu/en/assure/droits-demarches/bases-bonnes-pratiques/affiliation.html",
      "source_title": "CNS — Caisse nationale de santé (Luxembourg)",
      "publisher": "CNS",
      "source_quality": "verified",
      "last_checked": "2026-08-03"
    },
    {
      "source_id": "source-8fed5bdfcff6",
      "source_url": "https://www.wikidata.org/wiki/Q1444135",
      "source_title": "Coordinate identity evidence",
      "publisher": "Coordinate identity evidence",
      "source_quality": "verified",
      "last_checked": "2026-09-06"
    }
  ],
  "canonical_path": "/cities/lu/rodange/",
  "mcp_uri": "immigrationdb://city/lu/rodange",
  "editorial_copy": {
    "status": "reviewed",
    "reviewed_at": "2026-08-08",
    "copy_depth": "city_standard",
    "blocks": {
      "intro": "Rodange is one of the cities recorded in Luxembourg.",
      "climate_lead": "Rodange's average monthly sunshine was 46.2 hours in January and 217.2 hours in July."
    },
    "used_claim_count": 7,
    "uses_supplemental_cd": false
  },
  "city": {
    "coordinates": {
      "coordinate_id": "source-1fe406027c4a",
      "latitude": 49.546666666,
      "longitude": 5.839722222,
      "source_id": "source-8fed5bdfcff6",
      "source_url": "https://www.wikidata.org/wiki/Q1444135",
      "source_locator": "P1566 exact lookup (2960143; Wikidata lexical value 2960143); P625",
      "source_quality": "verified",
      "observed_at": "2026-09-06",
      "verified_at": "2026-09-06",
      "method": "registry_wikidata_cross_reference",
      "identity_property": "P1566",
      "identity_key": "2960143",
      "wikidata_qid": "Q1444135"
    },
    "entity_id": "city:lu:geonames:2960143",
    "name": "Rodange",
    "country_code": "LU",
    "public_slug": "rodange",
    "canonical_path": "/cities/lu/rodange/",
    "mcp_uri": "immigrationdb://city/lu/rodange",
    "page_state": "published",
    "usefulness": {
      "policy": "city_usefulness_v1",
      "has_reviewed_copy": true,
      "valid_slug": true,
      "counts": {
        "ab_facts": 9,
        "metrics": 9,
        "source_blocks": 3,
        "decision_domains": 3,
        "answer_intents": 1,
        "fresh_facts": 9
      },
      "answer_intents": [
        "work"
      ],
      "decision_domains": [
        "environment",
        "mobility",
        "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": [
      "mobility_admin",
      "climate_air",
      "work_income"
    ],
    "useful_fact_count": 9,
    "city_tags": [],
    "profile_scores": {
      "remote": {
        "point": 54,
        "low": 39,
        "high": 69,
        "factors": {
          "employment_service": 68,
          "language_integration": 82,
          "legal_path": 88
        },
        "housing_budget": {
          "status": "unavailable",
          "currency": null,
          "fx_date": null,
          "normalized_monthly_eur": null,
          "source_id": null,
          "basis": null
        },
        "coverage": 0.1385,
        "confidence": 0.9,
        "coverage_status": "capped",
        "missing_factors": [
          "air",
          "cost_pressure",
          "healthcare_capacity",
          "healthcare_migrant_access",
          "housing",
          "safety",
          "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": 59,
        "low": 46,
        "high": 72,
        "factors": {
          "employment_service": 68,
          "language_integration": 82,
          "legal_path": 88,
          "tax_retention": 68
        },
        "housing_budget": {
          "status": "unavailable",
          "currency": null,
          "fx_date": null,
          "normalized_monthly_eur": null,
          "source_id": null,
          "basis": null
        },
        "coverage": 0.3333,
        "confidence": 0.7667,
        "coverage_status": "capped",
        "missing_factors": [
          "education",
          "healthcare_capacity",
          "healthcare_migrant_access",
          "housing",
          "safety",
          "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": 68,
            "weight": 2,
            "confidence": 0.5,
            "grain": "country",
            "grainLabel": "country-grain national context",
            "sourceCount": 1,
            "metricIds": [],
            "peerCounts": [],
            "normalization": []
          }
        }
      },
      "family": {
        "point": 55,
        "low": 40,
        "high": 70,
        "factors": {
          "employment_service": 68,
          "language_integration": 82,
          "legal_path": 88
        },
        "housing_budget": {
          "status": "unavailable",
          "currency": null,
          "fx_date": null,
          "normalized_monthly_eur": null,
          "source_id": null,
          "basis": null
        },
        "coverage": 0.1429,
        "confidence": 0.9,
        "coverage_status": "capped",
        "missing_factors": [
          "cost_pressure",
          "education",
          "family",
          "healthcare_capacity",
          "healthcare_migrant_access",
          "housing",
          "safety"
        ],
        "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": 88,
            "weight": 1,
            "confidence": 0.9,
            "grain": "country",
            "grainLabel": "country-grain national context",
            "sourceCount": 1,
            "metricIds": [],
            "peerCounts": [],
            "normalization": []
          }
        }
      },
      "student": {
        "point": 56,
        "low": 42,
        "high": 70,
        "factors": {
          "employment_service": 68,
          "language_integration": 82,
          "legal_path": 88
        },
        "housing_budget": {
          "status": "unavailable",
          "currency": null,
          "fx_date": null,
          "normalized_monthly_eur": null,
          "source_id": null,
          "basis": null
        },
        "coverage": 0.1765,
        "confidence": 0.9,
        "coverage_status": "capped",
        "missing_factors": [
          "cost_pressure",
          "education",
          "healthcare_capacity",
          "healthcare_migrant_access",
          "housing",
          "safety",
          "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": 88,
            "weight": 2,
            "confidence": 0.9,
            "grain": "country",
            "grainLabel": "country-grain national context",
            "sourceCount": 1,
            "metricIds": [],
            "peerCounts": [],
            "normalization": []
          }
        }
      },
      "retirement": {
        "point": 55,
        "low": 40,
        "high": 70,
        "factors": {
          "employment_service": 68,
          "language_integration": 82,
          "legal_path": 88
        },
        "housing_budget": {
          "status": "unavailable",
          "currency": null,
          "fx_date": null,
          "normalized_monthly_eur": null,
          "source_id": null,
          "basis": null
        },
        "coverage": 0.125,
        "confidence": 0.9,
        "coverage_status": "capped",
        "missing_factors": [
          "air",
          "bureaucracy",
          "cost_pressure",
          "healthcare_capacity",
          "healthcare_migrant_access",
          "housing",
          "safety",
          "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": {
      "housing_cost": [],
      "work_income": [
        {
          "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": 8.14875025401341,
          "unit": "percent",
          "geographic_scope": "parent_municipality",
          "observed_at": "2025-12-31",
          "verified_at": "2026-08-06",
          "comparison_eligible": true,
          "comparison_basis": {
            "geographic_scope": "parent_municipality",
            "unit": "%",
            "observed_at": "2025-12-31",
            "data_level": null
          },
          "source_id": "source-f2dafe7dcd7e",
          "source_url": "https://lustat.statec.lu/vis?df[ds]=ds-release&vw=tb&df[ag]=LU1&df[id]=DF_X026",
          "source_title": "Emploi et chômage par canton et commune — DF_X026, C6 Unemployment rate (in %), 2025",
          "source_authority": "STATEC Institut national de la statistique et des études économiques; IGSS / ADEM",
          "source_type": "official",
          "source_badge": "Official source",
          "source_quality": "verified"
        }
      ],
      "climate_air": [
        {
          "reader_label": "Average daytime high by month",
          "label_owner_metric_id": null,
          "reader_label_role": "metric",
          "metric_id": "climate_monthly_high_c",
          "block_id": "climate_air",
          "value": [
            4.1,
            5.6,
            10.1,
            14.7,
            18.7,
            21.9,
            24,
            23.7,
            19.4,
            13.9,
            8.1,
            4.9
          ],
          "unit": "°C",
          "geographic_scope": "parent_municipality",
          "observed_at": "1991-12-31",
          "verified_at": "2026-08-06",
          "comparison_eligible": true,
          "comparison_basis": {
            "geographic_scope": "parent_municipality",
            "unit": "°c",
            "observed_at": "1991-12-31",
            "data_level": null
          },
          "source_id": "task-647-city-admission-01:source:92f9fe9d47f12283a7ae179038a748d5",
          "source_url": "https://www.nodc.noaa.gov/archive/arc0216/0253808/1.1/data/0-data/data-composite-primary-parameters/wmo_normals_9120_TMAX.csv",
          "source_title": "World Meteorological Organization / NOAA NCEI",
          "source_authority": "World Meteorological Organization / NOAA NCEI",
          "source_type": "official",
          "source_badge": "Official source",
          "source_quality": "verified"
        },
        {
          "reader_label": "Average night-time low by month",
          "label_owner_metric_id": null,
          "reader_label_role": "metric",
          "metric_id": "climate_monthly_low_c",
          "block_id": "climate_air",
          "value": [
            -1,
            -1,
            1.2,
            3.4,
            7.4,
            10.6,
            12.3,
            11.9,
            8.7,
            6,
            2.7,
            0.1
          ],
          "unit": "°C",
          "geographic_scope": "parent_municipality",
          "observed_at": "1991-12-31",
          "verified_at": "2026-08-06",
          "comparison_eligible": true,
          "comparison_basis": {
            "geographic_scope": "parent_municipality",
            "unit": "°c",
            "observed_at": "1991-12-31",
            "data_level": null
          },
          "source_id": "task-647-city-admission-01:source:440075ba4a6cece781897687b7c0806e",
          "source_url": "https://www.nodc.noaa.gov/archive/arc0216/0253808/1.1/data/0-data/data-composite-primary-parameters/wmo_normals_9120_TMIN.csv",
          "source_title": "World Meteorological Organization / NOAA NCEI",
          "source_authority": "World Meteorological Organization / NOAA NCEI",
          "source_type": "official",
          "source_badge": "Official source",
          "source_quality": "verified"
        },
        {
          "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.4,
            2,
            5.1,
            8.9,
            12.9,
            16.1,
            18,
            17.3,
            13.3,
            9.2,
            5,
            2.3
          ],
          "unit": "°C",
          "geographic_scope": "parent_municipality",
          "observed_at": "1991-12-31",
          "verified_at": "2026-08-06",
          "comparison_eligible": true,
          "comparison_basis": {
            "geographic_scope": "parent_municipality",
            "unit": "°c",
            "observed_at": "1991-12-31",
            "data_level": null
          },
          "source_id": "task-647-city-admission-01:source:47b77f0ca641ce63e618bd410f032a97",
          "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": "World Meteorological Organization / NOAA NCEI",
          "source_authority": "World Meteorological Organization / NOAA NCEI",
          "source_type": "official",
          "source_badge": "Official source",
          "source_quality": "verified"
        },
        {
          "reader_label": "Average precipitation by month",
          "label_owner_metric_id": null,
          "reader_label_role": "metric",
          "metric_id": "climate_monthly_precip_mm",
          "block_id": "climate_air",
          "value": [
            87.1,
            68,
            60.1,
            53.2,
            69.7,
            77,
            73.6,
            77,
            66.3,
            78.1,
            81.1,
            107.1
          ],
          "unit": "mm",
          "geographic_scope": "parent_municipality",
          "observed_at": "1991-12-31",
          "verified_at": "2026-08-06",
          "comparison_eligible": true,
          "comparison_basis": {
            "geographic_scope": "parent_municipality",
            "unit": "mm",
            "observed_at": "1991-12-31",
            "data_level": null
          },
          "source_id": "task-647-city-admission-01:source:f0f1965d27a78ec13787552e59b66827",
          "source_url": "https://www.nodc.noaa.gov/archive/arc0216/0253808/1.1/data/0-data/data-composite-primary-parameters/wmo_normals_9120_PRCP.csv",
          "source_title": "World Meteorological Organization / NOAA NCEI",
          "source_authority": "World Meteorological Organization / NOAA NCEI",
          "source_type": "official",
          "source_badge": "Official source",
          "source_quality": "verified"
        },
        {
          "reader_label": "Average sunshine by month",
          "label_owner_metric_id": null,
          "reader_label_role": "metric",
          "metric_id": "climate_monthly_sunshine_h",
          "block_id": "climate_air",
          "value": [
            46.2,
            73.6,
            135.7,
            182.7,
            190.1,
            194.1,
            217.2,
            210.8,
            161.8,
            105.8,
            50,
            38.8
          ],
          "unit": "hours",
          "geographic_scope": "parent_municipality",
          "observed_at": "1991-12-31",
          "verified_at": "2026-08-06",
          "comparison_eligible": true,
          "comparison_basis": {
            "geographic_scope": "parent_municipality",
            "unit": "hours",
            "observed_at": "1991-12-31",
            "data_level": null
          },
          "source_id": "task-647-city-admission-01:source:d3a3238a5a59f87b8985d6a9fb5ba106",
          "source_url": "https://www.nodc.noaa.gov/archive/arc0216/0253808/1.1/data/0-data/data-composite-primary-parameters/wmo_normals_9120_TSUN.csv",
          "source_title": "World Meteorological Organization / NOAA NCEI",
          "source_authority": "World Meteorological Organization / NOAA NCEI",
          "source_type": "official",
          "source_badge": "Official source",
          "source_quality": "verified"
        }
      ],
      "mobility_admin": [
        {
          "reader_label": "Airport Direct Destinations Count",
          "label_owner_metric_id": null,
          "reader_label_role": "metric",
          "metric_id": "airport_direct_destinations_count",
          "block_id": "mobility_admin",
          "value": 54,
          "unit": "count",
          "geographic_scope": "city",
          "observed_at": "2026-08-03",
          "verified_at": "2026-08-03",
          "comparison_eligible": true,
          "comparison_basis": {
            "geographic_scope": "city",
            "unit": "count",
            "observed_at": "2026-08-03",
            "data_level": null
          },
          "source_id": "source-2c811b7da15a",
          "source_url": "https://raw.githubusercontent.com/jpatokal/openflights/master/data/routes.dat",
          "source_title": "OpenFlights",
          "source_authority": "OpenFlights",
          "source_type": "official",
          "source_badge": "Official source",
          "source_quality": "verified"
        },
        {
          "reader_label": "Nearest Major Airport Distance Km",
          "label_owner_metric_id": null,
          "reader_label_role": "metric",
          "metric_id": "nearest_major_airport_distance_km",
          "block_id": "mobility_admin",
          "value": 28,
          "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",
          "label_owner_metric_id": null,
          "reader_label_role": "metric",
          "metric_id": "nearest_major_airport_iata",
          "block_id": "mobility_admin",
          "value": "LUX",
          "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:lu:program:biergerpakt",
          "name": "Biergerpakt / Pacte citoyen",
          "type": "civic_orientation",
          "responsible_body": "Integration Department and CAI",
          "scope": {
            "name": "Luxembourg",
            "grain": "national",
            "country_code": "LU",
            "relation_method": "national_scope"
          },
          "target_groups": [
            "newcomers and residents choosing the civic pact"
          ],
          "languages_taught": [
            "Luxembourgish",
            "German",
            "French"
          ],
          "cefr_start": null,
          "cefr_end": null,
          "eligibility_summary": null,
          "cost_model": null,
          "modality": [
            "in_person"
          ],
          "official_url": "https://guichet.public.lu/en/citoyens/citoyennete/vivre-ensemble/pacte-citoyen.html",
          "source": {
            "source_id": "source-818a3a07ca27",
            "title": "Guichet page for the Biergerpakt civic and language modules.",
            "publisher": "guichet.public.lu",
            "url": "https://guichet.public.lu/en/citoyens/citoyennete/vivre-ensemble/pacte-citoyen.html",
            "source_url": "https://guichet.public.lu/en/citoyens/citoyennete/vivre-ensemble/pacte-citoyen.html",
            "source_quality": "verified",
            "last_checked": "2026-08-10"
          }
        },
        {
          "program_id": "li:lu:program:luxembourgish-introductory-course",
          "name": "Introductory Luxembourgish courses",
          "type": "state_language_course",
          "responsible_body": "Service de la formation des adultes, Ministère de l’Éducation nationale",
          "scope": {
            "name": "Luxembourg",
            "grain": "national",
            "country_code": "LU",
            "relation_method": "national_scope"
          },
          "target_groups": [
            "adults learning Luxembourgish"
          ],
          "languages_taught": [
            "Luxembourgish"
          ],
          "cefr_start": null,
          "cefr_end": null,
          "eligibility_summary": null,
          "cost_model": null,
          "modality": [
            "in_person"
          ],
          "official_url": "https://men.public.lu/en/systeme-educatif/formation-adultes/integration-nationalite/cours-examen.html",
          "source": {
            "source_id": "source-a27ac14ae19e",
            "title": "Ministry page for introductory Luxembourgish courses, approved providers and course locations.",
            "publisher": "men.public.lu",
            "url": "https://men.public.lu/en/systeme-educatif/formation-adultes/integration-nationalite/cours-examen.html",
            "source_url": "https://men.public.lu/en/systeme-educatif/formation-adultes/integration-nationalite/cours-examen.html",
            "source_quality": "verified",
            "last_checked": "2026-08-10"
          }
        },
        {
          "program_id": "li:lu:program:parcours-integration-linguistique",
          "name": "Linguistic integration courses",
          "type": "state_language_course",
          "responsible_body": "Service de la formation des adultes, Ministère de l’Éducation nationale",
          "scope": {
            "name": "Luxembourg",
            "grain": "national",
            "country_code": "LU",
            "relation_method": "national_scope"
          },
          "target_groups": [
            "newly arrived adults",
            "adults needing literacy or language support"
          ],
          "languages_taught": [
            "French",
            "Luxembourgish"
          ],
          "cefr_start": null,
          "cefr_end": null,
          "eligibility_summary": null,
          "cost_model": null,
          "modality": [
            "in_person"
          ],
          "official_url": "https://men.public.lu/en/systeme-educatif/formation-adultes/integration-nationalite/integration.html",
          "source": {
            "source_id": "source-1a0210874c7a",
            "title": "Luxembourg Ministry page for linguistic integration, language/literacy/integration courses and Vivre ensemble.",
            "publisher": "men.public.lu",
            "url": "https://men.public.lu/en/systeme-educatif/formation-adultes/integration-nationalite/integration.html",
            "source_url": "https://men.public.lu/en/systeme-educatif/formation-adultes/integration-nationalite/integration.html",
            "source_quality": "verified",
            "last_checked": "2026-08-10"
          }
        }
      ],
      "supplemental_programmes": []
    },
    "public_employment_service": {
      "mode": "national",
      "local_locations": [],
      "services": [
        {
          "service_id": "employment:lu:service:adem",
          "name": "Agence pour le développement de l'emploi",
          "agency_name": "Agence pour le développement de l'emploi (ADEM)",
          "scope": {
            "name": "LU",
            "grain": "national",
            "entity_id": null,
            "country_code": "LU",
            "official_key": null,
            "relation_method": "national_scope"
          },
          "service_types": [
            "job_search",
            "registration",
            "career_counselling",
            "training",
            "unemployment_claim"
          ],
          "eligible_statuses": [],
          "registration_requirements": null,
          "languages_available": [],
          "information_url": "https://adem.public.lu/en.html",
          "registration_url": "https://adem.public.lu/en/demandeurs-demploi/sinscrire-a-ladem.html",
          "job_search_url": null,
          "source": {
            "source_id": "source-4008cd25f574",
            "title": "Agence pour le développement de l'emploi",
            "publisher": "Agence pour le développement de l'emploi (ADEM)",
            "source_url": "https://adem.public.lu/en.html",
            "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": "task-647-648-country-region-admission-01:source:ee05fc3165e2df0749935e78256bfc6f",
          "source_url": "https://cns.public.lu/en/assure/droits-demarches/bases-bonnes-pratiques/affiliation.html",
          "source_title": "CNS — Caisse nationale de santé (Luxembourg)",
          "source_authority": "CNS — Caisse nationale de santé (Luxembourg)",
          "source_quality": "verified"
        }
      ]
    },
    "city_intent": {
      "relationship_to_hub": {
        "relationship_id": "source-032151d42bac",
        "relation_type": "nearby_independent_place",
        "distance_km": 21.945,
        "independent_administrative_status": "not_established_as_separate_lau",
        "subject": {
          "entity_id": "city:lu:geonames:2960143",
          "name": "Rodange",
          "canonical_path": "/cities/lu/rodange/"
        },
        "anchor": {
          "entity_id": "city:lu:statec_commune:0304",
          "name": "Luxembourg",
          "canonical_path": "/cities/lu/luxembourg/"
        },
        "sources": [
          {
            "title": "gisco-services.ec.europa.eu place coordinates",
            "status": "active",
            "official": true,
            "publisher": "gisco-services.ec.europa.eu",
            "source_id": "source-c2b4a0bb7b2b",
            "source_url": "https://gisco-services.ec.europa.eu/distribution/v2/lau/geojson/LAU_RG_01M_2024_4326.geojson",
            "source_type": "dataset",
            "jurisdiction": null,
            "last_checked": "2026-08-28",
            "source_quality": "verified",
            "last_checked_period": "2026-08-28",
            "last_checked_precision": "day"
          },
          {
            "title": "download.geonames.org recorded crime data",
            "status": "active",
            "official": true,
            "publisher": "download.geonames.org",
            "source_id": "source-131160932652",
            "source_url": "https://download.geonames.org/export/dump/cities5000.zip",
            "source_type": "dataset",
            "jurisdiction": null,
            "last_checked": "2026-08-28",
            "source_quality": "verified",
            "last_checked_period": "2026-08-28",
            "last_checked_precision": "day"
          }
        ]
      },
      "nearby_linked_places": [],
      "international_community": [],
      "homebuyer": null,
      "recorded_safety": null,
      "questions": [
        {
          "question": "Is Rodange part of Luxembourg?",
          "answer": "Rodange is near Luxembourg, but the collected evidence does not establish that it is administratively part of the hub or an official satellite. It is about 21.9 km away by straight-line distance."
        }
      ]
    },
    "country_rules_url": "/countries/luxembourg/"
  }
}
