Chômage, taux de chômage par sexe et âge (sens BIT) (1975-)

Data - Insee

Info

source dataset .html .RData
insee CHOMAGE-TRIM-NATIONAL 2025-05-24 2025-05-24

Données sur l’emploi

source dataset .html .RData
insee CHOMAGE-TRIM-NATIONAL 2025-05-24 2025-05-24
insee CNA-2014-EMPLOI 2024-06-07 2025-05-24
insee DEMANDES-EMPLOIS-NATIONALES 2025-05-24 2025-05-24
insee EMPLOI-BIT-TRIM 2024-06-07 2025-05-24
insee EMPLOI-SALARIE-TRIM-NATIONAL 2025-05-24 2025-05-24
insee TAUX-CHOMAGE 2025-05-18 2025-05-24
insee TCRED-EMPLOI-SALARIE-TRIM 2025-05-18 2025-05-24

Data on employment

source dataset .html .RData
bls jt 2024-11-12 NA
bls la 2024-11-12 NA
bls ln 2024-11-12 NA
eurostat nama_10_a10_e 2025-05-18 2025-05-18
eurostat nama_10_a64_e 2025-05-24 2025-05-24
eurostat namq_10_a10_e 2025-05-24 2025-05-24
eurostat une_rt_m 2025-05-18 2025-05-18
oecd ALFS_EMP 2024-04-16 2025-05-24
oecd EPL_T 2024-11-12 2023-12-10
oecd LFS_SEXAGE_I_R 2024-09-15 2024-04-15
oecd STLABOUR 2025-01-17 2025-01-17

LAST_UPDATE

Code
`CHOMAGE-TRIM-NATIONAL` %>%
  group_by(LAST_UPDATE) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional()
LAST_UPDATE Nobs
2025-05-16 13288
2019-08-14 5634

INDICATEUR

Code
`CHOMAGE-TRIM-NATIONAL` %>%
  left_join(INDICATEUR,  by = "INDICATEUR") %>%
  group_by(INDICATEUR, Indicateur) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional()
INDICATEUR Indicateur Nobs
CTTXC Taux de chômage 4824
CTCHC Nombre de chômeurs 4548
HALO Personnes dans le halo autour du chômage 3858
CTTC15 Part de chômeurs dans la population 15 ans et plus 2945
TXCHLODU Taux de chômage de longue durée 1860
CHLODU Nombre de chômeurs de longue durée 155
HALO_1 Personnes dans le halo autour du chômage : inactifs faisant des démarches actives de recherche d'emploi mais non disponibles 155
HALO_2 Personnes dans le halo autour du chômage : inactifs disponibles mais ne faisant pas de démarche active de recherche d'emploi 155
HALO_3 Personnes dans le halo autour du chômage : inactifs souhaitant travailler mais non disponibles et ne faisant pas de démarche active de recherche d'emploi 155
PCONTR1 Part des chômeurs parmi les participants au marché du travail de 15 à 64 ans 89
PCONTR2 Part des personnes au chômage ou dans le halo parmi les participants au marché du travail de 15 à 64 ans 89
PCONTR3 Part des personnes contraintes sur leur offre de travail parmi les participants au marché du travail de 15 à 64 ans 89

TIME_PERIOD

Code
`CHOMAGE-TRIM-NATIONAL` %>%
  group_by(TIME_PERIOD) %>%
  summarise(Nobs = n()) %>%
  arrange(desc(TIME_PERIOD)) %>%
  print_table_conditional()

AGE

Code
`CHOMAGE-TRIM-NATIONAL` %>%
  left_join(AGE,  by = "AGE") %>%
  group_by(AGE, Age) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional()
AGE Age Nobs
25-49 De 25 à 49 ans 4005
00- Ensemble 3428
50- 50 ans et plus 3428
00-24 Moins de 25 ans 2808
15-64 De 15 à 64 ans 1464
15-24 De 15 à 24 ans 1197
50-64 De 50 à 64 ans 1197
15- 15 ans et plus 465
55-64 De 55 à 64 ans 465
SO Sans objet 465

NATURE

Code
`CHOMAGE-TRIM-NATIONAL` %>%
  left_join(NATURE,  by = "NATURE") %>%
  group_by(NATURE, Nature) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional()
NATURE Nature Nobs
VALEUR_ABSOLUE Valeur absolue 7958
TAUX Taux 6684
PROPORTION Proportion 4280

SEXE

Code
`CHOMAGE-TRIM-NATIONAL` %>%
  left_join(SEXE,  by = "SEXE") %>%
  group_by(SEXE, Sexe) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional()
SEXE Sexe Nobs
0 Ensemble 7002
1 Hommes 5960
2 Femmes 5960

UNIT_MULT

Code
`CHOMAGE-TRIM-NATIONAL` %>%
  group_by(UNIT_MULT) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  {if (is_html_output()) print_table(.) else .}
UNIT_MULT Nobs
0 10964
3 7958

REF_AREA

Code
`CHOMAGE-TRIM-NATIONAL` %>%
  group_by(REF_AREA) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  {if (is_html_output()) print_table(.) else .}
REF_AREA Nobs
FR-D976 10876
FM 8046

Personnes dans le Halo du chômage

Code
`CHOMAGE-TRIM-NATIONAL` %>%
  filter(grepl("halo", TITLE_FR)) %>%
  group_by(IDBANK, TITLE_FR) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

Halo du chomage

Ensemble

Code
`CHOMAGE-TRIM-NATIONAL` %>%
  filter(IDBANK %in% c("010605056", 
                       "010605048",
                       "010605049",
                       "010605050")) %>%
  select(AGE, TITLE_FR, TIME_PERIOD, OBS_VALUE) %>%
  mutate(OBS_VALUE = OBS_VALUE %>% as.numeric,
         TITLE_FR = TITLE_FR %>% gsub("\\(en milliers\\) - France hors Mayotte - Données CVS", "", .),
         TITLE_FR = TITLE_FR %>% gsub("Personnes dans le halo autour du chômage - ", "", .)) %>%
  quarter_to_date %>%
  ggplot() + geom_line(aes(x = date, y = OBS_VALUE, color = TITLE_FR, linetype = TITLE_FR)) +
  
  theme_minimal() +
  scale_x_date(breaks = seq(1920, 2025, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  theme(legend.position = c(0.6, 0.85),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = seq(0, 9000, 500),
                     labels = dollar_format(accuracy = 1, prefix = "", su = " K")) +
  ylab("Halo du Chômage (en milliers)") + xlab("")

Inactifs

Code
`CHOMAGE-TRIM-NATIONAL` %>%
  filter(INDICATEUR %in% c("CHLODU", "HALO_1", "HALO_2", "HALO_3"),
         REF_AREA == "FR-D976") %>%
  quarter_to_date %>%
  left_join(INDICATEUR, by = "INDICATEUR") %>%
  mutate(Indicateur = gsub("Personnes dans le halo autour du chômage : ", "", Indicateur)) %>%
  arrange(date) %>%
  select(date, OBS_VALUE, INDICATEUR, Indicateur) %>%
  ggplot() + ylab("Halo du Chômage (en milliers)") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = OBS_VALUE, color = Indicateur, linetype = Indicateur)) +
  
  scale_x_date(breaks = seq(1920, 2025, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  theme(legend.position = c(0.55, 0.85),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = seq(0, 9000, 200),
                     labels = dollar_format(accuracy = 1, prefix = ""),
                     limits = c(0, 2000))

Nombre de chômeurs

Tous

Code
`CHOMAGE-TRIM-NATIONAL` %>%
  filter(INDICATEUR == "CTCHC",
         AGE == "00-",
         SEXE == "0") %>%
  quarter_to_date %>%
  left_join(REF_AREA, by  = "REF_AREA") %>%
  ggplot() + theme_minimal() + ylab("Nombre de chômeurs") + xlab("") +
  geom_line(aes(x = date, y = OBS_VALUE, color = Ref_area)) +
  scale_x_date(breaks = seq(1920, 2025, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  theme(legend.position = c(0.8, 0.15),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = seq(0, 3000, 500),
                     labels = dollar_format(accuracy = 1, pre = "", su = " K"))

Taux de chômage

Tous

Code
`CHOMAGE-TRIM-NATIONAL` %>%
  filter(INDICATEUR == "CTTXC",
         AGE == "00-",
         SEXE == "0") %>%
  quarter_to_date %>%
  left_join(REF_AREA, by  = "REF_AREA") %>%
  mutate(OBS_VALUE = OBS_VALUE/100) %>%
  ggplot() + theme_minimal() + ylab("Taux de chômage (%)") + xlab("") +
  geom_line(aes(x = date, y = OBS_VALUE, color = Ref_area)) +
  scale_x_date(breaks = seq(1920, 2025, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  theme(legend.position = c(0.8, 0.15),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(0, 20, 1),
                     labels = percent_format(accuracy = 1)) + 
  geom_hline(yintercept = 0.05, linetype = "dashed")

1990-

Code
`CHOMAGE-TRIM-NATIONAL` %>%
  filter(INDICATEUR == "CTTXC",
         AGE == "00-",
         SEXE == "0") %>%
  quarter_to_date %>%
  filter(date >= as.Date("1990-01-01")) %>%
  left_join(REF_AREA, by  = "REF_AREA") %>%
  mutate(OBS_VALUE = OBS_VALUE/100) %>%
  ggplot() + theme_minimal() + ylab("Taux de chômage (%)") + xlab("") +
  geom_line(aes(x = date, y = OBS_VALUE, color = Ref_area)) +
  scale_x_date(breaks = seq(1920, 2025, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  theme(legend.position = c(0.8, 0.15),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(0, 20, 1),
                     labels = percent_format(accuracy = 1))

Genre

Tous

Code
`CHOMAGE-TRIM-NATIONAL` %>%
  filter(INDICATEUR == "CTTXC",
         REF_AREA == "FR-D976",
         AGE == "00-") %>%
  quarter_to_date %>%
  left_join(SEXE, by  = "SEXE") %>%
  ggplot() + theme_minimal() + ylab("Taux de chômage (%)") + xlab("") +
  geom_line(aes(x = date, y = OBS_VALUE/100, color = Sexe, linetype = Sexe)) +
  scale_color_manual(values = c("black", "red", "blue")) +
  scale_x_date(breaks = seq(1920, 2025, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  theme(legend.position = c(0.8, 0.3),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(0, 20, 1),
                     labels = percent_format(accuracy = 1))

2005-

Code
`CHOMAGE-TRIM-NATIONAL` %>%
  filter(INDICATEUR == "CTTXC",
         REF_AREA == "FR-D976",
         AGE == "00-") %>%
  quarter_to_date %>%
  filter(date >= as.Date("2005-01-01")) %>%
  left_join(SEXE, by  = "SEXE") %>%
  ggplot() + theme_minimal() + ylab("Taux de chômage (%)") + xlab("") +
  geom_line(aes(x = date, y = OBS_VALUE/100, color = Sexe, linetype = Sexe)) +
  scale_color_manual(values = c("black", "red", "blue")) +
  scale_x_date(breaks = seq(1920, 2025, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  theme(legend.position = c(0.85, 0.9),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(0, 20, .5),
                     labels = percent_format(accuracy = .1))

2010-

Code
`CHOMAGE-TRIM-NATIONAL` %>%
  filter(INDICATEUR == "CTTXC",
         REF_AREA == "FR-D976",
         AGE == "00-") %>%
  quarter_to_date %>%
  filter(date >= as.Date("2010-01-01")) %>%
  left_join(SEXE, by  = "SEXE") %>%
  ggplot() + theme_minimal() + ylab("Taux de chômage (%)") + xlab("") +
  geom_line(aes(x = date, y = OBS_VALUE/100, color = Sexe, linetype = Sexe)) +
  scale_color_manual(values = c("black", "red", "blue")) +
  scale_x_date(breaks = seq(1920, 2025, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  theme(legend.position = c(0.8, 0.9),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(0, 20, .5),
                     labels = percent_format(accuracy = .1))

Nombre de chômeurs

All

Code
`CHOMAGE-TRIM-NATIONAL` %>%
  filter(INDICATEUR %in% c("CTCHC", "CHLODU"),
         SEXE == "0",
         AGE == "00-24") %>%
  quarter_to_date %>%
  left_join(REF_AREA, by  = "REF_AREA") %>%
  ggplot() + theme_minimal() + ylab("Nombre de chômeurs") + xlab("") +
  geom_line(aes(x = date, y = OBS_VALUE*1000, color = Ref_area)) +
  
  scale_x_date(breaks = seq(1920, 2025, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  theme(legend.position = c(0.8, 0.88),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 1000*seq(100, 1100, 50),
                     labels = dollar_format(pre = ""))

1990-

Code
`CHOMAGE-TRIM-NATIONAL` %>%
  filter(INDICATEUR == "CTCHC",
         SEXE == "0",
         AGE == "00-24") %>%
  quarter_to_date %>%
  filter(date >= as.Date("1990-01-01")) %>%
  left_join(REF_AREA, by  = "REF_AREA") %>%
  ggplot() + theme_minimal() + ylab("Nombre de chômeurs") + xlab("") +
  geom_line(aes(x = date, y = OBS_VALUE*1000, color = Ref_area)) +
  
  scale_x_date(breaks = seq(1920, 2025, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  theme(legend.position = c(0.4, 0.88),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 1000*seq(100, 1100, 50),
                     labels = dollar_format(pre = ""))

Age (Tous)

Tous

Code
`CHOMAGE-TRIM-NATIONAL` %>%
  filter(INDICATEUR == "CTTXC",
         REF_AREA == "FR-D976",
         SEXE == "0") %>%
  quarter_to_date %>%
  left_join(AGE, by  = "AGE") %>%
  ggplot() + theme_minimal() + ylab("Taux de chômage (%)") + xlab("") +
  geom_line(aes(x = date, y = OBS_VALUE/100, color = Age)) +
  scale_x_date(breaks = seq(1920, 2025, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  theme(legend.position = c(0.12, 0.88),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(0, 40, 5),
                     labels = percent_format(accuracy = 1))

2005-

Code
`CHOMAGE-TRIM-NATIONAL` %>%
  filter(INDICATEUR == "CTTXC",
         REF_AREA == "FR-D976",
         SEXE == "0") %>%
  quarter_to_date %>%
  filter(date >= as.Date("2005-01-01")) %>%
  left_join(AGE, by  = "AGE") %>%
  ggplot() + theme_minimal() + ylab("Taux de chômage (%)") + xlab("") +
  geom_line(aes(x = date, y = OBS_VALUE/100, color = Age)) +
  
  scale_x_date(breaks = seq(1920, 2025, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  theme(legend.position = c(0.9, 0.9),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(0, 40, 2),
                     labels = percent_format(accuracy = 1))

2010-

Code
`CHOMAGE-TRIM-NATIONAL` %>%
  filter(INDICATEUR == "CTTXC",
         REF_AREA == "FR-D976",
         SEXE == "0") %>%
  quarter_to_date %>%
  filter(date >= as.Date("2005-01-01")) %>%
  left_join(AGE, by  = "AGE") %>%
  ggplot() + theme_minimal() + ylab("Taux de chômage (%)") + xlab("") +
  geom_line(aes(x = date, y = OBS_VALUE/100, color = Age)) +
  
  scale_x_date(breaks = seq(1920, 2025, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  theme(legend.position = c(0.9, 0.9),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(0, 40, 2),
                     labels = percent_format(accuracy = 1))

2017-

Code
`CHOMAGE-TRIM-NATIONAL` %>%
  filter(INDICATEUR == "CTTXC",
         REF_AREA == "FR-D976",
         SEXE == "0") %>%
  quarter_to_date %>%
  filter(date >= as.Date("2017-01-01")) %>%
  left_join(AGE, by  = "AGE") %>%
  ggplot() + theme_minimal() + ylab("Taux de chômage (%)") + xlab("") +
  geom_line(aes(x = date, y = OBS_VALUE/100, color = Age)) +
  
  scale_x_date(breaks = "6 months",
               labels = date_format("%b %y")) +
  theme(legend.position = c(0.9, 0.9),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(0, 40, 2),
                     labels = percent_format(accuracy = 1))

Age (sauf - de 25 ans)

Tous

Code
`CHOMAGE-TRIM-NATIONAL` %>%
  filter(INDICATEUR == "CTTXC",
         REF_AREA == "FR-D976",
         SEXE == "0",
         AGE != "00-24") %>%
  quarter_to_date %>%
  left_join(AGE, by  = "AGE") %>%
  ggplot() + theme_minimal() + ylab("Taux de chômage (%)") + xlab("") +
  geom_line(aes(x = date, y = OBS_VALUE/100, color = Age)) +
  
  scale_x_date(breaks = seq(1920, 2025, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  theme(legend.position = c(0.15, 0.9),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(0, 40, 1),
                     labels = percent_format(accuracy = 1),
                     limits = c(0, 0.13))

2005-

Code
`CHOMAGE-TRIM-NATIONAL` %>%
  filter(INDICATEUR == "CTTXC",
         REF_AREA == "FR-D976",
         SEXE == "0",
         AGE != "00-24") %>%
  quarter_to_date %>%
  filter(date >= as.Date("2005-01-01")) %>%
  left_join(AGE, by  = "AGE") %>%
  ggplot() + theme_minimal() + ylab("Taux de chômage (%)") + xlab("") +
  geom_line(aes(x = date, y = OBS_VALUE/100, color = Age)) +
  
  scale_x_date(breaks = seq(1920, 2025, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  theme(legend.position = c(0.9, 0.9),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(0, 40, 1),
                     labels = percent_format(accuracy = 1))

2010-

Code
`CHOMAGE-TRIM-NATIONAL` %>%
  filter(INDICATEUR == "CTTXC",
         REF_AREA == "FR-D976",
         SEXE == "0",
         AGE != "00-24") %>%
  quarter_to_date %>%
  filter(date >= as.Date("2005-01-01")) %>%
  left_join(AGE, by  = "AGE") %>%
  ggplot() + theme_minimal() + ylab("Taux de chômage (%)") + xlab("") +
  geom_line(aes(x = date, y = OBS_VALUE/100, color = Age)) +
  
  scale_x_date(breaks = seq(1920, 2025, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  theme(legend.position = c(0.9, 0.9),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(0, 40, 1),
                     labels = percent_format(accuracy = 1))

2017-

Code
`CHOMAGE-TRIM-NATIONAL` %>%
  filter(INDICATEUR == "CTTXC",
         REF_AREA == "FR-D976",
         SEXE == "0",
         AGE != "00-24") %>%
  quarter_to_date %>%
  filter(date >= as.Date("2017-04-01")) %>%
  left_join(AGE, by  = "AGE") %>%
  ggplot() + theme_minimal() + ylab("Taux de chômage (%)") + xlab("") +
  geom_line(aes(x = date, y = OBS_VALUE/100, color = Age)) +
  
  scale_x_date(breaks = seq(1920, 2025, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  theme(legend.position = c(0.9, 0.9),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(0, 40, 1),
                     labels = percent_format(accuracy = 1))