Observatoire des Entreprises

Data - BDF

Info

source dataset .html .RData
bdf DIREN 2025-08-24 2025-04-29

Données sur la macroéconomie en France

source dataset .html .RData
bdf CFT 2025-08-28 2025-03-09
insee CNA-2014-CONSO-SI 2025-08-26 2025-08-24
insee CNA-2014-CSI 2025-08-26 2025-08-24
insee CNA-2014-FBCF-BRANCHE 2025-08-26 2025-08-24
insee CNA-2014-FBCF-SI 2025-08-26 2025-08-24
insee CNA-2014-RDB 2025-08-26 2025-08-24
insee CNA-2020-CONSO-MEN 2025-08-26 2024-09-12
insee CNA-2020-PIB 2025-08-26 2025-05-28
insee CNT-2014-CB 2025-08-26 2025-08-24
insee CNT-2014-CSI 2025-08-26 2025-08-24
insee CNT-2014-OPERATIONS 2025-08-26 2025-08-24
insee CNT-2014-PIB-EQB-RF 2025-08-26 2025-08-24
insee CONSO-MENAGES-2020 2025-08-26 2025-08-24
insee conso-mensuelle 2025-08-26 2023-07-04
insee ICA-2015-IND-CONS 2025-08-26 2025-08-24
insee t_1101 2025-08-26 2022-01-02
insee t_1102 2025-08-26 2020-10-30
insee t_1105 2025-08-26 2020-10-30

LAST_COMPILE

LAST_COMPILE
2025-08-27

Last

date Nobs
2024-09-30 70

Méthodologie

Code
ig_b("bdf", "methode_stat_info_defaillances_9-juin-2016", "taille")

Suivi mensuel des défaillances

décembre 2021

Code
ig_b("bdf", "def_ent_2244_fr_si_defaillances_202112_fr_vfinale", "defaillances-par-secteur")

DIREN_THECO

Code
DIREN %>%
  left_join(DIREN_var, by = "variable") %>%
  left_join(DIREN_THECO, by = "DIREN_THECO") %>%
  group_by(DIREN_THECO, Diren_theco) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional
DIREN_THECO Diren_theco Nobs
DE Démographie d'Entreprises 255442
CR Crédits aux entreprises déclarés à la Centrale de Risques 41482
BI Bilans d'Entreprises 14496
DP Délais de Paiement 12972

DIREN_NATURE

Code
DIREN %>%
  left_join(DIREN_var, by = "variable") %>%
  left_join(DIREN_NATURE, by = "DIREN_NATURE") %>%
  group_by(DIREN_NATURE, Diren_nature) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional
DIREN_NATURE Diren_nature Nobs
UL Unités légales 273146
LME Critères de la loi de modernisation de l'économie 51246

DIREN_OBJET

Code
DIREN %>%
  left_join(DIREN_var, by = "variable") %>%
  left_join(DIREN_OBJET, by = "DIREN_OBJET") %>%
  group_by(DIREN_OBJET, Diren_objet) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional

DIREN_MESURE

Code
DIREN %>%
  left_join(DIREN_var, by = "variable") %>%
  left_join(DIREN_MESURE, by = "DIREN_MESURE") %>%
  group_by(DIREN_MESURE, Diren_mesure) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional
DIREN_MESURE Diren_mesure Nobs
03 Cumul 12 mois 180643
19 Cumul trimestriel 59268
01 Encours 21035
05 Ratio moyen 16939
07 Taux de croissance en glissement annuel 13419
21 NA 12023
02 Cumul mensuel 6774
09 Moyenne des ratios individuels 3243
10 Médiane 3243
13 Écart-type 3243
08 Taux de croissance en glissement trimestriel 1764
06 Nombre 1042
22 NA 1026
25 NA 417
20 NA 313

ADJUSTMENT

Code
DIREN %>%
  left_join(DIREN_var, by = "variable") %>%
  left_join(ADJUSTMENT, by = "ADJUSTMENT") %>%
  group_by(ADJUSTMENT, Adjustment) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional
ADJUSTMENT Adjustment Nobs
N Brut 315854
Y CVS/CJO 8538

DIREN_SECTACT

Code
DIREN %>%
  left_join(DIREN_var, by = "variable") %>%
  left_join(DIREN_SECTACT, by = "DIREN_SECTACT") %>%
  group_by(DIREN_SECTACT, Diren_sectact) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional
DIREN_SECTACT Diren_sectact Nobs
ZZ Tous secteurs 100239
FZ Construction 19589
G Commerce et réparation automobile 19589
H Transports et entreposage 19589
I Hébergement et restauration 19589
JZ Information et communication 19589
MN Soutien aux entreprises 19589
AZ Agriculture, sylviculture et pêche 19544
LZ Activités immobilières 18856
BE Industrie 17927
PS Enseignement, santé humaine, action sociale et services aux ménages 17927
KZ Activités financières et d'assurance 15636
C Industrie manufacturière 3622
DE Industries extractives, énergie, eau, déchets 1662
RS Services aux ménages 1662
NC Non classé 1209
HS Holdings et sièges sociaux 1045
IM Activités immobilières (LZ) + promotion immobilière 1045
C1 Fabrication de denrées alimentaires, de boissons et de produits à base de tabac 1008
C3 Fabrication d'équipements électriques, électroniques, informatiques ; fabrication de machines 1008
C4 Fabrication de matériel de transport 1008
C5 Fabrication d'autres produits industriels 1008
PQ Enseignement, santé humaine et action sociale 906
C2 Cokéfaction et raffinage 876
HO Activité des sociétés holdings (6420) 486
FA Activités financières et d'assurance hors holdings 184

DIREN_TAILLENT

Code
DIREN %>%
  left_join(DIREN_var, by = "variable") %>%
  left_join(DIREN_TAILLENT, by = "DIREN_TAILLENT") %>%
  group_by(DIREN_TAILLENT, Diren_taillent) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional
DIREN_TAILLENT Diren_taillent Nobs
TT Toutes tailles 284078
PM PME 16051
IG Entreprises de taille intermédiaire et grandes entreprises 4861
GE Grandes entreprises 2991
NP Taille non pertinente 2274
EI Entreprises de taille Intermédiaire 2130
TTHI Toutes tailles hors Entrepreneurs individuels 1325
ME Entreprises de taille moyenne 1234
MI Microentreprises et taille inconnue 1234
PE Petites entreprises 1234
TP Très petites entreprises 1234
SCI Société Civile Immobilière 972
T1 Total (PME ETI GE) 972
PG PME appartenant à un groupe 861
PI PME indépendantes et microentreprises 738
PH PME hors microentreprises 378
ENR Entreprises non référencées 366
PMHI PME hors Entrepreneurs individuels 340
EA Entreprises de plus de trois ans 224
EJ Entreprises de moins de trois ans 224
PA PME de plus de trois ans 224
PJ PME de moins de trois ans 224
PY PME independantes hors microentreprises 123
T1HI Total (PME ETI GE) hors Entrepreneurs individuels 100

Par mois (02)

PE, TP, GE

Code
DIREN %>%
  filter(variable %in% c("DIREN.M.FR.DE.UL.DF.02.Y.ZZ.TP",
                         "DIREN.M.FR.DE.UL.DF.02.Y.ZZ.PM",
                         "DIREN.M.FR.DE.UL.DF.02.Y.ZZ.GE",
                         "DIREN.M.FR.DE.UL.DF.02.Y.ZZ.PE")) %>%
  ggplot + geom_line(aes(x = date, y = value, color = variable)) +
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  theme(legend.position = c(0.2, 0.2),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = seq(0, 10000, 1000))

PE - Petites entreprises

Code
DIREN %>%
  filter(variable %in% c("DIREN.M.FR.DE.UL.DF.02.Y.ZZ.PE")) %>%
  ggplot + geom_line(aes(x = date, y = value)) +
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(0, 500, 20))

TP - Très petites entreprises

Code
DIREN %>%
  filter(variable %in% c("DIREN.M.FR.DE.UL.DF.02.Y.ZZ.TP")) %>%
  ggplot + geom_line(aes(x = date, y = value)) +
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(0, 500, 20))

PC - Poids économique des défaillances en termes de crédits mobilisés

Code
DIREN %>%
  left_join(DIREN_var, by = "variable") %>%
  filter(DIREN_OBJET == "PC",
         !(DIREN_TAILLENT %in% c("NP", "PG", "PY", "GE"))) %>%
  left_join(DIREN_TAILLENT, by = "DIREN_TAILLENT") %>%
  select_if(~ n_distinct(.) > 1) %>%
  arrange(desc(date)) %>%
  mutate(Diren_taillent = str_wrap(Diren_taillent, width = 35)) %>%
  ggplot + geom_line(aes(x = date, y = value, color = Diren_taillent)) +
  theme_minimal() + xlab("") + ylab("Poids économique des défaillances\nen termes de crédits mobilisés") +
  scale_x_date(breaks = seq(1960, 2100, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(0, 2, 0.1)) +
  theme(legend.position = "bottom",
        legend.title = element_blank()) + guides(color = guide_legend(ncol = 2)) +
  geom_label_repel(data = . %>% group_by(Diren_taillent) %>% filter(date == max(date)),
                   aes(x = date, y = value, color = Diren_taillent, label = DIREN_TAILLENT))

Cumul sur 12 mois (03)

Tous

Hors toutes

Code
DIREN %>%
  left_join(DIREN_var, by = "variable") %>%
  filter(REF_AREA == "FR",
         DIREN_THECO == "DE",
         DIREN_MESURE == "03",
         DIREN_SECTACT == "ZZ",
         DIREN_OBJET == "DF") %>%
  left_join(DIREN_TAILLENT, by = "DIREN_TAILLENT") %>%
  select_if(~ n_distinct(.) > 1) %>%
  ggplot + geom_line(aes(x = date, y = value, color = Diren_taillent)) +
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  theme(legend.position = c(0.3, 0.3),
        legend.title = element_blank())

Hors microentreprises

Code
data_TTMI <- DIREN %>%
  left_join(DIREN_var, by = "variable") %>%
  filter(REF_AREA == "FR",
         DIREN_THECO == "DE",
         DIREN_MESURE == "03",
         DIREN_SECTACT == "ZZ",
         DIREN_OBJET == "DF",
         DIREN_TAILLENT %in% c("TT", "MI")) %>%
  select_if(~ n_distinct(.) > 1) %>%
  select(DIREN_TAILLENT, date, value) %>%
  spread(DIREN_TAILLENT, value) %>%
  na.omit %>%
  mutate(value = `TT` - `MI`) %>%
  select(-`TT`, -`MI`) %>%
  mutate(DIREN_TAILLENT = "TT-MI", Diren_taillent = "Ensemble (hors microentreprises)")

data_TTMI %>%
  ggplot + geom_line(aes(x = date, y = value)) +
  theme_minimal() + xlab("") + ylab("Cumul sur 12 mois\nDéfaillances d'entreprises hors microentreprises") +
  scale_x_date(breaks = seq(1960, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(0, 10000, 200)) +
  geom_label_repel(data = . %>% arrange(-value) %>% head(3), aes(x = date, y = value, label = value))

Nombre défaillances

Code
DIREN %>%
  left_join(DIREN_var, by = "variable") %>%
  filter(REF_AREA == "FR",
         DIREN_THECO == "DE",
         DIREN_MESURE == "03",
         DIREN_SECTACT == "ZZ",
         DIREN_OBJET == "DF",
         !(DIREN_TAILLENT %in% c("TT", "MI", "PM"))) %>%
  left_join(DIREN_TAILLENT, by = "DIREN_TAILLENT") %>%
  select_if(~ n_distinct(.) > 1) %>%
  ggplot + geom_line(aes(x = date, y = value, color = Diren_taillent)) +
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  theme(legend.position = c(0.3, 0.4),
        legend.title = element_blank())

Nombre défaillances

Pourquoi l’arrêt du calcul PME hors microentreprises ?

Code
DIREN %>%
  left_join(DIREN_var, by = "variable") %>%
  filter(REF_AREA == "FR",
         DIREN_THECO == "DE",
         DIREN_MESURE == "03",
         DIREN_SECTACT == "ZZ",
         DIREN_OBJET == "DF",
         !(DIREN_TAILLENT %in% c("TT"))) %>%
  select_if(~ n_distinct(.) > 1) %>%
  select(DIREN_TAILLENT, date, value) %>%
  left_join(DIREN_TAILLENT, by = "DIREN_TAILLENT") %>%
  group_by(DIREN_TAILLENT) %>%
  arrange(date) %>%
  mutate(value = 100*value/value[date == as.Date("2009-10-31")]) %>%
  ggplot + geom_line(aes(x = date, y = value, color = Diren_taillent)) +
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  theme(legend.position = c(0.3, 0.4),
        legend.title = element_blank())

PE

Code
DIREN %>%
  filter(variable %in% c("DIREN.M.FR.DE.UL.DF.03.N.ZZ.PE")) %>%
  ggplot + geom_line(aes(x = date, y = value)) +
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(0, 10000, 100))

ME

Code
DIREN %>%
  filter(variable %in% c("DIREN.M.FR.DE.UL.DF.03.N.ZZ.ME")) %>%
  ggplot + geom_line(aes(x = date, y = value)) +
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(0, 10000, 100))

IG - Entreprises de taille intermédiaire et grandes entreprises

Code
DIREN %>%
  filter(variable %in% c("DIREN.M.FR.DE.UL.DF.03.N.ZZ.IG")) %>%
  ggplot + geom_line(aes(x = date, y = value)) +
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(0, 10000, 5))

TP - TPE

Code
DIREN %>%
  filter(variable %in% c("DIREN.M.FR.DE.UL.DF.03.N.ZZ.TP")) %>%
  ggplot + geom_line(aes(x = date, y = value)) +
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(0, 10000, 200))

Facet wrap

Option 1

Code
DIREN %>%
  left_join(DIREN_var, by = "variable") %>%
  filter(REF_AREA == "FR",
         DIREN_THECO == "DE",
         DIREN_MESURE == "03",
         DIREN_SECTACT == "ZZ",
         DIREN_OBJET == "DF",
         DIREN_TAILLENT %in% c("PE", "IG", "TP")) %>%
  select_if(~ n_distinct(.) > 1) %>%
  select(DIREN_TAILLENT, date, value) %>%
  left_join(DIREN_TAILLENT, by = "DIREN_TAILLENT") %>%
  bind_rows(data_TTMI) %>%
  ggplot + geom_line(aes(x = date, y = value, color = Diren_taillent)) +
  theme_minimal() + xlab("") + ylab("Cumul sur 12 mois\nDéfaillances d'entreprises hors microentreprises") +
  scale_x_date(breaks = seq(1960, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  theme(legend.position = c(0.25, 0.9),
        legend.title = element_blank()) +
  geom_label_repel(data = . %>%
                     filter(date %in% c(as.Date("2024-03-01"),
                                        as.Date("2024-02-01"),
                                        as.Date("2009-09-01"))), aes(x = date, y = value, label = value, color = Diren_taillent))

Option 2

Code
DIREN %>%
  left_join(DIREN_var, by = "variable") %>%
  filter(REF_AREA == "FR",
         DIREN_THECO == "DE",
         DIREN_MESURE == "03",
         DIREN_SECTACT == "ZZ",
         DIREN_OBJET == "DF",
         DIREN_TAILLENT %in% c("PE", "IG", "TP")) %>%
  select_if(~ n_distinct(.) > 1) %>%
  select(DIREN_TAILLENT, date, value) %>%
  left_join(DIREN_TAILLENT, by = "DIREN_TAILLENT") %>%
  bind_rows(data_TTMI) %>%
  ggplot + geom_line(aes(x = date, y = value, color = Diren_taillent)) +
  theme_minimal() + xlab("") + ylab("Cumul sur 12 mois\nDéfaillances d'entreprises hors microentreprises") +
  scale_x_date(breaks = seq(1960, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  theme(legend.position = c(0.25, 0.9),
        legend.title = element_blank()) +
  geom_label_repel(data = . %>%
                    group_by(DIREN_TAILLENT) %>%
                     arrange(-value) %>%
                     slice(1:3), aes(x = date, y = value, label = value, color = Diren_taillent))

Option 3

Code
DIREN %>%
  left_join(DIREN_var, by = "variable") %>%
  filter(REF_AREA == "FR",
         DIREN_THECO == "DE",
         DIREN_MESURE == "03",
         DIREN_SECTACT == "ZZ",
         DIREN_OBJET == "DF",
         DIREN_TAILLENT %in% c("PE", "IG", "TP")) %>%
  select_if(~ n_distinct(.) > 1) %>%
  select(DIREN_TAILLENT, date, value) %>%
  left_join(DIREN_TAILLENT, by = "DIREN_TAILLENT") %>%
  bind_rows(data_TTMI) %>%
  arrange(desc(date)) %>%
  ggplot + geom_line(aes(x = date, y = value)) +
  theme_minimal() + xlab("") + ylab("Cumul sur 12 mois\nDéfaillances d'entreprises hors microentreprises") +
  scale_x_date(breaks = seq(1960, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  theme(legend.position = c(0.25, 0.9),
        legend.title = element_blank()) +
  geom_label_repel(data = . %>%
                     group_by(DIREN_TAILLENT) %>%
                     filter(date == max(date)), aes(x = date, y = value, label = value)) +
  facet_wrap(~ Diren_taillent, scales = "free")