Unemployment rates by sex, age and educational attainment level (%) - lfsq_urgaed
Data - Eurostat
Info
Last observation: Quarterly: 2026Q1 (N = 19,157)
First observation: Quarterly: 1998Q1 (N = 3,014)
Last data update: 23 jul 2026, 22:26. Last compile: 24 jul 2026, 02:23
Structure
isced11
Code
load_data("eurostat/isced11_fr.RData")
lfsq_urgaed %>%
group_by(isced11, Isced11) %>%
summarise(Nobs = n()) %>%
arrange(-Nobs) %>%
print_table_conditional()| isced11 | Isced11 | Nobs |
|---|---|---|
| TOTAL | All ISCED 2011 levels | 321639 |
| ED0-2 | Less than primary, primary and lower secondary education (levels 0-2) | 320160 |
| ED3_4 | Upper secondary and post-secondary non-tertiary education (levels 3 and 4) | 320148 |
| ED5-8 | Tertiary education (levels 5-8) | 313742 |
| NRP | No response | 112129 |
| ED35_45 | Upper secondary and post-secondary non-tertiary education - vocational (levels 35 and 45) | 80577 |
| ED34_44 | Upper secondary and post-secondary non-tertiary education - general (levels 34 and 44) | 79657 |
| NAP | Not applicable | 144 |
France, EU, Italy, Germany, Spain, Netherlands
15-74, peu d’éducation
Code
lfsq_urgaed %>%
filter(isced11 == "ED0-2",
age == "Y15-74",
geo %in% c("EA19", "DE", "ES", "FR", "IT"),
sex == "T") %>%
quarter_to_date() %>%
filter(date >= as.Date("1995-01-01")) %>%
mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) %>%
mutate(Geo = ifelse(geo == "EA19", "Europe", Geo)) %>%
left_join(colors, by = c("Geo" = "country")) %>%
mutate(color = ifelse(geo == "EA19", color2, color)) %>%
mutate(color = ifelse(geo == "ES", color2, color)) %>%
mutate(values = values / 100) %>%
ggplot(.) + geom_line(aes(x = date, y = values, color = color)) +
theme_minimal() + xlab("") + ylab("Taux d'emploi (1er cycle de l'enseignement secondaire)") +
scale_color_identity() + add_5flags +
scale_x_date(breaks = seq(1960, 2100, 5) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-500, 200, 2),
labels = percent_format(accuracy = 1))
Education moyenne
Code
lfsq_urgaed %>%
filter(isced11 == "ED3_4",
age == "Y15-74",
geo %in% c("EA19", "DE", "ES", "FR", "IT"),
sex == "T") %>%
quarter_to_date() %>%
filter(date >= as.Date("1995-01-01")) %>%
mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) %>%
mutate(Geo = ifelse(geo == "EA19", "Europe", Geo)) %>%
left_join(colors, by = c("Geo" = "country")) %>%
mutate(color = ifelse(geo == "EA19", color2, color)) %>%
mutate(color = ifelse(geo == "ES", color2, color)) %>%
mutate(values = values / 100) %>%
ggplot(.) + geom_line(aes(x = date, y = values, color = color)) +
theme_minimal() + xlab("") + ylab("Taux d'emploi") +
scale_color_identity() + add_5flags +
scale_x_date(breaks = seq(1960, 2100, 5) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-500, 200, 2),
labels = percent_format(accuracy = 1))
Enseignement supérieur
Code
lfsq_urgaed %>%
filter(isced11 == "ED5-8",
age == "Y15-74",
geo %in% c("EA19", "DE", "ES", "FR", "IT"),
sex == "T") %>%
quarter_to_date() %>%
filter(date >= as.Date("1995-01-01")) %>%
mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) %>%
mutate(Geo = ifelse(geo == "EA19", "Europe", Geo)) %>%
left_join(colors, by = c("Geo" = "country")) %>%
mutate(color = ifelse(geo == "EA19", color2, color)) %>%
mutate(color = ifelse(geo == "ES", color2, color)) %>%
mutate(values = values / 100) %>%
ggplot(.) + geom_line(aes(x = date, y = values, color = color)) +
theme_minimal() + xlab("") + ylab("Taux d'emploi") +
scale_color_identity() + add_5flags +
scale_x_date(breaks = seq(1960, 2100, 5) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-500, 200, 2),
labels = percent_format(accuracy = 1))
TOTAL
Code
lfsq_urgaed %>%
filter(isced11 == "TOTAL",
age == "Y15-74",
geo %in% c("ES", "DE", "FR", "IT", "EA19"),
sex == "T") %>%
quarter_to_date() %>%
filter(date >= as.Date("1995-01-01")) %>%
mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) %>%
mutate(Geo = ifelse(geo == "EA19", "Europe", Geo)) %>%
left_join(colors, by = c("Geo" = "country")) %>%
mutate(color = ifelse(geo == "EA19", color2, color)) %>%
mutate(color = ifelse(geo == "ES", color2, color)) %>%
mutate(values = values / 100) %>%
ggplot(.) + geom_line(aes(x = date, y = values, color = color)) +
theme_minimal() + xlab("") + ylab("Taux d'emploi") +
scale_color_identity() + add_5flags +
scale_x_date(breaks = seq(1960, 2100, 5) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-500, 200, 2),
labels = percent_format(accuracy = 1))
EU: Employment Rates - All
All
Code
lfsq_urgaed %>%
filter(geo %in% c("EU15", "EU28", "EU27_2020"),
age == "Y15-64",
isced11 == "TOTAL",
sex == "T",
unit == "PC") %>%
quarter_to_date %>%
ggplot + geom_line() + theme_minimal() +
aes(x = date, y = values/100, color = Geo, linetype = Geo) +
scale_color_manual(values = viridis(4)[1:3]) +
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("Employment Rates") +
scale_y_continuous(breaks = 0.01*seq(0, 200, 1),
labels = scales::percent_format(accuracy = 1))
Female
Code
lfsq_urgaed %>%
filter(geo %in% c("EU15", "EU28", "EU27_2020"),
age == "Y15-64",
isced11 == "TOTAL",
sex == "F",
unit == "PC") %>%
quarter_to_date %>%
ggplot + geom_line() + theme_minimal() +
aes(x = date, y = values/100, color = Geo, linetype = Geo) +
scale_color_manual(values = viridis(4)[1:3]) +
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("Employment Rates (Female)") +
scale_y_continuous(breaks = 0.01*seq(0, 200, 1),
labels = scales::percent_format(accuracy = 1))
Male
Code
lfsq_urgaed %>%
filter(geo %in% c("EU15", "EU28", "EU27_2020"),
age == "Y15-64",
isced11 == "TOTAL",
sex == "M",
unit == "PC") %>%
quarter_to_date %>%
ggplot + geom_line() + theme_minimal() +
aes(x = date, y = values/100, color = Geo, linetype = Geo) +
scale_color_manual(values = viridis(4)[1:3]) +
scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 2), "-01-01")),
labels = date_format("%Y")) +
theme(legend.position = c(0.22, 0.85),
legend.title = element_blank()) +
xlab("") + ylab("Employment Rates (Male)") +
scale_y_continuous(breaks = 0.01*seq(0, 200, 1),
labels = scales::percent_format(accuracy = 1))