EU tourism nights spent, annual (Eurostat)
Annual tourism-demand panel from Eurostat's official keyless dissemination API: nights spent at tourist accommodation establishments (hotels, holiday/short-stay, camping; NACE I551-I553) per country and year, 1990 onward, split into total, domestic and foreign (non-resident) nights, with the foreign share of nights, year-on-year changes, and a within-year demand rank. Eurostat observation flags (estimated/provisional/break) kept verbatim; the domestic/foreign split is honestly null where unpublished upstream. Who joins this: travel and hospitality models join tourism demand on (geo, year) to market sizing and seasonality baselines; macro and regional analysts track the foreign share as an external-demand gauge; recovery studies use the COVID trough (2020-2021) and the rebound path. Eurostat dataset tour_occ_ninat ('Nights spent at tourist accommodation establishments').
- Rows
- 1,120
- Columns
- 16
- Source cadence
- Yearly
- Last refreshed
- Oct 9, 2026
- Theme
- economy
| Column | Type | Description |
|---|---|---|
| year | integer | Observation year (1990 -> latest published); panel join key with geo. (unit: year) |
| year_start | date | First day of the observation year. (unit: date) |
| geo | string | Eurostat country/aggregate code (e.g. ES, FR, EU27_2020, EA20). The United Kingdom, Kosovo and superseded legacy aggregates (EU, EU28, EU27_2007, EU25, EA) are excluded per the catalog's Eurostat geo rule. (unit: string) |
| geo_label | string | English label for geo as published by Eurostat. (unit: string) |
| nights_total | float | Nights spent at tourist accommodation establishments by all guests (domestic + foreign), all accommodation types (NACE I551-I553: hotels, holiday and other short-stay accommodation, camping grounds). Eurostat tour_occ_ninat, c_resid=TOTAL, unit NR. (unit: nights) |
| nights_total_flag | string | Eurostat observation flag for nights_total as published ('e' estimated, 'p' provisional, 'b' break in series, ...); empty when unflagged. (unit: string) |
| nights_domestic | float | Nights spent by guests resident in the reporting country (c_resid=DOM). Honestly null where unpublished upstream — never imputed. (unit: nights) |
| nights_domestic_flag | string | Eurostat observation flag for nights_domestic as published; empty when unflagged. (unit: string) |
| nights_foreign | float | Nights spent by non-resident guests (c_resid=FOR). Honestly null where unpublished upstream — never imputed. (unit: nights) |
| nights_foreign_flag | string | Eurostat observation flag for nights_foreign as published; empty when unflagged. (unit: string) |
| foreign_share_pct | string | Foreign share of nights: 100 * nights_foreign / nights_total. Null unless the domestic/foreign split is published for the cell. (unit: percent) |
| yoy_total_pct | float | Year-on-year percent change of nights_total (exact prior year); null for a geo's first published year or when the prior year is missing (never bridges gaps). (unit: percent) |
| yoy_domestic_pct | float | Year-on-year percent change of nights_domestic; null where the prior year is missing (never bridges gaps). (unit: percent) |
| yoy_foreign_pct | float | Year-on-year percent change of nights_foreign; null where the prior year is missing (never bridges gaps). (unit: percent) |
| nights_total_rank | integer | Within-year rank of nights_total across kept geos (1 = most nights; ties share a rank). (unit: rank) |
| row_hash | string | Deterministic 16-hex sha256 of year + geo + the raw nights values and flags (idempotency key). (unit: string) |
First 10 sample rows — a preview, not the complete dataset.
| year | year_start | geo | geo_label | nights_total | nights_total_flag | nights_domestic | nights_domestic_flag | nights_foreign | nights_foreign_flag | foreign_share_pct | yoy_total_pct | yoy_domestic_pct | yoy_foreign_pct | nights_total_rank | row_hash |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2,018 | 2018-01-01 | AL | Albania | 3,074,657 | e | 931,190 | e | 2,143,467 | e | 69.714 | — | — | — | 30 | f1b647de53924a6f |
| 2,019 | 2019-01-01 | AL | Albania | 3,253,419 | e | 1,103,905 | e | 2,149,514 | e | 66.069 | 5.814 | 18.548 | 0.282 | 31 | 374a08f7d9b8daff |
| 2,020 | 2020-01-01 | AL | Albania | 1,605,444 | e | 800,028 | e | 805,416 | e | 50.168 | -50.654 | -27.527 | -62.53 | 33 | b49acd1a619332b5 |
| 2,021 | 2021-01-01 | AL | Albania | 3,186,072 | e | 1,155,185 | e | 2,030,887 | e | 63.743 | 98.454 | 44.393 | 152.154 | 32 | cfce8a40e5c8eb95 |
| 2,022 | 2022-01-01 | AL | Albania | 3,831,329 | e | 1,339,177 | e | 2,492,152 | e | 65.047 | 20.252 | 15.927 | 22.712 | 34 | 24f3ef2b6d706fee |
| 2,023 | 2023-01-01 | AL | Albania | 6,007,854 | e | 2,101,259 | e | 3,906,595 | e | 65.025 | 56.809 | 56.907 | 56.756 | 32 | 637ce096042e0c75 |
| 2,024 | 2024-01-01 | AL | Albania | 7,445,714 | — | 2,214,777 | — | 5,230,937 | — | 70.254 | 23.933 | 5.402 | 33.9 | 31 | befe7a52209b521f |
| 2,025 | 2025-01-01 | AL | Albania | 9,688,568 | — | 2,543,594 | — | 7,144,974 | — | 73.746 | 30.123 | 14.847 | 36.591 | 29 | 3ab962d1258dcbe9 |
| 1,990 | 1990-01-01 | AT | Austria | 93,825,072 | — | 23,184,965 | — | 70,640,107 | — | 75.289 | — | — | — | 5 | e521e5cc06877da0 |
| 1,991 | 1991-01-01 | AT | Austria | 97,412,703 | — | — | — | 73,027,382 | — | — | 3.824 | — | 3.379 | 5 | 5eccaa27cde0f81b |
Profiled Oct 9, 2026 from snapshot 20261009T003049Z-9b8a919bc889
Measured- Completeness
- 85.8%
- Rows
- 1,120
- Columns
- 16
- Columns with gaps
- 6
| Column | Missing | Distinct | Range | Distribution |
|---|---|---|---|---|
| yearbigint | 0% | 35 | 1,990 → 2,025median 2,009 | |
| year_startdate | 0% | 38 | Jan 1, 1990 → Jan 1, 2025 | — |
| geovarchar | 0% | 39 | — |
|
| geo_labelvarchar | 0% | 38 | — |
|
| nights_totaldouble | 0% | 1,151 | 112,484 → 3,144,708,974median 28,025,138 | 24 outside 1st–99th percentile |
| nights_total_flagvarchar | 0% | 4 | — |
|
| nights_domesticdouble | 51.4% | 569 | 2,019 → 1,605,961,281median 16,721,422 | 12 outside 1st–99th percentile |
| nights_domestic_flagvarchar | 51.4% | 4 | — |
|
| nights_foreigndouble | 0% | 1,203 | 110,465 → 1,538,747,693median 11,287,940 | 24 outside 1st–99th percentile |
| nights_foreign_flagvarchar | 0% | 4 | — |
|
| foreign_share_pctdouble | 51.4% | 616 | 6.89 → 98.44median 49.09 | 12 outside 1st–99th percentile |
| yoy_total_pctdouble | 4.9% | 1,165 | -78.8 → 188.64median 2.72 | 22 outside 1st–99th percentile |
| yoy_domestic_pctdouble | 63.2% | 482 | -50.93 → 90.35median 2.98 | 10 outside 1st–99th percentile |
| yoy_foreign_pctdouble | 4.9% | 1,219 | -84.1 → 214.74median 3.71 | 22 outside 1st–99th percentile |
| nights_total_rankbigint | 0% | 37 | 1 → 37median 16 | 8 outside 1st–99th percentile |
| row_hashvarchar | 0% | 1,248 | — |
|
- CurrentFile published
20261009T003049Z-9b8a919bc889 · sha256 9b8a919bc889…
1,120 rows · first snapshot
Point any LLM at the metadata endpoint — the documentation above is machine-readable too (JSON-LD + Croissant).
curl "https://datazimuts.com/v1/datasets/eurostat_tourism_intel/tourism_nights_annual" | jq '{title, rows, columns_count, license}'import requests
ds = requests.get("https://datazimuts.com/v1/datasets/eurostat_tourism_intel/tourism_nights_annual").json()
print(ds["title"], ds["rows"], "rows")
# Sample rows for an LLM context window
for row in ds.get("sample_rows", [])[:5]:
print(row)API endpoint: https://datazimuts.com/v1/datasets/eurostat_tourism_intel/tourism_nights_annual
Tip: fetch /llms.txt for the full machine-readable catalog.
Where this data comes from and what was made from it. Other people's work shows as counts; only shared projects are named.
Cite this snapshot
Pinned to snapshot 20261009T003049Z-9b8a919bc889 and its content hash, so readers get exactly the data you used.
Eurostat Tourism-Nights Intelligence. (2026). EU tourism nights spent, annual (Eurostat) [Data set, snapshot 20261009T003049Z-9b8a919bc889, sha256 9b8a919bc889]. Datazimuts. Retrieved 2026-10-09, from https://datazimuts.com/en/datasets/eurostat_tourism_intel/tourism_nights_annual?snapshot=20261009T003049Z-9b8a919bc889
@misc{dz_eurostat_tourism_intel_tourism_nights_an_9b8a919b,
title = {{EU tourism nights spent, annual (Eurostat)}},
author = {{Eurostat Tourism-Nights Intelligence}},
year = {2026},
publisher = {Datazimuts},
howpublished = {\url{https://datazimuts.com/en/datasets/eurostat_tourism_intel/tourism_nights_annual?snapshot=20261009T003049Z-9b8a919bc889}},
note = {Snapshot 20261009T003049Z-9b8a919bc889, sha256 9b8a919bc889aa007da9614daf692a44e45d024e36519a0e8c48f4fd609edf71; accessed 2026-10-09}
}Embed a table or a chart
Paste this into any page. The embed is pinned to the same snapshot, follows the reader's light or dark setting, and always shows the source, license and a link back.
<iframe src="https://datazimuts.com/embed/chart?dataset=eurostat_tourism_intel%2Ftourism_nights_annual&lang=en&theme=auto&snapshot=20261009T003049Z-9b8a919bc889&x=year&y=year&agg=avg" title="EU tourism nights spent, annual (Eurostat)" width="100%" height="380" style="border:0" loading="lazy"></iframe>
Ask about this dataset. Answers come only from its catalog record, measured profile and change history, and list the facts they used.