Employment rates by sex, age and educational attainment level (%) - lfsq_ergaed
Data - Eurostat
Info
Last observation: Quarterly: 2026Q1 (N = 19,804)
First observation: Quarterly: 1998Q1 (N = 3,114)
Last data update: 14 aoû 2026, 21:34. Last compile: 15 aoû 2026, 01:12
Structure
isced11
Code
isced11 <- read_parquet("isced11_fr.parquet")
lfsq_ergaed |>
group_by(isced11, Isced11) |>
summarise(Nobs = n()) |>
arrange(-Nobs) |>
print_table_conditional()| isced11 | Isced11 | Nobs |
|---|---|---|
| TOTAL | All ISCED 2011 levels | 332730 |
| ED0-2 | Less than primary, primary and lower secondary education (levels 0-2) | 331190 |
| ED3_4 | Upper secondary and post-secondary non-tertiary education (levels 3 and 4) | 331174 |
| ED5-8 | Tertiary education (levels 5-8) | 324764 |
| NRP | No response | 115086 |
| ED35_45 | Upper secondary and post-secondary non-tertiary education - vocational (levels 35 and 45) | 82842 |
| ED34_44 | Upper secondary and post-secondary non-tertiary education - general (levels 34 and 44) | 81890 |
| NAP | Not applicable | 132 |
France, EU, Italy, Germany, Spain, Netherlands
Peu d’éducation
Y15-39
Code
lfsq_ergaed |>
filter(isced11 == "ED0-2",
age == "Y15-39",
geo %in% c("EA20", "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 == "EA20", "Europe", Geo)) |>
left_join(colors, by = c("Geo" = "country")) |>
mutate(color = ifelse(geo == "EA20", 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_flags +
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))
Y40-64
Code
lfsq_ergaed |>
filter(isced11 == "ED0-2",
age == "Y40-64",
geo %in% c("EA20", "DE", "ES", "FR", "IT"),
sex == "T") |>
quarter_to_date() |>
filter(date >= as.Date("2005-01-01")) |>
mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) |>
mutate(Geo = ifelse(geo == "EA20", "Europe", Geo)) |>
left_join(colors, by = c("Geo" = "country")) |>
mutate(color = ifelse(geo == "EA20", 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 40-64 (1er cycle du secondaire)") +
scale_color_identity() + add_flags +
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))
Males
Code
lfsq_ergaed |>
filter(isced11 == "ED0-2",
age == "Y40-64",
geo %in% c("EA20", "DE", "ES", "FR", "IT"),
sex == "M") |>
quarter_to_date() |>
filter(date >= as.Date("2005-01-01")) |>
mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) |>
mutate(Geo = ifelse(geo == "EA20", "Europe", Geo)) |>
left_join(colors, by = c("Geo" = "country")) |>
mutate(color = ifelse(geo == "EA20", 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 M 40-64 (1er cycle du secondaire)") +
scale_color_identity() + add_flags +
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))
Females
Code
lfsq_ergaed |>
filter(isced11 == "ED0-2",
age == "Y40-64",
geo %in% c("EA20", "DE", "ES", "FR", "IT"),
sex == "F") |>
quarter_to_date() |>
filter(date >= as.Date("2005-01-01")) |>
mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) |>
mutate(Geo = ifelse(geo == "EA20", "Europe", Geo)) |>
left_join(colors, by = c("Geo" = "country")) |>
mutate(color = ifelse(geo == "EA20", 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 F 40-64 (1er cycle du secondaire)") +
scale_color_identity() + add_flags +
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))
Y15-64
Tous
1995-
Code
lfsq_ergaed |>
filter(isced11 == "ED0-2",
age == "Y15-64",
geo %in% c("EA20", "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 == "EA20", "Europe", Geo)) |>
left_join(colors, by = c("Geo" = "country")) |>
mutate(color = ifelse(geo == "EA20", 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_flags +
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))
2005-
Code
lfsq_ergaed |>
filter(isced11 == "ED0-2",
age == "Y15-64",
geo %in% c("EA20", "DE", "ES", "FR", "IT"),
sex == "T") |>
quarter_to_date() |>
filter(date >= as.Date("2005-01-01")) |>
mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) |>
mutate(Geo = ifelse(geo == "EA20", "Europe", Geo)) |>
left_join(colors, by = c("Geo" = "country")) |>
mutate(color = ifelse(geo == "EA20", 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 du secondaire)") +
scale_color_identity() + add_flags +
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))
Femmes
Code
lfsq_ergaed |>
filter(isced11 == "ED0-2",
age == "Y15-64",
geo %in% c("EA20", "DE", "ES", "FR", "IT"),
sex == "F") |>
quarter_to_date() |>
filter(date >= as.Date("1995-01-01")) |>
mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) |>
mutate(Geo = ifelse(geo == "EA20", "Europe", Geo)) |>
left_join(colors, by = c("Geo" = "country")) |>
mutate(color = ifelse(geo == "EA20", 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_flags +
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))
Hommes
Code
lfsq_ergaed |>
filter(isced11 == "ED0-2",
age == "Y15-64",
geo %in% c("EA20", "DE", "ES", "FR", "IT"),
sex == "M") |>
quarter_to_date() |>
filter(date >= as.Date("1995-01-01")) |>
mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) |>
mutate(Geo = ifelse(geo == "EA20", "Europe", Geo)) |>
left_join(colors, by = c("Geo" = "country")) |>
mutate(color = ifelse(geo == "EA20", 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_flags +
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))
Y15-74
Code
lfsq_ergaed |>
filter(isced11 == "ED0-2",
age == "Y15-74",
geo %in% c("EA20", "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 == "EA20", "Europe", Geo)) |>
left_join(colors, by = c("Geo" = "country")) |>
mutate(color = ifelse(geo == "EA20", 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_flags +
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_ergaed |>
filter(isced11 == "ED3_4",
age == "Y15-74",
geo %in% c("EA20", "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 == "EA20", "Europe", Geo)) |>
left_join(colors, by = c("Geo" = "country")) |>
mutate(color = ifelse(geo == "EA20", 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_flags +
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_ergaed |>
filter(isced11 == "ED5-8",
age == "Y15-74",
geo %in% c("EA20", "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 == "EA20", "Europe", Geo)) |>
left_join(colors, by = c("Geo" = "country")) |>
mutate(color = ifelse(geo == "EA20", 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_flags +
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_ergaed |>
filter(isced11 == "TOTAL",
age == "Y15-74",
geo %in% c("ES", "DE", "FR", "IT", "EA20"),
sex == "T") |>
quarter_to_date() |>
filter(date >= as.Date("1995-01-01")) |>
mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) |>
mutate(Geo = ifelse(geo == "EA20", "Europe", Geo)) |>
left_join(colors, by = c("Geo" = "country")) |>
mutate(color = ifelse(geo == "EA20", 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_flags +
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_ergaed |>
filter(geo %in% c("EU15", "EU28", "EU27_2020"),
age == "Y15-64",
isced11 == "TOTAL",
sex == "T",
unit == "PC") |>
quarter_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("Employment Rates") +
scale_y_continuous(breaks = 0.01*seq(0, 200, 1),
labels = scales::percent_format(accuracy = 1))
Female
Code
lfsq_ergaed |>
filter(geo %in% c("EU15", "EU28", "EU27_2020"),
age == "Y15-64",
isced11 == "TOTAL",
sex == "F",
unit == "PC") |>
quarter_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("Employment Rates (Female)") +
scale_y_continuous(breaks = 0.01*seq(0, 200, 1),
labels = scales::percent_format(accuracy = 1))
Male
Code
lfsq_ergaed |>
filter(geo %in% c("EU15", "EU28", "EU27_2020"),
age == "Y15-64",
isced11 == "TOTAL",
sex == "M",
unit == "PC") |>
quarter_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.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))