Labour market transitions - quarterly data - lfsi_long_q

Data - Eurostat

Info

Last observation: Quarterly: 2026Q1 (N = 7,344)

First observation: Quarterly: 2003Q2 (N = 216)

Last data update: 11 aoû 2026, 18:22. Last compile: 12 aoû 2026, 00:55

Structure

Unemployment to Employment Transition Rate

France, Spain, Italy, Poland, Portugal

Code
lfsi_long_q |>
  filter(geo %in% c("FR", "ES", "IT", "PL", "PT"),
         sex == "T",
         s_adj == "SA",
         unit == "PC_UNE",
         indic_em == "U_E") |>
  quarter_to_date() |>
  mutate(values = values/100) |>
  left_join(colors, by = c("Geo" = "country")) |>
  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(2000, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  xlab("") + ylab("Unemployed moving into employment (% of unemployed)") +
  scale_y_continuous(labels = scales::percent_format(accuracy = 1))

Latest Quarter: Labour Market Fluidity

France

Code
latest_q_fr <- lfsi_long_q |>
  filter(geo == "FR",
         sex == "T",
         s_adj == "SA",
         unit != "THS_PER",
         !is.na(values)) |>
  summarise(m = max(time)) |>
  pull(m)

lfsi_long_q |>
  filter(geo == "FR",
         sex == "T",
         s_adj == "SA",
         unit != "THS_PER",
         time == latest_q_fr) |>
  mutate(values = values/100) |>
  select(indic_em, Indic_em, values) |>
  arrange(-values) |>
  print_table_conditional()
indic_em Indic_em values
E_E Transition employment - employment 0.958
I_I Transition outside the labour force - outside the labour force 0.926
U_U Transition unemployment - unemployment 0.533
U_E Transition unemployment - employment 0.269
U_I Transition unemployment - outside the labour force 0.198
I_E Transition outside the labour force - employment 0.037
I_U Transition outside the labour force - unemployment 0.037
E_I Transition employment - outside the labour force 0.022
E_U Transition employment - unemployment 0.020
I_E Transition outside the labour force - employment NA
I_I Transition outside the labour force - outside the labour force NA
I_U Transition outside the labour force - unemployment NA
U_E Transition unemployment - employment NA
U_I Transition unemployment - outside the labour force NA
U_U Transition unemployment - unemployment NA
E_E Transition employment - employment NA
E_I Transition employment - outside the labour force NA
E_U Transition employment - unemployment NA
U_E Transition unemployment - employment NA
U_I Transition unemployment - outside the labour force NA
U_U Transition unemployment - unemployment NA
E_E Transition employment - employment NA
E_I Transition employment - outside the labour force NA
E_U Transition employment - unemployment NA
I_E Transition outside the labour force - employment NA
I_I Transition outside the labour force - outside the labour force NA
I_U Transition outside the labour force - unemployment NA

France

Table

Code
lfsi_long_q |>
  filter(geo == "FR",
         sex == "T",
         s_adj == "SA",
         unit == "THS_PER",
         time %in% c("2015Q2", "2021Q2", "2019Q2", "2017Q2")) |>
  filter(!is.na(values)) |>
  
  select(indic_em, Indic_em, time, values) |>
  spread(time, values) |>
  print_table_conditional()
indic_em Indic_em 2015Q2 2017Q2 2019Q2 2021Q2
E_E Transition employment - employment 25265 25565 26004 26288
E_I Transition employment - outside the labour force 554 553 601 644
E_U Transition employment - unemployment 524 447 434 441
I_E Transition outside the labour force - employment 448 617 499 705
I_I Transition outside the labour force - outside the labour force 16609 16882 17132 16835
I_U Transition outside the labour force - unemployment 672 723 628 706
U_E Transition unemployment - employment 643 638 599 630
U_I Transition unemployment - outside the labour force 545 562 567 581
U_U Transition unemployment - unemployment 1867 1640 1411 1233

EE, II

Code
lfsi_long_q |>
  filter(geo == "FR",
         sex == "T",
         s_adj == "SA",
         unit != "THS_PER",
         indic_em %in% c("E_E", "I_I")) |>
  filter(!is.na(values)) |>
  
  select(indic_em, Indic_em, time, values) |>
  quarter_to_date() |>
  ggplot() + theme_minimal() + xlab("") + ylab("") +
  geom_line(aes(x = date, y = values/100, color = Indic_em)) +
  scale_color_manual(values = viridis(3)[1:2]) +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 1), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.3, 0.85),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(0, 100, 1),
                     labels = scales::percent_format(acc = 1))

Italy

EE, II

Code
lfsi_long_q |>
  filter(geo == "IT",
         sex == "T",
         s_adj == "SA",
         unit != "THS_PER",
         indic_em %in% c("E_E", "I_I")) |>
  filter(!is.na(values)) |>
  
  select(indic_em, Indic_em, time, values) |>
  quarter_to_date() |>
  ggplot() + theme_minimal() + xlab("") + ylab("") +
  geom_line(aes(x = date, y = values/100, color = Indic_em)) +
  scale_color_manual(values = viridis(3)[1:2]) +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 1), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.3, 0.85),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(0, 100, 1),
                     labels = scales::percent_format(acc = 1))