Emploi, activité, sous-emploi par secteur d’activité (sens BIT)

Données - INSEE

Info

Last observation: 2026-Q1

First observation: 2003-Q1

Number of observations: 19 260

Last data update: 23 jul 2026, 22:48. Last compile: 24 jul 2026, 05:50

Structure

Données sur l’emploi

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

LAST_COMPILE

LAST_COMPILE
2026-07-24

Last

Code
`EMPLOI-BIT-TRIM` %>%
  group_by(TIME_PERIOD) %>%
  summarise(Nobs = n()) %>%
  arrange(desc(TIME_PERIOD)) %>%
  head(1) %>%
  print_table_conditional()
TIME_PERIOD Nobs
2026-Q1 122

Sources

  • Enquête Emploi en Continu. html

  • Note méthodologique. html / pdf

  • 80000 logements.

Précision

Code
i_g("bib/insee/EEC2021_Note-methodologique-juillet-2021/precision.png")

Last observation

Current:

Code
`EMPLOI-BIT-TRIM` %>%
  group_by(TIME_PERIOD) %>%
  summarise(Nobs = n()) %>%
  arrange(desc(TIME_PERIOD)) %>%
  head(1) %>%
  print_table_conditional()
TIME_PERIOD Nobs
2026-Q1 122

TITLE_FR, OBS_VALUE

Tous

Code
`EMPLOI-BIT-TRIM` %>%
  filter(TIME_PERIOD == "2021-Q3") %>%
  select(OBS_VALUE, TITLE_FR) %>%
  print_table_conditional()

Sexe = 0

Code
`EMPLOI-BIT-TRIM` %>%
  filter(TIME_PERIOD == "2021-Q3",
         SEXE == "0") %>%
  select(OBS_VALUE, TITLE_FR) %>%
  print_table_conditional()

Sexe = 0, Age = Tous

Code
`EMPLOI-BIT-TRIM` %>%
  filter(TIME_PERIOD == "2021-Q3",
         SEXE == "0",
         AGE %in% c("00-", "SO")) %>%
  select(OBS_VALUE, TITLE_FR) %>%
  print_table_conditional()
OBS_VALUE TITLE_FR
325.0 Personnes en situation de sous-emploi - Temps partiel, souhaitant travailler plus d'heures, disponible pour le faire et à la recherche d'un autre emploi (en milliers) - France hors Mayotte - Données CVS - Série arrêtée
1062.0 Personnes en situation de sous-emploi - Temps partiel, souhaitant travailler plus d'heures, disponible pour le faire mais sans recherche d'un autre emploi (en milliers) - France hors Mayotte - Données CVS - Série arrêtée
127.0 Personnes en situation de sous-emploi - Temps plein, ou temps partiel, ayant involontairement travaillé moins que d'habitude (en milliers) - France hors Mayotte - Données CVS - Série arrêtée
1514.0 Nombre total des personnes en situation de sous-emploi (en milliers) - France hors Mayotte - Données CVS - Série arrêtée
1.2 Taux de personnes en situation de sous-emploi - Temps partiel, souhaitant travailler plus d'heures, disponible pour le faire et à la recherche d'un autre emploi - France hors Mayotte - Données CVS - Série arrêtée
3.8 Taux de personnes en situation de sous-emploi - Temps partiel, souhaitant travailler plus d'heures, disponible pour le faire mais sans recherche d'un autre emploi - France hors Mayotte - Données CVS - Série arrêtée
0.4 Taux de personnes en situation de sous-emploi - Temps plein, ou temps partiel, ayant involontairement travaillé moins que d'habitude - France hors Mayotte - Données CVS - Série arrêtée
5.4 Taux des personnes en situation de sous-emploi - Ensemble - France hors Mayotte - Données CVS - Série arrêtée
56.2 Personnes actives (taux d'activité) au sens du BIT - France hors Mayotte - Données CVS - Série arrêtée
51.8 Personnes en emploi (taux d'emploi) au sens du BIT - Ensemble - France hors Mayotte - Données CVS - Série arrêtée
17.8 Part du temps partiel dans l'emploi au sens du BIT - Ensemble - France hors Mayotte - Données CVS - Série arrêtée

Toutes colonnes

Code
`EMPLOI-BIT-TRIM` %>%
  filter(TIME_PERIOD == "2021-Q3") %>%
  select_if(function(col) length(unique(col)) > 1) %>%
  select(OBS_VALUE, TITLE_FR, everything()) %>%
  select(-TITLE_EN) %>%
  print_table_conditional()

Taux à temps partiel

Tous âges

Code
`EMPLOI-BIT-TRIM` %>%
  filter(INDICATEUR %in% c("CTTE15_TPE"),
         REF_AREA == "FR-D976",
         AGE %in% c("00-", "SO")) %>%
  quarter_to_date() %>%
  
  ggplot + geom_line(aes(x = date, y = OBS_VALUE / 100, color = Sexe)) + 
  xlab("") + ylab("Temps partiel (%)") + theme_minimal() +
  scale_color_manual(values = c("black", "red", "blue")) +
  scale_x_date(breaks = seq(1940, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-100, 500, 2),
                labels = percent_format(accuracy = 1)) +
  theme(legend.position = c(0.8, 0.9),
        legend.title = element_blank())

25-49

Code
`EMPLOI-BIT-TRIM` %>%
  filter(INDICATEUR %in% c("CTTE15_TPE"),
         REF_AREA == "FR-D976",
         AGE %in% c("25-49")) %>%
  quarter_to_date() %>%
  
  ggplot + geom_line(aes(x = date, y = OBS_VALUE / 100, color = Sexe)) + 
  xlab("") + ylab("Temps partiel (%)") + theme_minimal() +
  scale_color_manual(values = c("black", "red", "blue")) +
  scale_x_date(breaks = seq(1940, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-100, 500, 2),
                labels = percent_format(accuracy = 1)) +
  theme(legend.position = c(0.8, 0.9),
        legend.title = element_blank())

CDD, CDI

CDD

Code
`EMPLOI-BIT-TRIM` %>%
  filter(INDICATEUR %in% c("CTTE15_CDD"),
         REF_AREA == "FR-D976",
         SEXE == "0") %>%
  select_if(function(col) length(unique(col)) > 1) %>%
  quarter_to_date() %>%
  ggplot + geom_line(aes(x = date, y = OBS_VALUE / 100)) + 
  xlab("") + ylab("Taux d'emploi en CDD (%)") + theme_minimal() +
  
  scale_x_date(breaks = seq(1940, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-100, 500, .2),
                labels = percent_format(accuracy = .1)) +
  theme(legend.position = c(0.65, 0.92),
        legend.title = element_blank())

CDI

Code
`EMPLOI-BIT-TRIM` %>%
  filter(INDICATEUR %in% c("CTTE15_CDI"),
         REF_AREA == "FR-D976",
         SEXE == "0") %>%
  select_if(function(col) length(unique(col)) > 1) %>%
  quarter_to_date() %>%
  ggplot + geom_line(aes(x = date, y = OBS_VALUE / 100)) + 
  xlab("") + ylab("Taux d'emploi en CDI (%)") + theme_minimal() +
  
  scale_x_date(breaks = seq(1940, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-100, 500, .2),
                labels = percent_format(accuracy = .1)) +
  theme(legend.position = c(0.65, 0.92),
        legend.title = element_blank())

Taux des personnes en situation de sous-emploi - CTTO15LT

Tous

Code
`EMPLOI-BIT-TRIM` %>%
  filter(INDICATEUR %in% c("CTTO15LT"),
         REF_AREA == "FR-D976",
         SEXE == "0") %>%
  select_if(function(col) length(unique(col)) > 1) %>%
  quarter_to_date() %>%
  ggplot + geom_line(aes(x = date, y = OBS_VALUE / 100)) + 
  xlab("") + ylab("Taux des personnes en situation de sous-emploi (%)") + theme_minimal() +
  
  scale_x_date(breaks = seq(1940, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-100, 500, 1),
                labels = percent_format(accuracy = 1)) +
  theme(legend.position = c(0.65, 0.92),
        legend.title = element_blank())

Temps partiel, souhaitant travailler plus d’heures, disponible pour le faire mais sans recherche d’un autre emploi

Code
`EMPLOI-BIT-TRIM` %>%
  filter(INDICATEUR %in% c("CTTO15LI"),
         REF_AREA == "FR-D976",
         SEXE == "0") %>%
  select_if(function(col) length(unique(col)) > 1) %>%
  quarter_to_date() %>%
  ggplot + geom_line(aes(x = date, y = OBS_VALUE / 100)) + 
  xlab("") + ylab("Temps partiel, souhaitant... (%)") + theme_minimal() +
  
  scale_x_date(breaks = seq(1940, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-100, 500, .2),
                labels = percent_format(accuracy = .1)) +
  theme(legend.position = c(0.65, 0.92),
        legend.title = element_blank())

CTTO15NH

Code
`EMPLOI-BIT-TRIM` %>%
  filter(INDICATEUR %in% c("CTTO15NH"),
         REF_AREA == "FR-D976",
         SEXE == "0") %>%
  select_if(function(col) length(unique(col)) > 1) %>%
  quarter_to_date() %>%
  ggplot + geom_line(aes(x = date, y = OBS_VALUE / 100)) + 
  xlab("") + ylab("Temps partiel, souhaitant... (%)") + theme_minimal() +
  
  scale_x_date(breaks = seq(1940, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-100, 500, 1),
                labels = percent_format(accuracy = 1)) +
  theme(legend.position = c(0.65, 0.92),
        legend.title = element_blank())

Part des jeunes de 15 à 29 ans qui ne sont ni en emploi ni en formation - NEET_T_1529

Code
`EMPLOI-BIT-TRIM` %>%
  filter(INDICATEUR %in% c("NEET_T_1529"),
         REF_AREA == "FR-D976",
         SEXE == "0") %>%
  select_if(function(col) length(unique(col)) > 1) %>%
  quarter_to_date() %>%
  ggplot + geom_line(aes(x = date, y = OBS_VALUE / 100)) + 
  xlab("") + ylab("Part des jeunes de 15 à 29 ans NEET (%)") + theme_minimal() +
  
  scale_x_date(breaks = seq(1940, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-100, 500, 1),
                labels = percent_format(accuracy = 1)) +
  theme(legend.position = c(0.65, 0.92),
        legend.title = element_blank())

Taux d’emploi, Taux d’emploi en ETP

Tous âges

Tous

Code
`EMPLOI-BIT-TRIM` %>%
  filter(INDICATEUR %in% c("CTTE15", "CTTE15_TC", "CTTE15_ETP"),
         AGE %in% c("15-24"),
         REF_AREA == "FR-D976",
         SEXE == "0") %>%
  select_if(function(col) length(unique(col)) > 1) %>%
  quarter_to_date() %>%
  
  arrange(date) %>%
  ggplot + geom_line(aes(x = date, y = OBS_VALUE / 100, color = Indicateur)) + 
  xlab("") + ylab("Taux d'emploi (%)") + theme_minimal() +
  
  scale_x_date(breaks = seq(1940, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-100, 500, 1),
                labels = percent_format(accuracy = 1)) +
  theme(legend.position = c(0.65, 0.92),
        legend.title = element_blank())

Taux d’emploi

Tous âges

Tous

Code
`EMPLOI-BIT-TRIM` %>%
  filter(INDICATEUR %in% c("CTTA15", "CTTE15"),
         REF_AREA == "FR-D976",
         AGE %in% c("00-", "SO"),
         SEXE == "0") %>%
  quarter_to_date() %>%
  
  ggplot + geom_line(aes(x = date, y = OBS_VALUE / 100, color = Indicateur)) + 
  xlab("") + ylab("Taux d'activité, Taux d'emploi (%)") + theme_minimal() +
  
  scale_x_date(breaks = seq(1940, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-100, 500, 1),
                labels = percent_format(accuracy = 1)) +
  theme(legend.position = c(0.85, 0.92),
        legend.title = element_blank())

2017

Code
`EMPLOI-BIT-TRIM` %>%
  filter(INDICATEUR %in% c("CTTA15", "CTTE15"),
         REF_AREA == "FR-D976",
         AGE %in% c("00-", "SO"),
         SEXE == "0") %>%
  quarter_to_date() %>%
  filter(date >= as.Date("2017-01-01")) %>%
  
  ggplot + geom_line(aes(x = date, y = OBS_VALUE / 100, color = Indicateur)) + 
  xlab("") + ylab("Taux d'activité, Taux d'emploi (%)") + theme_minimal() +
  
  scale_x_date(breaks = seq(1940, 2100, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-100, 500, 1),
                labels = percent_format(accuracy = 1)) +
  theme(legend.position = c(0.85, 0.92),
        legend.title = element_blank())

Taux activité

Tous âges

Code
`EMPLOI-BIT-TRIM` %>%
  filter(INDICATEUR %in% c("CTTA15"),
         REF_AREA == "FR-D976",
         AGE %in% c("00-", "SO")) %>%
  quarter_to_date() %>%
  
  ggplot + geom_line(aes(x = date, y = OBS_VALUE / 100, color = Sexe)) + 
  xlab("") + ylab("Taux d'activité (%)") + theme_minimal() +
  scale_color_manual(values = c("black", "red", "blue")) +
  scale_x_date(breaks = seq(1940, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-100, 500, 2),
                labels = percent_format(accuracy = 1)) +
  theme(legend.position = c(0.8, 0.9),
        legend.title = element_blank())

15-24

Code
`EMPLOI-BIT-TRIM` %>%
  filter(INDICATEUR %in% c("CTTA15"),
         REF_AREA == "FR-D976",
         AGE %in% c("15-24")) %>%
  quarter_to_date() %>%
  
  ggplot + geom_line(aes(x = date, y = OBS_VALUE / 100, color = Sexe)) + 
  xlab("") + ylab("Taux d'activité 15-24 (%)") + theme_minimal() +
  scale_color_manual(values = c("black", "red", "blue")) +
  scale_x_date(breaks = seq(1940, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-100, 500, 2),
                labels = percent_format(accuracy = 1)) +
  theme(legend.position = c(0.8, 0.15),
        legend.title = element_blank())

15-64

Code
`EMPLOI-BIT-TRIM` %>%
  filter(INDICATEUR %in% c("CTTA15"),
         REF_AREA == "FR-D976",
         AGE %in% c("15-64")) %>%
  quarter_to_date() %>%
  
  ggplot + geom_line(aes(x = date, y = OBS_VALUE / 100, color = Sexe)) + 
  xlab("") + ylab("Taux d'activité 15-64 (%)") + theme_minimal() +
  scale_color_manual(values = c("black", "red", "blue")) +
  scale_x_date(breaks = seq(1940, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-100, 500, 2),
                labels = percent_format(accuracy = 1)) +
  theme(legend.position = c(0.8, 0.15),
        legend.title = element_blank())

25-49

Code
`EMPLOI-BIT-TRIM` %>%
  filter(INDICATEUR %in% c("CTTA15"),
         REF_AREA == "FR-D976",
         AGE %in% c("25-49")) %>%
  quarter_to_date() %>%
  
  ggplot + geom_line(aes(x = date, y = OBS_VALUE / 100, color = Sexe)) + 
  xlab("") + ylab("Taux d'activité 25-49 (%)") + theme_minimal() +
  scale_color_manual(values = c("black", "red", "blue")) +
  scale_x_date(breaks = seq(1940, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-100, 500, 2),
                labels = percent_format(accuracy = 1)) +
  theme(legend.position = c(0.8, 0.15),
        legend.title = element_blank())

55-64

Code
`EMPLOI-BIT-TRIM` %>%
  filter(INDICATEUR %in% c("CTTA15"),
         REF_AREA == "FR-D976",
         AGE %in% c("55-64")) %>%
  quarter_to_date() %>%
  
  ggplot + geom_line(aes(x = date, y = OBS_VALUE / 100, color = Sexe)) + 
  xlab("") + ylab("Taux d'activité 55-64 (%)") + theme_minimal() +
  scale_color_manual(values = c("black", "red", "blue")) +
  scale_x_date(breaks = seq(1940, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-100, 500, 2),
                labels = percent_format(accuracy = 1)) +
  theme(legend.position = c(0.8, 0.15),
        legend.title = element_blank())

50-64

Code
`EMPLOI-BIT-TRIM` %>%
  filter(INDICATEUR %in% c("CTTA15"),
         REF_AREA == "FR-D976",
         AGE %in% c("50-64")) %>%
  quarter_to_date() %>%
  
  ggplot + geom_line(aes(x = date, y = OBS_VALUE / 100, color = Sexe)) + 
  xlab("") + ylab("Taux d'activité 50-64 (%)") + theme_minimal() +
  scale_color_manual(values = c("black", "red", "blue")) +
  scale_x_date(breaks = seq(1940, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-100, 500, 2),
                labels = percent_format(accuracy = 1)) +
  theme(legend.position = c(0.8, 0.15),
        legend.title = element_blank())