Skip to content

Repository files navigation

Eurostat 🇪🇺 — European regional data, open and queryable

GDP, population, crime, health, education, climate — at NUTS2 (regional) and NUTS3 (provincial) level for every EU country.

Eurostat for DataCivicLab downloads, normalises and publishes Eurostat SDMX data as columnar parquet files on Google Cloud Storage. All data is open, free, and SQL-queryable.

What's inside

Published datasets 21 NUTS3 + 9 NUTS2 (30 total)
Period 1980 — 2025 (varies by dataset)
Coverage All EU + EFTA + candidate countries
Format Parquet on public GCS

By theme

Theme Examples
💼 Economy GDP, GVA, Employment, Productivity
👥 Demography Population, Deaths, Births, Ageing
🚓 Crime Recorded offences by ICCS
🏨 Tourism Nights spent at accommodation
🚗 Transport Road accidents
🌡️ Climate Heating/cooling degree days
🌱 Environment Soil erosion
🏢 Business Enterprise births/deaths
🏥 Health Physicians, Hospital beds
📊 Social Poverty risk, Income inequality
📚 Education Early school leaving, Tertiary attainment
🔬 Innovation R&D expenditure

Full list: docs/dataset-registry.md

Note: all 28 datasets use the declarative SDMX pipeline (type: sdmx, agency ESTAT). The two historical script-based connectors (eurostat-bd-hgnace2-r3-nuts3, eurostat-pop-nuts3) were migrated to SDMX and now produce the same analytical marts as the rest of the catalog.

Questions you can answer

  • Which Italian province has the highest GDP per capita? And the lowest?
  • How does the crime rate compare between European regions?
  • Which regions have the oldest population? And the youngest?
  • Where is R&D spending growing fastest in Europe?
  • How does the poverty risk differ between northern and southern Europe?

Three ways to access

1. Via MCP (toolkit)

All datasets are accessible via the DataCivicLab toolkit MCP server — the single MCP entry point for every Lab dataset. Connect it to your AI client:

-- GDP per capita of Italian provinces (2024)
SELECT geo_label_en, ROUND(value) AS gdp_pc
FROM eurostat_gdp_nuts3
WHERE geo LIKE 'IT%' AND unit='EUR_HAB' AND year=2024
ORDER BY value DESC;

Available tools: toolkit_find, toolkit_dataset_overview, toolkit_layer (SQL query; mart tables via table=mart_sintesi|mart_trend| mart_geo_benchmark), toolkit_registry_show (codelists).

2. Via DuckDB directly

import duckdb
duckdb.sql("""
    SELECT geo_label_en, ROUND(value) AS gdp_pc
    FROM read_parquet('gs://dataciviclab-clean/eurostat/eurostat_gdp_nuts3/*_clean.parquet')
    WHERE geo LIKE 'IT%' AND unit='EUR_HAB' AND year=2024
    ORDER BY value DESC
""").show()

3. Via download parquet

Public GCS buckets:

  • Clean: gs://dataciviclab-clean/eurostat/{slug}/
  • Mart: gs://dataciviclab-mart/eurostat/{slug}/

Discussions by theme

Theme Discussion
💼 Economy Labour productivity across the EU
📚 Education Early school leaving
🏥 Health Hospital bed capacity
🏢 Business Enterprise births
🔬 R&D R&D spending

Contribute

Technical docs

Part of DataCivicLab.

About

European regional data at your fingertips — GDP, population, crime and more at NUTS2/NUTS3 level.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

6 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages