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-) 2026-02-16 2026-02-15

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-) 2026-02-16 2026-02-15
insee CNA-2014-EMPLOI Emploi intérieur, durée effective travaillée et productivité horaire 2026-02-16 2026-02-15
insee DEMANDES-EMPLOIS-NATIONALES Demandeurs d'emploi inscrits à Pôle Emploi 2026-02-16 2026-02-16
insee EMPLOI-BIT-TRIM Emploi, activité, sous-emploi par secteur d’activité (sens BIT) 2026-02-16 2026-02-15
insee EMPLOI-SALARIE-TRIM-NATIONAL Estimations d'emploi salarié par secteur d'activité 2026-02-16 2026-02-15
insee TAUX-CHOMAGE Taux de chômage localisé 2026-02-16 2026-02-16
insee TCRED-EMPLOI-SALARIE-TRIM Estimations d'emploi salarié par secteur d'activité et par département 2026-02-16 2026-02-16

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 2026-02-16 2026-02-15
eurostat nama_10_a64_e National accounts employment data by industry (up to NACE A*64) 2026-02-16 2026-02-15
eurostat namq_10_a10_e Employment A*10 industry breakdowns 2025-05-24 2026-02-15
eurostat une_rt_m Unemployment by sex and age – monthly data 2026-02-16 2026-02-15
oecd ALFS_EMP Employment by activities and status (ALFS) 2024-04-16 2025-05-24
oecd EPL_T Strictness of employment protection – temporary contracts 2026-02-10 2023-12-10
oecd LFS_SEXAGE_I_R LFS by sex and age - indicators 2026-02-10 2024-04-15
oecd STLABOUR Short-Term Labour Market Statistics 2026-02-10 2025-01-17

LAST_UPDATE

Code
`CHOMAGE-TRIM-NATIONAL` %>%
  group_by(LAST_UPDATE) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional()
LAST_UPDATE Nobs
2026-02-10 13600
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 4896
CTCHC Nombre de chômeurs 4584
HALO Personnes dans le halo autour du chômage 3948
CTTC15 Part de chômeurs dans la population 15 ans et plus 3002
TXCHLODU Taux de chômage de longue durée 1896
CHLODU Nombre de chômeurs de longue durée 158
HALO_1 Personnes dans le halo autour du chômage : inactifs faisant des démarches actives de recherche d'emploi mais non disponibles 158
HALO_2 Personnes dans le halo autour du chômage : inactifs disponibles mais ne faisant pas de démarche active de recherche d'emploi 158
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 158
PCONTR1 Part des chômeurs parmi les participants au marché du travail de 15 à 64 ans 92
PCONTR2 Part des personnes au chômage ou dans le halo parmi les participants au marché du travail de 15 à 64 ans 92
PCONTR3 Part des personnes contraintes sur leur offre de travail parmi les participants au marché du travail de 15 à 64 ans 92

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 4068
00- Ensemble 3476
50- 50 ans et plus 3476
00-24 Moins de 25 ans 2844
15-64 De 15 à 64 ans 1500
15-24 De 15 à 24 ans 1224
50-64 De 50 à 64 ans 1224
15- 15 ans et plus 474
55-64 De 55 à 64 ans 474
SO Sans objet 474

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 8060
TAUX Taux 6792
PROPORTION Proportion 4382

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 7122
1 Hommes 6056
2 Femmes 6056

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 11174
3 8060

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 11152
FM 8082

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