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

Data - INSEE

Info

source dataset Title .html .rData
insee CHOMAGE-TRIM-NATIONAL Chômage, taux de chômage par sexe et âge (sens BIT) (1975-) 2025-10-10 2025-10-09

Données sur l’emploi

source dataset Title .html .rData
insee CHOMAGE-TRIM-NATIONAL Chômage, taux de chômage par sexe et âge (sens BIT) (1975-) 2025-10-10 2025-10-09
insee CNA-2014-EMPLOI Emploi intérieur, durée effective travaillée et productivité horaire 2025-10-10 2025-10-09
insee DEMANDES-EMPLOIS-NATIONALES Demandeurs d'emploi inscrits à Pôle Emploi 2025-10-10 2025-10-10
insee EMPLOI-BIT-TRIM Emploi, activité, sous-emploi par secteur d’activité (sens BIT) 2025-10-10 2025-10-09
insee EMPLOI-SALARIE-TRIM-NATIONAL Estimations d'emploi salarié par secteur d'activité 2025-10-10 2025-10-09
insee TAUX-CHOMAGE Taux de chômage localisé 2025-10-10 2025-10-10
insee TCRED-EMPLOI-SALARIE-TRIM Estimations d'emploi salarié par secteur d'activité et par département 2025-10-10 2025-10-10

Data on employment

source dataset Title .html .rData
bls jt NA NA NA
bls la NA NA NA
bls ln NA NA NA
eurostat nama_10_a10_e Employment by A*10 industry breakdowns 2025-10-10 2025-10-09
eurostat nama_10_a64_e National accounts employment data by industry (up to NACE A*64) 2025-10-10 2025-10-09
eurostat namq_10_a10_e Employment A*10 industry breakdowns 2025-05-24 2025-10-10
eurostat une_rt_m Unemployment by sex and age – monthly data 2025-10-10 2025-10-10
oecd ALFS_EMP Employment by activities and status (ALFS) 2024-04-16 2025-05-24
oecd EPL_T Strictness of employment protection – temporary contracts 2025-09-29 2023-12-10
oecd LFS_SEXAGE_I_R LFS by sex and age - indicators 2025-09-29 2024-04-15
oecd STLABOUR Short-Term Labour Market Statistics 2025-09-29 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-08-08 13392
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 4848
CTCHC Nombre de chômeurs 4560
HALO Personnes dans le halo autour du chômage 3888
CTTC15 Part de chômeurs dans la population 15 ans et plus 2964
TXCHLODU Taux de chômage de longue durée 1872
CHLODU Nombre de chômeurs de longue durée 156
HALO_1 Personnes dans le halo autour du chômage : inactifs faisant des démarches actives de recherche d'emploi mais non disponibles 156
HALO_2 Personnes dans le halo autour du chômage : inactifs disponibles mais ne faisant pas de démarche active de recherche d'emploi 156
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 156
PCONTR1 Part des chômeurs parmi les participants au marché du travail de 15 à 64 ans 90
PCONTR2 Part des personnes au chômage ou dans le halo parmi les participants au marché du travail de 15 à 64 ans 90
PCONTR3 Part des personnes contraintes sur leur offre de travail parmi les participants au marché du travail de 15 à 64 ans 90

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 4026
00- Ensemble 3444
50- 50 ans et plus 3444
00-24 Moins de 25 ans 2820
15-64 De 15 à 64 ans 1476
15-24 De 15 à 24 ans 1206
50-64 De 50 à 64 ans 1206
15- 15 ans et plus 468
55-64 De 55 à 64 ans 468
SO Sans objet 468

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 7992
TAUX Taux 6720
PROPORTION Proportion 4314

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 7042
1 Hommes 5992
2 Femmes 5992

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 11034
3 7992

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 10968
FM 8058

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))