Harmonised unemployment rates (%) - monthly data - ei_lmhr_m

Data - Eurostat

Info

Last observation: Monthly: 2026M06 (N = 587)

First observation: Monthly: 1983M01 (N = 175)

Last data update: 11 aoû 2026, 19:47. Last compile: 11 aoû 2026, 23:43

Structure

Youth Unemployment: France, Spain, Greece

Code
ei_lmhr_m |>
  filter(geo %in% c("FR", "ES", "EL"),
         unit == "PC_ACT",
         s_adj == "SA",
         indic == "LM-UN-T-LE25") |>
  month_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_flags +
  scale_x_date(breaks = as.Date(paste0(seq(1980, 2100, 5), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.2, 0.85),
        legend.title = element_blank()) +
  xlab("") + ylab("Youth unemployment (under 25), % of active population") +
  scale_y_continuous(breaks = 0.01*seq(0, 200, 10),
                     labels = scales::percent_format(accuracy = 1))

Male vs. Female Unemployment: France

Code
ei_lmhr_m |>
  filter(geo == "FR",
         unit == "PC_ACT",
         s_adj == "SA",
         indic %in% c("LM-UN-M-TOT", "LM-UN-F-TOT")) |>
  month_to_date() |>

  mutate(values = values/100) |>
  ggplot() + geom_line(aes(x = date, y = values, color = Indic)) +
  theme_minimal() +
  scale_x_date(breaks = as.Date(paste0(seq(1980, 2100, 5), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.3, 0.85),
        legend.title = element_blank()) +
  xlab("") + ylab("Unemployment, Percentage of active population") +
  scale_y_continuous(breaks = 0.01*seq(0, 200, 2),
                     labels = scales::percent_format(accuracy = 1))

Latest Month: Total Unemployment Rate by Country

Code
latest_m <- ei_lmhr_m |>
  filter(unit == "PC_ACT",
         s_adj == "SA",
         indic == "LM-UN-T-TOT",
         geo == "EU27_2020",
         !is.na(values)) |>
  summarise(m = max(time)) |>
  pull(m)

ei_lmhr_m |>
  filter(unit == "PC_ACT",
         s_adj == "SA",
         indic == "LM-UN-T-TOT",
         geo %in% c("EU27_2020", "EA21", "FR", "DE", "ES", "IT", "EL", "PT", "US", "JP"),
         time == latest_m) |>
  mutate(values = round(values, 1)) |>
  select(Geo, values) |>
  arrange(-values) |>
  print_table_conditional()
Geo values
Spain 10.1
France 8.2
Greece 8.0
Euro area – 21 countries (from 2026) 6.3
European Union - 27 countries (from 2020) 6.0
Italy 5.7
Portugal 5.6
United States 4.2
Germany 3.9
Japan 2.5

France, Germany, Portugal

Code
ei_lmhr_m |>
  filter(geo %in% c("FR", "DE", "PT"),
         unit == "PC_ACT",
         s_adj == "SA",
         indic == "LM-UN-T-TOT") |>
  month_to_date() |>
  
  mutate(values = values/100) |>
  left_join(colors, by = c("Geo" = "country")) |>
  ggplot() + geom_line() + theme_minimal()  +
  aes(x = date, y = values, color = color) +
  scale_color_identity() + add_flags +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.3, 0.85),
        legend.title = element_blank()) +
  xlab("") + ylab("Unemployment, Percentage of active population") +
  scale_y_continuous(breaks = 0.01*seq(0, 200, 1),
                     labels = scales::percent_format(accuracy = 1))

Euro Area

Code
ei_lmhr_m |>
  filter(geo %in% c("EA19", "EU15", "DE"),
         unit == "PC_ACT",
         s_adj == "SA",
         indic == "LM-UN-T-TOT") |>
  month_to_date() |>
  
  mutate(values = values/100) |>
  left_join(colors, by = c("Geo" = "country")) |>
  ggplot() + geom_line() + theme_minimal()  +
  aes(x = date, y = values, color = color) +
  scale_color_identity() + add_flags +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.3, 0.25),
        legend.title = element_blank()) +
  xlab("") + ylab("Percentage of active population") +
  scale_y_continuous(breaks = 0.01*seq(0, 200, 1),
                     labels = scales::percent_format(accuracy = 1))