Disposable income of private households by NUTS 2 regions

Data - Eurostat

Info

Last observation: Annual: 2024 (N = 64)

First observation: Annual: 2013 (N = 257)

Last data update: 11 aoû 2026, 22:42. Last compile: 12 aoû 2026, 03:54

Structure

Ile de France, Rhône-Alpes, Provence-Alpes-Côte d’Azur

Code
tgs00026 |>
  filter(geo %in% c("FR10", "FRK2", "FRL0")) |>
  year_to_date() |>
  mutate(values = values/1000) |>
  left_join(colors, by = c("Geo" = "country")) |>
  ggplot() + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + add_flags +
  theme_minimal() +
  scale_x_date(breaks = as.Date(paste0(seq(2013, 2100, 1), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.3, 0.85),
        legend.title = element_blank()) +
  xlab("") + ylab("Disposable income, net (Bn PPS)")

Top 15 NUTS 2 Regions

Code
latest_y <- tgs00026 |>
  filter(nchar(geo) == 4, !is.na(values)) |>
  summarise(m = max(time)) |>
  pull(m)

tgs00026 |>
  filter(time == latest_y,
         nchar(geo) == 4,
         !grepl("ZZ$", geo)) |>
  mutate(values = values/1000) |>
  select(geo, Geo, values) |>
  arrange(-values) |>
  slice(1:15) |>
  print_table_conditional()
geo Geo values
ITC4 Lombardia 275.17923
ITI4 Lazio 134.29130
ITH3 Veneto 117.63957
ITH5 Emilia-Romagna 116.89688
ITC1 Piemonte 107.04846
ITF3 Campania 93.21691
ITI1 Toscana 86.96208
ITG1 Sicilia 83.08919
ITF4 Puglia 68.92832
AT13 Wien 50.96023
BE21 Prov. Antwerpen 49.09264
AT12 Niederösterreich 48.86705
AT31 Oberösterreich 42.31547
BE23 Prov. Oost-Vlaanderen 41.69548
DK01 Hovedstaden 41.51869

Disposable household income

2015

Code
tgs00026 |> 
  filter(time == 2015, 
         nchar(geo) == 4) |> 
  right_join(europe_NUTS2, by = "geo") |>
  filter(long >= -15, lat >= 33) |>
  ggplot(aes(x = long, y = lat, group = group, fill = values/1000)) +
  geom_polygon() + coord_map() +
  scale_fill_viridis_c(na.value = "white",
                       labels = scales::dollar_format(accuracy = 1, prefix = "", suffix = " k€"),
                       breaks = c(seq(0, 300, 50)),
                       values = c(0, 0.1, 0.2, 0.3, 0.4, 0.5, 1)) +
  theme_void() + theme(legend.position = c(0.25, 0.85)) + 
  labs(fill = "Disposable Income")

2019

Code
tgs00026 |> 
  filter(time == 2019, 
         nchar(geo) == 4) |> 
  right_join(europe_NUTS2, by = "geo") |>
  filter(long >= -15, lat >= 33) |>
  ggplot(aes(x = long, y = lat, group = group, fill = values/1000)) +
  geom_polygon() + coord_map() +
  scale_fill_viridis_c(na.value = "white",
                       labels = scales::dollar_format(accuracy = 1, prefix = "", suffix = " k€"),
                       breaks = c(seq(0, 300, 50)),
                       values = c(0, 0.1, 0.2, 0.3, 0.4, 0.5, 1)) +
  theme_void() + theme(legend.position = c(0.25, 0.85)) + 
  labs(fill = "Disposable Income")