Unemployment rates by sex, age and NUTS 2 regions (%) - lfst_r_lfu3rt

Data - Eurostat

Info

Last observation: Annual: 2025 (N = 58,470)

First observation: Annual: 1999 (N = 53,968)

Last data update: 23 jul 2026, 22:15. Last compile: 24 jul 2026, 02:29

Structure

Unemployment Rate

Code
lfst_r_lfu3rt %>%
  filter(time == "2015", 
         nchar(geo) == 4,
         sex == "T",
         age == "Y20-64") %>%
  
  select(geo, Geo, unemployment = values) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

Unemployment - NUTS2

Code
lfst_r_lfu3rt %>%
  filter(time == "2015", 
         nchar(geo) == 4,
         sex == "T",
         age == "Y20-64") %>%
  right_join(europe_NUTS2, by = "geo") %>%
  filter(long >= -15, lat >= 33) %>%
  ggplot(., aes(x = long, y = lat, group = group, fill = values/100)) +
  geom_polygon() + coord_map() +
  scale_fill_viridis_c(na.value = "white",
                       labels = scales::percent_format(accuracy = 1),
                       direction = -1,
                       breaks = 0.01*seq(0, 50, 5),
                       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 = "Unemployment (%)")

France, Germany, Italy, Spain, Poland

Unemployment Rate, Age 20-64

Code
lfst_r_lfu3rt %>%
  filter(geo %in% c("FR", "DE", "IT", "ES", "PL"),
         sex == "T",
         age == "Y20-64",
         isced11 == "TOTAL") %>%
  year_to_date %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  mutate(values = values/100) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  theme_minimal() + scale_color_identity() + add_5flags +
  scale_x_date(breaks = as.Date(paste0(seq(1999, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  xlab("") + ylab("Unemployment rate, age 20-64") +
  scale_y_continuous(labels = scales::percent_format(accuracy = 1))

By Education Level

France

Code
lfst_r_lfu3rt %>%
  filter(geo == "FR",
         sex == "T",
         age == "Y25-34",
         isced11 %in% c("ED0-2", "ED3_4", "ED5-8")) %>%
  year_to_date %>%
  mutate(values = values/100) %>%
  ggplot + geom_line(aes(x = date, y = values, color = Isced11)) +
  theme_minimal() +
  theme(legend.position = c(0.7, 0.75),
        legend.title = element_blank()) +
  scale_x_date(breaks = as.Date(paste0(seq(1999, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  xlab("") + ylab("Unemployment rate, age 25-34") +
  scale_y_continuous(labels = scales::percent_format(accuracy = 1))

Latest Year by Country

Code
latest_y <- lfst_r_lfu3rt %>%
  filter(nchar(geo) == 2, sex == "T", age == "Y20-64", isced11 == "TOTAL", !is.na(values)) %>%
  summarise(m = max(time)) %>%
  pull(m)

lfst_r_lfu3rt %>%
  filter(geo %in% c("FR", "DE", "IT", "ES", "PL", "NL", "PT", "SE"),
         sex %in% c("T", "F", "M"),
         age == "Y20-64",
         isced11 == "TOTAL",
         time == latest_y) %>%
  select(Geo, Sex, values) %>%
  spread(Sex, values) %>%
  print_table_conditional()
Geo Females Males Total
France 7.2 7.3 7.2
Germany 3.4 4.1 3.8
Italy 6.8 5.6 6.1
Netherlands 3.5 3.2 3.3
Poland 3.3 2.8 3.0
Portugal 6.4 5.4 5.9
Spain 11.7 9.0 10.3
Sweden 7.4 7.7 7.6