How do I bring official European figures into the project? (opening data from Eurostat)
In brief
How do I bring official European figures into the project? The start page has "Open Eurostat data". Statable fetches a dataset from Eurostat, the statistical office of the European Union, and opens it as a table. No request goes out before; it happens only on a click.
How it works in Statable
- Enter the dataset code, for example une_rt_m (unemployment rate, monthly).
- Enter filters, one line per filter: name = value, value (for example geo = AT, DE).
- Enter the period from and to, for example 2020-01 and 2024-12.
- "Load from Eurostat", look at the preview, then "Open as data".
What goes onto the network
- When you click "Load from Eurostat", a request goes to the European Commission. Its server sees the IP address and the query (dataset code, filters, time range).
- Nothing else goes there. No data from Statable is sent. There are no cookies.
- Only the one fixed address of Eurostat is queried. There is no freely typed address.
- In the version without a network (offline) this choice is not offered.
All details
- Enter the dataset code, for example une_rt_m (unemployment rate, monthly). The code is given in the Eurostat database. Letters, digits and underscores are allowed, at most 40 characters.
- Enter filters, one line per filter, in the form name = value, value (for example geo = AT, DE). Without filters the answer is often too large.
- Enter the time range from and until, for example 2020-01 and 2024-12. 2020 or 2020-Q1 are also allowed.
- If you like, also load the labels as additional columns (for example "Austria" next to "AT").
- "Load from Eurostat", look at the preview and then "Open as data". Loading can be cancelled; after 60 seconds without an answer it ends by itself.
What the table looks like
The data come in long form: one row per combination, one column per dimension (with the code), plus the columns "wert" and "status". With the labels, each dimension gets an additional column ending in _text. A dimension with only one category stays as a column.
Missing values and status
- A missing value stays empty. It never becomes 0 and is never filled in. An existing value 0 stays 0.
- The column "status" carries the flags of Eurostat, for example ":" (not available), "c" (confidential) and "p" (provisional). Values flagged "c" or ":" without a number stay empty.
- After loading, Statable says how many rows have no value and how many have a provisional value.
The time column
Months and years are read as a date: a month is shown as the 1st of the month, a year as 1 January; the value applies to the whole period. Quarters (2024-Q1), half-years (2024-S1) and weeks (2024-W05) are not read as a date by Statable; the column stays text. The time series analysis, however, needs a date. In that case choose monthly or yearly data at Eurostat, or build a date column with "Date and time".
Source and licence
The source reference belongs to the data: source Eurostat, the dataset, the date of the request, the data date according to Eurostat and the exact query address. It appears in the log and in the report. Eurostat data may be reused with a source reference; the rules of the European Commission apply.
Trap: Eurostat changes data afterwards
Eurostat can change data afterwards. The date of the request belongs to the result. Anyone who loads again later may get different numbers.
Requirements and limits
- The answer may have at most 20 MB and 1 million rows. Otherwise Statable says so; then choose more filters or a shorter time range.
- Errors (no connection, timeout, unknown dataset, Eurostat overloaded) are reported by Statable in one sentence. Nothing is taken over that cannot be read.
- Texts from the answer count as data and are never run as a command.
Typical examples
- The monthly unemployment rate (une_rt_m) for Austria and Germany since 2020.
- Load a yearly series by country and show it with "Map" as a rate per area.
For specialists
The Statistics API 1.0 of Eurostat is queried in the format JSON-stat 2.0 (format=JSON; lang=DE, EN or FR according to the language of the app, otherwise EN; time range with sinceTimePeriod and untilTimePeriod). The id and size are read; the last dimension runs fastest, and the position is in category.index, not in the order of the keys. value and status are sparse.