Source & methodology

European city data methodology

European city data methodology on this page explains every source, raw snapshot, build step, geography rule and quality check behind the published figures.

Methodology last updated 2026-08-27 · dataset build 2026-08-26 · 701 cities · 50 indicators.

1 · What this dataset is

Cities of Europe is a source-literal comparison of European cities and functional urban areas built on official statistics. We report exactly what the source publishes — an indicator label, a value, a unit, a reference year and a geography type — and attach that provenance to every figure on every page.

It is a faithful presentation layer over public data, not a model. We do not estimate values for cities the source does not cover, and we do not blend indicators into composite scores.

Our standard: a terse, fully-sourced page beats a rich, partly-wrong one. When a fact cannot be backed by a named source at the right grain, we hedge it or cut it.

2 · Sources

Every number on the site comes from one of these source families. Registered sources are documented but not yet built into published data.

SourceAuthorityVintageUpdate cadenceLink
Eurostat — City statistics (Urban Audit)
Live
Eurostat (Statistical Office of the European Union) Reference year 2022 (perception survey 2023) Weekly checks; indicators revised on Eurostat's schedule official ↗
Eurostat GISCO — Urban Audit 2024 geography
Live
Eurostat GISCO Urban Audit 2024 statistical units Annual / on GISCO release official ↗
Eurostat GISCO — Country boundaries (CNTR_RG)
Live
Eurostat GISCO 2024 country geometry, 1:20M generalization Annual / on GISCO release official ↗
Eurostat — Regional statistics (NUTS)
Live
Eurostat Latest non-null year per region (GDP to 2024; life expectancy 2024) Weekly checks; revised on Eurostat's schedule official ↗
Eurostat — Purchasing power parities
Live
Eurostat 2024 price level index, GDP, EU27_2020=100 Weekly checks; annual values revised on Eurostat's schedule official ↗
EEA — Monthly AQ statistics in European cities
Live
European Environment Agency 2024 annualized from monthly city averages Monthly checks; public annual metrics use completed years official ↗
Copernicus ERA5-Land monthly means
Live
Copernicus Climate Data Store / ECMWF 1991–2020 climate normals Monthly product; normals revised per decade official ↗
Copernicus Urban Atlas 2018
Registered
Copernicus Land Monitoring Service 2018 Urban Atlas product catalogue Multi-year product; catalogue checked on update cycles official ↗
OECD — Functional urban areas
Registered
OECD Registered reference source Irregular; manual review before metric publication official ↗

How Eurostat produces these numbers

Eurostat's City statistics (the Urban Audit programme) collect comparable indicators for European cities and their functional urban areas from national statistical institutes. Reporting is voluntary for many indicators, so coverage varies by indicator and country. We retrieve the figures directly from Eurostat's JSON-stat dissemination API and never re-key them by hand.

How non-city-grain sources are handled

Eurostat regional and PPP values, EEA city-air-quality areas and Copernicus climate grid cells are useful context, but they are not all city-proper measurements. The pipeline keeps the source-native grain in value_grain and the source geography in value_geo_code, then labels the figure accordingly on the page.

3 · Geography & the grain rule

European city statistics exist at several distinct geographies. We keep them separate and always label which one a figure uses:

The grain rule. A city's displayed name and its city/greater-city label come from the Eurostat City-statistics label attached to the values (e.g. "Madrid (greater city)") — not from the GISCO geography label, which disagrees for 131 of our codes. The GISCO Urban Audit 2024 layer supplies country, capital flag and area only. This prevents showing a greater-city value under a city-proper heading.

The geography spine also carries a NUTS3 region code for every city. We use it to attach regional context — GDP per inhabitant (NUTS3) and life expectancy at birth (NUTS2) from Eurostat regional statistics. These are regional values for the area the city sits in, shown in their own section, labelled with the NUTS code, and never presented as a city-measured figure. Population density and the 65-and-over share are derived from Eurostat population and GISCO area at the city's own grain.

The country locator map

Each city page shows a small country outline with a pulsing marker at the city. The outline is the official Eurostat GISCO country geometry (CNTR_RG, 1:20M generalization, 2024), and the marker reuses the GISCO Urban Audit label point for that city. Both use the same per-country cosine-corrected equirectangular transform. Two staggered rings make the point easier to find; browsers that request reduced motion show only the fixed marker. This is a generalized locator graphic, not a boundary or sovereignty claim. Overseas and non-contiguous territories are cropped so the inset shows the home landmass, and the marker is a labelled city point, not a precise address.

4 · How the data is fetched, stored and processed

We follow the same discipline as our sibling data projects: raw snapshots are evidence, processed files are deterministic build products, and this methodology defines what the site may claim.

How city pages present the data

Each city page compares a metric only with records from the same reference year and the same geography grain. It shows rank, percentile, reporting median and denominator. City and greater-city values never share a comparison set. Ranks are never an unqualified “Nth largest”; the page states how many comparable records reported the field. The narrative summary is generated deterministically from the same values (no AI writing, a banned-phrase check fails the build). The 12-month climate chart uses the ERA5-Land monthly 1991–2020 normals.

Initial publishing wave

The full dataset and the indexable city-page set are separate. The initial release selects exactly 150 profiles through a checked-in publishing cohort. Selection rewards source-family depth, metric coverage, complete climate data, population, capital status, geography confidence and country diversity. Other profiles remain reachable through the explorer and tools but carry noindex,follow and stay out of the sitemap. A source refresh cannot silently add indexable profiles.

Dedicated population and climate pages render their complete source tables in HTML, then add filtering, sorting, pagination and CSV export in the browser. Filter combinations do not become separate indexable pages. Saved random-city draws use the clean tool page as canonical and carry noindex,follow.

Missing values stay missing. We never fill a city from a country or regional average unless the rendered label explicitly says the value is country- or region-grain context.

5 · Coverage & missingness

Reporting is voluntary, so we publish how many cities actually report each indicator rather than implying complete coverage. Counts below are from the current build.

IndicatorCodeUnitModuleCities reporting
Population on 1 January, total DE1001V persons Population & demographics 589
Population density (population divided by GISCO area) DERIVED_DENSITY persons per km2 Population & demographics 544
Share of population aged 65 and over DERIVED_SHARE65 percent Population & demographics 546
Mean annual air temperature (1991-2020 normal) CLIM_TAVG °C Climate (ERA5-Land normals) 601
Mean January air temperature (1991-2020 normal) CLIM_TJAN °C Climate (ERA5-Land normals) 601
Mean July air temperature (1991-2020 normal) CLIM_TJUL °C Climate (ERA5-Land normals) 601
Mean annual precipitation (1991-2020 normal) CLIM_PRECIP mm per year Climate (ERA5-Land normals) 601
Mean surface solar radiation downwards (1991-2020 normal) CLIM_SOLAR W per m2 Climate (ERA5-Land normals) 601
Annual mean NO2 concentration from EEA monthly city averages EEA_NO2_ANNUAL_MEAN µg/m3 Air quality (EEA annualized) 329
Annual mean O3 concentration from EEA monthly city averages EEA_O3_ANNUAL_MEAN µg/m3 Air quality (EEA annualized) 281
Annual mean PM2.5 concentration from EEA monthly city averages EEA_PM25_ANNUAL_MEAN µg/m3 Air quality (EEA annualized) 298
Average annual rent for housing per m2 SA1049V EUR per m2 per year Housing & living costs 196
Average price for buying a house SA1050V EUR Housing & living costs 288
Average price for buying an apartment SA1051V EUR Housing & living costs 305
Average price for buying a house per m2 SA1052V EUR per m2 Housing & living costs 279
Average price for buying an apartment per m2 SA1053V EUR per m2 Housing & living costs 278
Unemployment rate EC1020I percent Employment 416
Total employment/jobs (workplace based) EC2020V jobs Employment 552
Share of students in higher education in the total population TE1026I students per 1000 residents Education 443
Crude birth rate SA2007I births per 1000 residents Births & deaths 520
Crude death rate SA2029I deaths per 1000 residents Births & deaths 556
Number of registered cars per 1000 population TT1057I cars per 1000 population Transport costs 384
People killed in road accidents per 10000 population TT1060I deaths per 10000 population Transport costs 498
Length of bicycle network (dedicated cycle paths and lanes) TT1079V km Transport costs 349
Cost of a combined monthly ticket for 5-10 km in the central zone TT1080V EUR Transport costs 93
Cost of a taxi ride of 5 km to the centre at daytime TT1081V EUR Transport costs 156
Country price level index for GDP PPP_GDP_PLI_EU27_2020 EU27_2020=100 Country price context (PPP) 637
Total nights spent in tourist accommodation establishments CR2001V nights Tourism 174
Nights spent in tourist accommodation establishments by residents CR2010V nights Tourism 97
Nights spent in tourist accommodation establishments by non-residents CR2011V nights Tourism 97
Number of cinema seats per 1000 residents CR1003I seats per 1000 residents Culture 388
Cinema attendance per year CR1005V visits per year Culture 363
Number of museum visitors per year CR1007V visits per year Culture 325
Number of public libraries (all distribution points) CR1010V libraries Culture 549
Share strongly agreeing it is easy to find good housing at a reasonable price PS2032V percent Resident perception survey 80
Share somewhat agreeing it is easy to find good housing at a reasonable price PS2033V percent Resident perception survey 80
Share very satisfied with the quality of the air in the city PS3260V percent Resident perception survey 80
Share rather satisfied with the quality of the air in the city PS3261V percent Resident perception survey 80
Share very satisfied with the noise level in the city PS3270V percent Resident perception survey 80
Share rather satisfied with the noise level in the city PS3271V percent Resident perception survey 80
Share very satisfied with cleanliness in the city PS3280V percent Resident perception survey 80
Share rather satisfied with cleanliness in the city PS3281V percent Resident perception survey 80
Share strongly agreeing they are satisfied to live in this city PS3360V percent Resident perception survey 80
Share somewhat agreeing they are satisfied to live in this city PS3361V percent Resident perception survey 80
Share strongly agreeing they feel safe walking alone at night in the city PS3514V percent Resident perception survey 80
Share somewhat agreeing they feel safe walking alone at night in the city PS3515V percent Resident perception survey 80
Share strongly agreeing public transport is affordable PS3547V percent Resident perception survey 80
Share somewhat agreeing public transport is affordable PS3548V percent Resident perception survey 80
Regional GDP per inhabitant REG_GDP_HAB EUR per inhabitant Regional context (NUTS) 627
Life expectancy at birth, both sexes REG_LIFEEXP years Regional context (NUTS) 637

6 · Field recipes

Every published field is source-literal: either a verbatim official indicator, a documented grain-preserving attachment, or a documented derivation from named official inputs. We do not impute missing values or blend fields into composite scores. Each field carries a guardrail describing what it may not be used to claim.

FieldRecipeGuardrail
Population on 1 January, total
DE1001V
Copied verbatim from Eurostat urb_cpop1; no transformation beyond unit grouping for display. Label the page as Eurostat city or greater-city population for the stated year.
Population density (population divided by GISCO area)
DERIVED_DENSITY
Derived from Eurostat inputs (see guardrail); no external data added. Derived from Eurostat population and GISCO Urban Audit area; same grain as the population figure.
Share of population aged 65 and over
DERIVED_SHARE65
Derived from Eurostat inputs (see guardrail); no external data added. Derived from Eurostat city age bands; share of the reported total population.
Mean annual air temperature (1991-2020 normal)
CLIM_TAVG
Copied verbatim from Eurostat era5_land_monthly; no transformation beyond unit grouping for display. ERA5-Land reanalysis at the city centroid grid cell; not station weather or a forecast.
Mean January air temperature (1991-2020 normal)
CLIM_TJAN
Copied verbatim from Eurostat era5_land_monthly; no transformation beyond unit grouping for display. ERA5-Land reanalysis at the city centroid grid cell; not station weather or a forecast.
Mean July air temperature (1991-2020 normal)
CLIM_TJUL
Copied verbatim from Eurostat era5_land_monthly; no transformation beyond unit grouping for display. ERA5-Land reanalysis at the city centroid grid cell; not station weather or a forecast.
Mean annual precipitation (1991-2020 normal)
CLIM_PRECIP
Copied verbatim from Eurostat era5_land_monthly; no transformation beyond unit grouping for display. ERA5-Land reanalysis total precipitation at the city centroid grid cell; not station weather.
Mean surface solar radiation downwards (1991-2020 normal)
CLIM_SOLAR
Copied verbatim from Eurostat era5_land_monthly; no transformation beyond unit grouping for display. ERA5-Land mean surface solar radiation; this is irradiance, NOT sunshine hours.
Annual mean NO2 concentration from EEA monthly city averages
EEA_NO2_ANNUAL_MEAN
European Environment Agency monthly city air-quality table; monthly rows below the coverage threshold are excluded, then a days-weighted annual mean is computed. Days-weighted annual mean from EEA monthly city averages after coverage filtering; not a forecast or station-only value.
Annual mean O3 concentration from EEA monthly city averages
EEA_O3_ANNUAL_MEAN
European Environment Agency monthly city air-quality table; monthly rows below the coverage threshold are excluded, then a days-weighted annual mean is computed. Days-weighted annual mean from EEA monthly city averages after coverage filtering; not a forecast or station-only value.
Annual mean PM2.5 concentration from EEA monthly city averages
EEA_PM25_ANNUAL_MEAN
European Environment Agency monthly city air-quality table; monthly rows below the coverage threshold are excluded, then a days-weighted annual mean is computed. Days-weighted annual mean from EEA monthly city averages after coverage filtering; not a forecast or station-only value.
Average annual rent for housing per m2
SA1049V
Copied verbatim from Eurostat urb_clivcon; no transformation beyond unit grouping for display. This is a reported Eurostat city field, not a full housing-cost basket.
Average price for buying a house
SA1050V
Copied verbatim from Eurostat urb_clivcon; no transformation beyond unit grouping for display. Coverage is voluntary and city-level availability must be shown.
Average price for buying an apartment
SA1051V
Copied verbatim from Eurostat urb_clivcon; no transformation beyond unit grouping for display. Coverage is voluntary and city-level availability must be shown.
Average price for buying a house per m2
SA1052V
Copied verbatim from Eurostat urb_clivcon; no transformation beyond unit grouping for display. Coverage is voluntary and city-level availability must be shown.
Average price for buying an apartment per m2
SA1053V
Copied verbatim from Eurostat urb_clivcon; no transformation beyond unit grouping for display. Coverage is voluntary and city-level availability must be shown.
Unemployment rate
EC1020I
Copied verbatim from Eurostat urb_clma; no transformation beyond unit grouping for display. Eurostat city or greater-city unemployment rate for the stated year; national definitions and observation flags still apply.
Total employment/jobs (workplace based)
EC2020V
Copied verbatim from Eurostat urb_clma; no transformation beyond unit grouping for display. Workplace-based jobs reported for the Eurostat city or greater-city geography; not employed residents or job openings.
Share of students in higher education in the total population
TE1026I
Copied verbatim from Eurostat urb_ceduc; no transformation beyond unit grouping for display. Students in ISCED levels 5-8 per 1000 residents; not the share of residents with a university degree.
Crude birth rate
SA2007I
Copied verbatim from Eurostat urb_cfermor; no transformation beyond unit grouping for display. Annual live births per 1000 residents for the reported Eurostat geography; not a fertility rate.
Crude death rate
SA2029I
Copied verbatim from Eurostat urb_cfermor; no transformation beyond unit grouping for display. Annual deaths per 1000 residents for the reported Eurostat geography; age structure strongly affects comparisons.
Number of registered cars per 1000 population
TT1057I
Copied verbatim from Eurostat urb_ctran; no transformation beyond unit grouping for display. Registered cars per resident, not congestion, traffic speed or household car access.
People killed in road accidents per 10000 population
TT1060I
Copied verbatim from Eurostat urb_ctran; no transformation beyond unit grouping for display. Small annual rates can be volatile; do not present as a full traffic-safety score.
Length of bicycle network (dedicated cycle paths and lanes)
TT1079V
Copied verbatim from Eurostat urb_ctran; no transformation beyond unit grouping for display. Reported Eurostat infrastructure length; not a cycling-mode-share or safety measure.
Cost of a combined monthly ticket for 5-10 km in the central zone
TT1080V
Copied verbatim from Eurostat urb_ctran; no transformation beyond unit grouping for display. This is a transport-cost input, not a full cost-of-living index.
Cost of a taxi ride of 5 km to the centre at daytime
TT1081V
Copied verbatim from Eurostat urb_ctran; no transformation beyond unit grouping for display. This is a transport-cost input, not a full cost-of-living index.
Country price level index for GDP
PPP_GDP_PLI_EU27_2020
Eurostat PPP table prc_ppp_ind, attached by GISCO country code and labelled as country-grain context. Country-grain price-level context; not a city cost-of-living basket or local price survey.
Total nights spent in tourist accommodation establishments
CR2001V
Copied verbatim from Eurostat urb_ctour; no transformation beyond unit grouping for display. Accommodation nights are not total visitors or day trips.
Nights spent in tourist accommodation establishments by residents
CR2010V
Copied verbatim from Eurostat urb_ctour; no transformation beyond unit grouping for display. Accommodation nights are not total visitors or day trips.
Nights spent in tourist accommodation establishments by non-residents
CR2011V
Copied verbatim from Eurostat urb_ctour; no transformation beyond unit grouping for display. Accommodation nights are not total visitors or day trips.
Number of cinema seats per 1000 residents
CR1003I
Copied verbatim from Eurostat urb_ctour; no transformation beyond unit grouping for display. Cinema-seat capacity per resident; not annual attendance or a culture score.
Cinema attendance per year
CR1005V
Copied verbatim from Eurostat urb_ctour; no transformation beyond unit grouping for display. Culture attendance count where reported; not a full cultural-offer index.
Number of museum visitors per year
CR1007V
Copied verbatim from Eurostat urb_ctour; no transformation beyond unit grouping for display. Museum visitor count where reported; not a count of museums or all cultural visits.
Number of public libraries (all distribution points)
CR1010V
Copied verbatim from Eurostat urb_ctour; no transformation beyond unit grouping for display. Library distribution points where reported; not library visits or service quality.
Share strongly agreeing it is easy to find good housing at a reasonable price
PS2032V
Copied verbatim from Eurostat urb_percep; no transformation beyond unit grouping for display. Survey perception, not measured rent or purchase price.
Share somewhat agreeing it is easy to find good housing at a reasonable price
PS2033V
Copied verbatim from Eurostat urb_percep; no transformation beyond unit grouping for display. Survey perception, not measured rent or purchase price.
Share very satisfied with the quality of the air in the city
PS3260V
Copied verbatim from Eurostat urb_percep; no transformation beyond unit grouping for display. Survey perception, not measured pollutant concentration.
Share rather satisfied with the quality of the air in the city
PS3261V
Copied verbatim from Eurostat urb_percep; no transformation beyond unit grouping for display. Survey perception, not measured pollutant concentration.
Share very satisfied with the noise level in the city
PS3270V
Copied verbatim from Eurostat urb_percep; no transformation beyond unit grouping for display. Survey perception, not measured noise exposure.
Share rather satisfied with the noise level in the city
PS3271V
Copied verbatim from Eurostat urb_percep; no transformation beyond unit grouping for display. Survey perception, not measured noise exposure.
Share very satisfied with cleanliness in the city
PS3280V
Copied verbatim from Eurostat urb_percep; no transformation beyond unit grouping for display. Survey perception, not a measured street-cleaning or litter index.
Share rather satisfied with cleanliness in the city
PS3281V
Copied verbatim from Eurostat urb_percep; no transformation beyond unit grouping for display. Survey perception, not a measured street-cleaning or litter index.
Share strongly agreeing they are satisfied to live in this city
PS3360V
Copied verbatim from Eurostat urb_percep; no transformation beyond unit grouping for display. Survey perception, not an objective best-city ranking.
Share somewhat agreeing they are satisfied to live in this city
PS3361V
Copied verbatim from Eurostat urb_percep; no transformation beyond unit grouping for display. Survey perception, not an objective best-city ranking.
Share strongly agreeing they feel safe walking alone at night in the city
PS3514V
Copied verbatim from Eurostat urb_percep; no transformation beyond unit grouping for display. Survey perception, not a crime rate.
Share somewhat agreeing they feel safe walking alone at night in the city
PS3515V
Copied verbatim from Eurostat urb_percep; no transformation beyond unit grouping for display. Survey perception, not a crime rate.
Share strongly agreeing public transport is affordable
PS3547V
Copied verbatim from Eurostat urb_percep; no transformation beyond unit grouping for display. Survey perception, not measured fare affordability.
Share somewhat agreeing public transport is affordable
PS3548V
Copied verbatim from Eurostat urb_percep; no transformation beyond unit grouping for display. Survey perception, not measured fare affordability.
Regional GDP per inhabitant
REG_GDP_HAB
Eurostat regional table nama_10r_3gdp, latest non-null year per region, attached to the city's NUTS area. Not a city-measured value. NUTS3 regional value, not a city figure; the city lies within this region.
Life expectancy at birth, both sexes
REG_LIFEEXP
Eurostat regional table demo_r_mlifexp, latest non-null year per region, attached to the city's NUTS area. Not a city-measured value. NUTS2 regional value at birth, both sexes; not a city-specific figure.

7 · Eurostat observation-status flags

Where Eurostat marks an observation with a status flag, we preserve it next to the value and explain it on the page.

FlagMeaning
bbreak in time series
ddefinition differs
eestimated
pprovisional
ulow reliability

8 · What we do not claim

To keep every page defensible, the project forbids these claims regardless of demand:

9 · Limits & roadmap

Current limits. Population, housing, employment, education, demography, transport, tourism and culture indicators are reference year 2022; the perception survey is 2023; EEA air-quality values are annualized from 2024 monthly city averages. Many indicators are reported by only a subset of cities (see Coverage).

Live now. Eurostat city employment, education and basic demographic indicators; regional GDP and life expectancy joined by NUTS; PPP country price-level context; derived population density and 65-and-over share; ERA5-Land climate normals; and EEA PM2.5, NO2 and O3 annualized city-air values. Registered but gated. OECD functional urban areas and Copernicus Urban Atlas are documented and fetchable, but they do not emit city metric rows until crosswalk or geospatial-overlay validators pass.

Climate (ERA5-Land, 1991–2020). Mean annual, January and July air temperature, mean annual precipitation, and mean surface solar radiation are taken from the Copernicus ERA5-Land monthly-means reanalysis, averaged over 1991–2020 and assigned to each city's nearest 0.1° grid cell by its GISCO centroid. These are reanalysis values for that grid cell — not station observations, not forecasts, and not current weather. Solar is mean surface solar radiation (irradiance), not sunshine hours. 10 m wind is captured in the dataset but not shown on pages, because monthly-mean components yield only a mean-vector speed that understates true wind speed.

10 · Licensing & attribution

This methodology page is kept in step with the source registry and the data pipeline; when a source, field or vintage changes, this page changes in the same update.