{
  "snapshot_id": "approved-static-bb6d69cd3c074ae2",
  "schema_version": "immigrationdb-city-resource-v2",
  "generated_at": "2026-08-04",
  "canonical_path": "/cities/be/hasselt/",
  "mcp_uri": "immigrationdb://city/be/hasselt",
  "editorial_copy": {
    "status": "reviewed",
    "reviewed_at": "2026-07-29",
    "copy_depth": "city_standard",
    "blocks": {
      "intro": "Annual PM2.5 was 9 µg/m³ at the end of 2024. For Hasselt, the foreign population count was 8,214 at the start of 2026. The population of Hasselt, in Belgium, was 90,914 at the start of 2026. Gigabit broadband availability was 99% in June 2025.",
      "population_lead": "The city covered 136.7 km² in 2025. Population density was 665.2 people per km² in 2026.",
      "work_lead": "The unemployment rate was 5.68% at the start of 2011."
    },
    "used_claim_count": 7,
    "uses_supplemental_cd": false
  },
  "city": {
    "entity_id": "city:be:nis5:71072",
    "name": "Hasselt",
    "country_code": "BE",
    "public_slug": "hasselt",
    "canonical_path": "/cities/be/hasselt/",
    "mcp_uri": "immigrationdb://city/be/hasselt",
    "page_state": "published",
    "useful_blocks": [
      "work_income",
      "climate_air",
      "cost_living",
      "safety"
    ],
    "useful_fact_count": 20,
    "city_tags": [],
    "profile_scores": {
      "remote": {
        "point": 57,
        "low": 43,
        "high": 71,
        "factors": {
          "legal_path": 36,
          "cost_pressure": 72,
          "housing": 45,
          "work": 72,
          "family": 46,
          "education": 45,
          "healthcare": 45,
          "safety": 30,
          "air": 53,
          "bureaucracy": 45
        },
        "housing_budget": {
          "status": "unavailable",
          "currency": null,
          "fx_date": null,
          "normalized_monthly_eur": null,
          "source_id": null,
          "basis": null
        }
      },
      "skilled_employee": {
        "point": 51,
        "low": 37,
        "high": 65,
        "factors": {
          "legal_path": 36,
          "cost_pressure": 72,
          "housing": 45,
          "work": 72,
          "family": 46,
          "education": 45,
          "healthcare": 45,
          "safety": 30,
          "air": 53,
          "bureaucracy": 45
        },
        "housing_budget": {
          "status": "unavailable",
          "currency": null,
          "fx_date": null,
          "normalized_monthly_eur": null,
          "source_id": null,
          "basis": null
        }
      },
      "family": {
        "point": 43,
        "low": 29,
        "high": 57,
        "factors": {
          "legal_path": 36,
          "cost_pressure": 72,
          "housing": 45,
          "work": 72,
          "family": 46,
          "education": 45,
          "healthcare": 45,
          "safety": 30,
          "air": 53,
          "bureaucracy": 45
        },
        "housing_budget": {
          "status": "unavailable",
          "currency": null,
          "fx_date": null,
          "normalized_monthly_eur": null,
          "source_id": null,
          "basis": null
        }
      },
      "student": {
        "point": 49,
        "low": 35,
        "high": 63,
        "factors": {
          "legal_path": 36,
          "cost_pressure": 72,
          "housing": 45,
          "work": 72,
          "family": 46,
          "education": 45,
          "healthcare": 45,
          "safety": 30,
          "air": 53,
          "bureaucracy": 45
        },
        "housing_budget": {
          "status": "unavailable",
          "currency": null,
          "fx_date": null,
          "normalized_monthly_eur": null,
          "source_id": null,
          "basis": null
        }
      },
      "retirement": {
        "point": 46,
        "low": 32,
        "high": 60,
        "factors": {
          "legal_path": 36,
          "cost_pressure": 72,
          "housing": 45,
          "work": 72,
          "family": 46,
          "education": 45,
          "healthcare": 45,
          "safety": 30,
          "air": 53,
          "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": "city_area_km2",
          "block_id": "identity",
          "value": 136.674661,
          "unit": "km2",
          "geographic_scope": "city",
          "observed_at": "2025-01-01",
          "verified_at": "2026-07-15",
          "comparison_eligible": true,
          "source_id": "statbel_land_occupation_2025_commune_area",
          "source_url": "https://statbel.fgov.be/sites/default/files/files/documents/Bouwen%20%26%20wonen/2.6%20Bodembezetting%20volgens%20het%20Kadasterregister/Occupation%20du%20sol%20selon%20le%20registre%20Cadastral%20sup%20par%20commune.xlsx",
          "source_title": "Official cadastral total area by municipality; 2025 superficie totale (ha), converted to km2.",
          "source_authority": "Statbel / Statistics Belgium",
          "source_type": "official",
          "source_badge": "Official source",
          "source_quality": "verified"
        },
        {
          "metric_id": "foreign_population_total",
          "block_id": "identity",
          "value": 8214,
          "unit": "people",
          "geographic_scope": "city",
          "observed_at": "2026-01-01",
          "verified_at": "2026-07-15",
          "comparison_eligible": true,
          "source_id": "statbel_population_2026_foreign_derived",
          "source_url": "https://statbel.fgov.be/sites/default/files/files/documents/bevolking/5.1%20Structuur%20van%20de%20bevolking/popstranger-1992-fr.xlsx",
          "source_title": "Official population by nationality at municipality grain; foreign population is TOTAL minus Belgique in the TOTAL row.",
          "source_authority": "Statbel / Statistics Belgium",
          "source_type": "official",
          "source_badge": "Official source",
          "source_quality": "verified"
        },
        {
          "metric_id": "population_density_per_km2",
          "block_id": "identity",
          "value": 665.18548,
          "unit": "people/km2",
          "geographic_scope": "city",
          "observed_at": "2026-01-01",
          "verified_at": "2026-07-15",
          "comparison_eligible": true,
          "source_id": "statbel_population_2026_commune_total",
          "source_url": "https://statbel.fgov.be/sites/default/files/files/documents/bevolking/5.1%20Structuur%20van%20de%20bevolking/Population_par_commune.xlsx",
          "source_title": "Official resident population by Belgian municipality on 1 January 2026; Total column.",
          "source_authority": "Statbel / Statistics Belgium",
          "source_type": "official",
          "source_badge": "Official source",
          "source_quality": "verified"
        },
        {
          "metric_id": "population_total",
          "block_id": "identity",
          "value": 90914,
          "unit": "persons",
          "geographic_scope": "municipality",
          "observed_at": "2026-01-01",
          "verified_at": "2026-07-14",
          "comparison_eligible": true,
          "source_id": "denom_be_07e0c8c28402",
          "source_url": "https://statbel.fgov.be/sites/default/files/files/opendata/bevolking%20naar%20woonplaats%2C%20nationaliteit%20burgelijke%20staat%20%2C%20leeftijd%20en%20geslacht/TF_SOC_POP_STRUCT_2026.zip",
          "source_title": "Belgium official denominator source",
          "source_authority": "Belgium",
          "source_type": "official",
          "source_badge": "Official source",
          "source_quality": "verified"
        }
      ],
      "cost_living": [
        {
          "metric_id": "col_fitness_club_eur_month",
          "block_id": "cost_living",
          "value": 24.67,
          "unit": "EUR/month",
          "geographic_scope": "city",
          "observed_at": "2025-12-31",
          "verified_at": "2026-08-01",
          "comparison_eligible": false,
          "source_id": "633:source:3b2fcb18bf2fb999fe367efffc8c3752",
          "source_url": "https://web.archive.org/web/20250517221434/https://www.numbeo.com/cost-of-living/in/Hasselt",
          "source_title": "Numbeo — Cost of Living in Hasselt (Wayback capture 20250517221434)",
          "source_authority": "Numbeo",
          "source_type": "independent",
          "source_badge": "Independent source",
          "source_quality": "supplemental"
        },
        {
          "metric_id": "col_internet_60mbps_eur_month",
          "block_id": "cost_living",
          "value": 44,
          "unit": "EUR/month",
          "geographic_scope": "city",
          "observed_at": "2025-12-31",
          "verified_at": "2026-08-01",
          "comparison_eligible": false,
          "source_id": "633:source:3b2fcb18bf2fb999fe367efffc8c3752",
          "source_url": "https://web.archive.org/web/20250517221434/https://www.numbeo.com/cost-of-living/in/Hasselt",
          "source_title": "Numbeo — Cost of Living in Hasselt (Wayback capture 20250517221434)",
          "source_authority": "Numbeo",
          "source_type": "independent",
          "source_badge": "Independent source",
          "source_quality": "supplemental"
        },
        {
          "metric_id": "col_kindergarten_private_eur_month",
          "block_id": "cost_living",
          "value": 560,
          "unit": "EUR/month",
          "geographic_scope": "city",
          "observed_at": "2025-12-31",
          "verified_at": "2026-08-01",
          "comparison_eligible": false,
          "source_id": "633:source:3b2fcb18bf2fb999fe367efffc8c3752",
          "source_url": "https://web.archive.org/web/20250517221434/https://www.numbeo.com/cost-of-living/in/Hasselt",
          "source_title": "Numbeo — Cost of Living in Hasselt (Wayback capture 20250517221434)",
          "source_authority": "Numbeo",
          "source_type": "independent",
          "source_badge": "Independent source",
          "source_quality": "supplemental"
        },
        {
          "metric_id": "col_mobile_plan_10gb_eur_month",
          "block_id": "cost_living",
          "value": 18.33,
          "unit": "EUR/month",
          "geographic_scope": "city",
          "observed_at": "2025-12-31",
          "verified_at": "2026-08-01",
          "comparison_eligible": false,
          "source_id": "633:source:3b2fcb18bf2fb999fe367efffc8c3752",
          "source_url": "https://web.archive.org/web/20250517221434/https://www.numbeo.com/cost-of-living/in/Hasselt",
          "source_title": "Numbeo — Cost of Living in Hasselt (Wayback capture 20250517221434)",
          "source_authority": "Numbeo",
          "source_type": "independent",
          "source_badge": "Independent source",
          "source_quality": "supplemental"
        },
        {
          "metric_id": "col_transport_monthly_pass_eur",
          "block_id": "cost_living",
          "value": 29.25,
          "unit": "EUR/month",
          "geographic_scope": "city",
          "observed_at": "2025-12-31",
          "verified_at": "2026-08-01",
          "comparison_eligible": false,
          "source_id": "633:source:3b2fcb18bf2fb999fe367efffc8c3752",
          "source_url": "https://web.archive.org/web/20250517221434/https://www.numbeo.com/cost-of-living/in/Hasselt",
          "source_title": "Numbeo — Cost of Living in Hasselt (Wayback capture 20250517221434)",
          "source_authority": "Numbeo",
          "source_type": "independent",
          "source_badge": "Independent source",
          "source_quality": "supplemental"
        },
        {
          "metric_id": "col_utilities_basic_85m2_eur_month",
          "block_id": "cost_living",
          "value": 183.67,
          "unit": "EUR/month",
          "geographic_scope": "city",
          "observed_at": "2025-12-31",
          "verified_at": "2026-08-01",
          "comparison_eligible": false,
          "source_id": "633:source:3b2fcb18bf2fb999fe367efffc8c3752",
          "source_url": "https://web.archive.org/web/20250517221434/https://www.numbeo.com/cost-of-living/in/Hasselt",
          "source_title": "Numbeo — Cost of Living in Hasselt (Wayback capture 20250517221434)",
          "source_authority": "Numbeo",
          "source_type": "independent",
          "source_badge": "Independent source",
          "source_quality": "supplemental"
        }
      ],
      "work_income": [
        {
          "metric_id": "broadband_gigabit_availability_percent",
          "block_id": "work_income",
          "value": 98.98274993,
          "unit": "percent",
          "geographic_scope": "city",
          "observed_at": "2025-06",
          "verified_at": "2026-07-15",
          "comparison_eligible": true,
          "source_id": "bipt_atlas_06_2025_plus_statbel_refnis_2025_merger_crosswalk",
          "source_url": "https://www.bipt-data.be/en/projects/data/opendata",
          "source_title": "BIPT/IBPT fixed broadband Atlas municipality row: H_rate_1000 is the share of households with access to fixed broadband at a maximum attainable speed of at least 1,000 Mbps; availability, not subscribed plan or measured speed. H_1000 is the covered-household count and total_households is the denominator.",
          "source_authority": "BIPT/IBPT — Institut belge des services postaux et des télécommunications",
          "source_type": "official",
          "source_badge": "Official source",
          "source_quality": "verified"
        },
        {
          "metric_id": "unemployment_total_percent",
          "block_id": "work_income",
          "value": 5.68,
          "unit": "percent",
          "geographic_scope": "city",
          "observed_at": "2011-01-01",
          "verified_at": "2026-07-26",
          "comparison_eligible": true,
          "source_id": "source-df4563dacb6d",
          "source_url": "https://bestat.statbel.fgov.be/bestat/api/views/51bc2007-36b3-4f96-a540-823018b2dd67/result/JSON",
          "source_title": "Statbel be.STAT — unemployment rate of 15–64-year-olds by municipality, Census 2011",
          "source_authority": "Statbel / Belgian Census 2011",
          "source_type": "independent",
          "source_badge": "Independent source",
          "source_quality": "verified"
        }
      ],
      "safety": [
        {
          "metric_id": "crime_incidents_per_100k",
          "block_id": "safety",
          "value": 9030.5,
          "unit": "offences/100k",
          "geographic_scope": "city",
          "observed_at": "2025-12-31",
          "verified_at": "2026-07-26",
          "comparison_eligible": true,
          "source_id": "source-5a2becf8304c",
          "source_url": "https://www.police.be/statistiques/sites/statspol/files/statistics_files_upload/Criminalit%C3%A9%20-%20Criminaliteit/2025/2025_T04/crimi_fr/06_Par%20commune/06_Limburg/Limburg_Hasselt_fr.pdf",
          "source_title": "Belgian Federal Police — recorded total offences by municipality, Q4 2025",
          "source_authority": "Belgian Federal Police / DGR/DRI/BIPOL",
          "source_type": "independent",
          "source_badge": "Independent source",
          "source_quality": "verified"
        }
      ],
      "climate_air": [
        {
          "metric_id": "air_quality_no2_annual_ug_m3",
          "block_id": "climate_air",
          "value": 12,
          "unit": "µg/m³",
          "geographic_scope": "nearest_station",
          "observed_at": "2024-12-31",
          "verified_at": "2026-08-01",
          "comparison_eligible": true,
          "source_id": "633:source:58bf4f5c3729213e8073430f0f36ead9",
          "source_url": "https://air.discomap.eea.europa.eu/arcgis/rest/services/AirQuality/AQ_Statistics_WM/MapServer/0/query?where=Country_ISO%3D'BE'%20AND%20AirPollutant%3D'NO2'%20AND%20YearOfStatistics%3D2024&outFields=AirPollutant,AirPollutionLevel,Country_ISO,StationName,YearOfStatistics,UnitOfAirpollutionLevel,ReportingMetric,LatitudeOfMeasurementStation,LongitudeOfMeasurementStation,DataCoverage,Preliminary&returnGeometry=false&f=json",
          "source_title": "EEA air quality statistics — BE NO2 annual mean 2024 (station 42N047 - HASSELT)",
          "source_authority": "European Environment Agency (EEA)",
          "source_type": "official",
          "source_badge": "Official source",
          "source_quality": "verified"
        },
        {
          "metric_id": "air_quality_pm10_annual_ug_m3",
          "block_id": "climate_air",
          "value": 15,
          "unit": "µg/m³",
          "geographic_scope": "nearest_station",
          "observed_at": "2024-12-31",
          "verified_at": "2026-08-01",
          "comparison_eligible": true,
          "source_id": "633:source:acb46e3e0a1dcf8af1532177d32bdec5",
          "source_url": "https://air.discomap.eea.europa.eu/arcgis/rest/services/AirQuality/AQ_Statistics_WM/MapServer/0/query?where=Country_ISO%3D'BE'%20AND%20AirPollutant%3D'PM10'%20AND%20YearOfStatistics%3D2024&outFields=AirPollutant,AirPollutionLevel,Country_ISO,StationName,YearOfStatistics,UnitOfAirpollutionLevel,ReportingMetric,LatitudeOfMeasurementStation,LongitudeOfMeasurementStation,DataCoverage,Preliminary&returnGeometry=false&f=json",
          "source_title": "EEA air quality statistics — BE PM10 annual mean 2024 (station 42N047 - HASSELT)",
          "source_authority": "European Environment Agency (EEA)",
          "source_type": "official",
          "source_badge": "Official source",
          "source_quality": "verified"
        },
        {
          "metric_id": "air_quality_pm25_annual_ug_m3",
          "block_id": "climate_air",
          "value": 9,
          "unit": "µg/m³",
          "geographic_scope": "city",
          "observed_at": "2024-12-31",
          "verified_at": "2026-07-26",
          "comparison_eligible": true,
          "source_id": "source-e6424f21dc7d",
          "source_url": "https://air.discomap.eea.europa.eu/arcgis/rest/services/AirQuality/AQ_Statistics_WM/MapServer/0/query?where=AirPollutant%3D%27PM2.5%27+AND+YearOfStatistics%3D2024&outFields=AirPollutant%2CAirPollutionLevel%2CCountry_ISO%2CStationName%2CAreaOfMeasurementStation%2CYearOfStatistics%2CUnitOfAirpollutionLevel%2CTypeOfMeasurementStation%2CDataCoverage%2CReportingMetric%2CLatitudeOfMeasurementStation%2CLongitudeOfMeasurementStation&returnGeometry=false&resultRecordCount=1000&resultOffset=0&f=json",
          "source_title": "EEA Air Quality Annual Statistics — validated PM2.5 station data",
          "source_authority": "European Environment Agency",
          "source_type": "official",
          "source_badge": "Official source",
          "source_quality": "verified"
        },
        {
          "metric_id": "climate_monthly_high_c",
          "block_id": "climate_air",
          "value": [
            5.6,
            6.6,
            10.5,
            14.7,
            18.4,
            21.4,
            23.6,
            23.3,
            19.5,
            14.7,
            9.6,
            6.1
          ],
          "unit": "°C",
          "geographic_scope": "nearest_station",
          "observed_at": "2020-12-31",
          "verified_at": "2026-07-31",
          "comparison_eligible": true,
          "source_id": "source-a97c53a3879f",
          "source_url": "https://www.ncei.noaa.gov/data/oceans/archive/arc0216/0253808/1.1/data/0-data/Region-6-WMO-Normals-9120/Belgium/CSV/BIERSET_06478.csv",
          "source_title": "WMO Climatological Normals 1991-2020 — station BIERSET_06478.csv",
          "source_authority": "World Meteorological Organization / NOAA NCEI",
          "source_type": "official",
          "source_badge": "Official source",
          "source_quality": "verified"
        },
        {
          "metric_id": "climate_monthly_low_c",
          "block_id": "climate_air",
          "value": [
            0.6,
            0.5,
            2.5,
            5,
            8.8,
            11.8,
            13.9,
            13.6,
            10.7,
            7.5,
            4,
            1.5
          ],
          "unit": "°C",
          "geographic_scope": "nearest_station",
          "observed_at": "2020-12-31",
          "verified_at": "2026-07-31",
          "comparison_eligible": true,
          "source_id": "source-a97c53a3879f",
          "source_url": "https://www.ncei.noaa.gov/data/oceans/archive/arc0216/0253808/1.1/data/0-data/Region-6-WMO-Normals-9120/Belgium/CSV/BIERSET_06478.csv",
          "source_title": "WMO Climatological Normals 1991-2020 — station BIERSET_06478.csv",
          "source_authority": "World Meteorological Organization / NOAA NCEI",
          "source_type": "official",
          "source_badge": "Official source",
          "source_quality": "verified"
        },
        {
          "metric_id": "climate_monthly_mean_c",
          "block_id": "climate_air",
          "value": [
            3.1,
            3.5,
            6.5,
            9.9,
            13.6,
            16.6,
            18.7,
            18.5,
            15.1,
            11.1,
            6.8,
            3.8
          ],
          "unit": "°C",
          "geographic_scope": "nearest_station",
          "observed_at": "2020-12-31",
          "verified_at": "2026-07-31",
          "comparison_eligible": true,
          "source_id": "source-a97c53a3879f",
          "source_url": "https://www.ncei.noaa.gov/data/oceans/archive/arc0216/0253808/1.1/data/0-data/Region-6-WMO-Normals-9120/Belgium/CSV/BIERSET_06478.csv",
          "source_title": "WMO Climatological Normals 1991-2020 — station BIERSET_06478.csv",
          "source_authority": "World Meteorological Organization / NOAA NCEI",
          "source_type": "official",
          "source_badge": "Official source",
          "source_quality": "verified"
        },
        {
          "metric_id": "climate_monthly_precip_mm",
          "block_id": "climate_air",
          "value": [
            64.9,
            59.5,
            54.5,
            47.5,
            62.6,
            73.9,
            79.4,
            86.9,
            60.8,
            64.6,
            62.9,
            79.9
          ],
          "unit": "mm",
          "geographic_scope": "nearest_station",
          "observed_at": "2020-12-31",
          "verified_at": "2026-07-31",
          "comparison_eligible": true,
          "source_id": "source-a97c53a3879f",
          "source_url": "https://www.ncei.noaa.gov/data/oceans/archive/arc0216/0253808/1.1/data/0-data/Region-6-WMO-Normals-9120/Belgium/CSV/BIERSET_06478.csv",
          "source_title": "WMO Climatological Normals 1991-2020 — station BIERSET_06478.csv",
          "source_authority": "World Meteorological Organization / NOAA NCEI",
          "source_type": "official",
          "source_badge": "Official source",
          "source_quality": "verified"
        }
      ]
    }
  }
}
