Comptes Financiers Trimestriels - CFT

Données - BDF

🇬🇧 English version

Last observation: Q3 2024 (N = 4) · 2023 (N = 50)

First observation: 1995 (N = 2) · Q4 1995 (N = 1)

Last data update: 10 août 2026, 16:21

Last compile: 02 sept. 2026, 22:49

Structure

  • Méthodologie. pdf

Liste des publications

  • Épargne et Patrimoine financiers des ménages, 2024T1. pdf / html

  • Comptes financiers des agents non financiers. STAT INFO – 4e trimestre 2023. pdf

  • Épargne des ménages. STAT INFO – février 2024. pdf

Info

  • Épargne et Patrimoine financiers des ménages, 2024T2. pdf html

  • Épargne et Patrimoine financiers des ménages, Comptes financiers des agents non financiers, 15 avril 2024, 2023T4. pdf html

  • Épargne et Patrimoine financiers des ménages, 2023T3. pdf

  • Épargne et Patrimoine financiers des ménages, 2023T2. pdf

  • Présentation trimestrielle de l’épargne des ménages, 2023T1. html pdf

  • Méthodologie. pdf

  • Liste séries. html

  • Épargne et Patrimoine financiers des ménages, 2022T2. pdf

  • Epargne des ménages, 2021T1. pdf

  • Taux d’endettement des agents non financiers – Comparaisons internationales, 2020T4. html / pdf

  • Epargne des ménages, 2020T3. pdf

INSTR_ASSET Instrument and assets classification

Code
CFT |>
  
  
  group_by(INSTR_ASSET, Instr_asset) |>
  summarise(Nobs = n()) |>
  #arrange(-Nobs) %>%
  print_table_conditional()

Grandes masses

2024T2

Code
ig_b("bdf", "CFT-2024T2")

2023T4

Code
ig_b("bdf", "CFT-2023T4")

Produits de taux

Code
CFT |>
  
  filter(STO == "LE",
         INSTR_ASSET %in% c("PDTX")) |>
  na.omit() |>
  ggplot() + geom_line(aes(x = date, y = value, color = Variable)) + 
  xlab("") + ylab("") + theme_minimal() +
  scale_x_date(breaks = "1 year",
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(-200, 10000, 100),
                     labels = dollar_format(acc = 1, prefix = "", su = "Mds€")) +
  theme(legend.position = c(0.35, 0.9),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  geom_label(data = . %>% filter(date == as.Date("2023-12-31")),
             aes(x = date, y = value, color = Variable, label = round(value)))

Produits de fonds propres

Code
CFT |>
  
  filter(STO == "LE",
         INSTR_ASSET %in% c("PDFP")) |>
  na.omit() |>
  ggplot() + geom_line(aes(x = date, y = value, color = Variable)) + 
  xlab("") + ylab("") + theme_minimal() +
  scale_x_date(breaks = "1 year",
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(-200, 10000, 100),
                     labels = dollar_format(acc = 1, prefix = "", su = "Mds€")) +
  theme(legend.position = c(0.35, 0.9),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  geom_label(data = . %>% filter(date == as.Date("2023-12-31")),
             aes(x = date, y = value, color = Variable, label = round(value)))

Côté, non côté

Code
CFT |>
  
  filter(STO == "LE",
         INSTR_ASSET %in% c("PDFP", "F51", "F511", "F51M", "F52")) |>
  na.omit() |>
  ggplot() + geom_line(aes(x = date, y = value, color = Variable)) + 
  xlab("") + ylab("") + theme_minimal() +
  scale_x_date(breaks = "1 year",
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(-200, 10000, 100),
                     labels = dollar_format(acc = 1, prefix = "", su = "Mds€")) +
  theme(legend.position = c(0.5, 0.7),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  geom_label(data = . %>% filter(date == as.Date("2023-12-31")),
             aes(x = date, y = value, color = Variable, label = round(value)))

Detail

Linéaire

Code
CFT |>
  
  filter(STO == "LE",
         INSTR_ASSET %in% c("F62A", "F62B", "F29R", "F2A", "F29Z")) |>
  na.omit() |>
  ggplot() + geom_line(aes(x = date, y = value, color = Variable)) + 
  xlab("") + ylab("") + theme_minimal() +
  scale_x_date(breaks = "1 year",
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(-200, 10000, 100),
                     labels = dollar_format(acc = 1, prefix = "", su = "Mds€")) +
  theme(legend.position = c(0.45, 0.17),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  geom_label(data = . %>% filter(date == as.Date("2023-12-31")),
             aes(x = date, y = value, color = Variable, label = round(value)))

Log

Code
CFT |>
  
  filter(STO == "LE",
         INSTR_ASSET %in% c("F62A", "F62B", "F29R", "F2A", "F29Z")) |>
  na.omit() |>
  ggplot() + geom_line(aes(x = date, y = value, color = Variable)) + 
  xlab("") + ylab("") + theme_minimal() +
  scale_x_date(breaks = "1 year",
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(-200, 10000, 100),
                     labels = dollar_format(acc = 1, prefix = "", su = "Mds€")) +
  theme(legend.position = c(0.45, 0.17),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  geom_label(data = . %>% filter(date == as.Date("2023-12-31")),
             aes(x = date, y = value, color = Variable, label = round(value)))

Stock

Numéraires et dépôts à vue

Code
CFT |>
  
  
  filter(REF_AREA %in% c("FR", "IT", "DE"),
         INSTR_ASSET == "F2A",
         STO == "LE") |>
  mutate(Ref_area = ifelse(REF_AREA == "I8", "Europe", Ref_area)) |>
  add_flag_color("Ref_area") |>
  na.omit() |>
  ggplot() + geom_line(aes(x = date, y = value, color = color)) + 
  xlab("") + ylab("") + theme_minimal() + scale_color_identity() + add_3flags +
  scale_x_date(breaks = "1 year",
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(100, 4000, 100),
                labels = dollar_format(accuracy = 1, pre = "", su = " Mds€")) +
  geom_label(data = . %>% filter(date == as.Date("2023-12-31")),
             aes(x = date, y = value, label = round(value)))

Stocks

Code
CFT |>
  
  
  filter(REF_AREA %in% c("FR"),
         INSTR_ASSET %in% c("F2A", "F29Z", "F62B", "F29R"),
         STO == "LE") |>
  select(date, value, Instr_asset) |>
  na.omit() |>
  ggplot() + geom_line(aes(x = date, y = value, color = Instr_asset)) + 
  xlab("") + ylab("") + theme_minimal() +
  
  scale_x_date(breaks = "1 year",
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(100, 4000, 100),
                labels = dollar_format(accuracy = 1, pre = "", su = " Mds€")) +
  theme(legend.position = c(0.4, 0.4),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  geom_label(data = . %>% filter(date == as.Date("2023-12-31")),
             aes(x = date, y = value, color = Instr_asset, label = round(value)))

Numéraires et dépôts à vue

Stocks

All

Code
CFT |>
  
  
  filter(REF_AREA %in% c("FR"),
         INSTR_ASSET %in% c("F2A", "F29Z", "F62B"),
         STO == "LE") |>
  select(date, value, Instr_asset) |>
  na.omit() |>
  ggplot() + geom_line(aes(x = date, y = value, color = Instr_asset)) + 
  xlab("") + ylab("") + theme_minimal() +
  
  scale_x_date(breaks = "1 year",
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(100, 4000, 100),
                labels = dollar_format(accuracy = 1, pre = "", su = " Mds€")) +
  theme(legend.position = c(0.4, 0.4),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  geom_label(data = . %>% filter(date == as.Date("2023-12-31")),
             aes(x = date, y = value, color = Instr_asset, label = round(value)))

2019-

Code
CFT |>
  
  
  filter(REF_AREA %in% c("FR"),
         INSTR_ASSET %in% c("F2A", "F29Z", "F62B"),
         STO == "LE") |>
  select(date, value, Instr_asset) |>
  na.omit() |>
  filter(date >= as.Date("2022-01-01")) |>
  ggplot() + geom_line(aes(x = date, y = value, color = Instr_asset)) + 
  xlab("") + ylab("") + theme_minimal() +
  
  scale_x_date(breaks = "3 months",
               labels = date_format("%b %Y")) +
  scale_y_log10(breaks = seq(100, 4000, 100),
                labels = dollar_format(accuracy = 1, pre = "", su = " Mds€")) +
  theme(legend.position = c(0.4, 0.4),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  geom_label(data = . %>% filter(date == as.Date("2023-12-31")),
             aes(x = date, y = value, color = Instr_asset, label = round(value)))

Flux - 4 trimestres

Code
CFT |>
  
  
  filter(REF_AREA %in% c("FR"),
         INSTR_ASSET %in% c("F2A", "F29Z", "F62B", "F29R"),
         STO == "F",
         TRANSFORMATION == "C4") |>
  #filter(date >= as.Date("2016-01-01")) %>%
  select(date, value, Instr_asset) |>
  na.omit() |>
  ggplot() + geom_line(aes(x = date, y = value, color = Instr_asset)) + 
  xlab("") + ylab("") + theme_minimal() +
  
  scale_x_date(breaks = "1 year",
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(-2000, 4000, 10),
                labels = dollar_format(accuracy = 1, pre = "", su = " Mds€")) +
  theme(legend.position = c(0.4, 0.8),
        legend.title = element_blank(),
        legend.direction = "vertical")

Flux

All

Code
CFT |>
  
  
  filter(REF_AREA %in% c("FR"),
         INSTR_ASSET %in% c("F2A", "F29Z", "F62B", "F29R"),
         STO == "F",
         TRANSFORMATION == "N",
         FREQ == "Q") |>
  filter(date >= as.Date("2010-01-01")) |>
  ggplot() + geom_line(aes(x = date, y = value, color = Instr_asset)) + 
  xlab("") + ylab("") + theme_minimal() +
  
  scale_x_date(breaks = "1 year",
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(-1000, 4000, 10),
                labels = dollar_format(accuracy = 1, pre = "", su = " Mds€")) +
  theme(legend.position = c(0.4, 0.8),
        legend.title = element_blank(),
        legend.direction = "vertical")

2016

Code
CFT |>
  
  
  filter(REF_AREA %in% c("FR"),
         INSTR_ASSET %in% c("F2A", "F29Z", "F62B", "F29R"),
         STO == "F",
         TRANSFORMATION == "N",
         FREQ == "Q") |>
  filter(date >= as.Date("2016-01-01")) |>
  ggplot() + geom_line(aes(x = date, y = value, color = Instr_asset)) + 
  xlab("") + ylab("") + theme_minimal() +
  
  scale_x_date(breaks = "1 year",
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(-1000, 4000, 10),
                labels = dollar_format(accuracy = 1, pre = "", su = " Mds€")) +
  theme(legend.position = c(0.4, 0.9),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  geom_hline(yintercept = 0, linetype = "dashed")

Actions côtées / non côtées, AV en unités de compte

Stocks

Code
CFT |>
  
  
  filter(REF_AREA %in% c("FR"),
         INSTR_ASSET %in% c( "F511", "F51M", "F51"),
         STO == "LE") |>
  na.omit() |>
  ggplot() + geom_line(aes(x = date, y = value, color = Instr_asset)) + 
  xlab("") + ylab("") + theme_minimal() +
  
  scale_x_date(breaks = "1 year",
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(100, 4000, 100),
                labels = dollar_format(accuracy = 1, pre = "", su = " Mds€")) +
  theme(legend.position = c(0.4, 0.6),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  geom_label(data = . %>% filter(date == as.Date("2023-12-31")),
             aes(x = date, y = value, color = Instr_asset, label = round(value)))

Actions côtées / non côtées, AV en unités de compte

Stocks

Code
CFT |>
  
  
  filter(REF_AREA %in% c("FR"),
         INSTR_ASSET %in% c( "F511", "F51M", "F62A"),
         STO == "LE") |>
  na.omit() |>
  ggplot() + geom_line(aes(x = date, y = value, color = Instr_asset)) + 
  xlab("") + ylab("") + theme_minimal() +
  
  scale_x_date(breaks = "1 year",
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(100, 4000, 100),
                labels = dollar_format(accuracy = 1, pre = "", su = " Mds€")) +
  theme(legend.position = c(0.4, 0.6),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  geom_label(data = . %>% filter(date == as.Date("2023-12-31")),
             aes(x = date, y = value, color = Instr_asset, label = round(value)))

Flux

Code
CFT |>
  
  
  filter(REF_AREA %in% c("FR"),
         INSTR_ASSET %in% c( "F511", "F51M", "F62A"),
         STO == "F",
         TRANSFORMATION == "N",
         FREQ == "Q") |>
  filter(date >= as.Date("2016-01-01")) |>
  ggplot() + geom_line(aes(x = date, y = value, color = Instr_asset)) + 
  xlab("") + ylab("") + theme_minimal() +
  
  scale_x_date(breaks = "1 year",
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(-2000, 4000, 5),
                labels = dollar_format(accuracy = 1, pre = "", su = " Mds€")) +
  theme(legend.position = c(0.4, 0.4),
        legend.title = element_blank(),
        legend.direction = "vertical")

Numéraires et dépôts à vue

Code
CFT |>
  
  
  filter(REF_AREA %in% c("FR"),
         INSTR_ASSET %in% c("F2A", "F29Z"),
         STO == "LE") |>
  na.omit() |>
  ggplot() + geom_line(aes(x = date, y = value, color = Instr_asset)) + 
  xlab("") + ylab("") + theme_minimal() +
  
  scale_x_date(breaks = "1 year",
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(100, 4000, 100),
                labels = dollar_format(accuracy = 1, pre = "", su = " Mds€")) +
  theme(legend.position = c(0.75, 0.1),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  geom_label(data = . %>% filter(date == as.Date("2023-12-31")),
             aes(x = date, y = value, color = Instr_asset, label = round(value)))

Assurance Vie

Toutes

2007-

Code
CFT |>
  
  filter(variable %in% c("CFT.Q.S.FR.W0.S1M.S1.N.A.F.F62B._Z._Z.XDC._T.S.V.N._T",
                         "CFT.Q.S.FR.W0.S1M.S1.N.A.F.F62A._Z._Z.XDC._T.S.V.N._T",
                         "CFT.Q.S.FR.W0.S1M.S1.N.A.F.F29R.T._Z.XDC._T.S.V.N._T",
                         "CFT.Q.S.FR.W0.S1M.S1.N.A.F.F2A.T._Z.XDC._T.S.V.N._T")) |>
  na.omit() |>
  ggplot() + geom_line(aes(x = date, y = value, color = Variable)) + 
  xlab("") + ylab("") + theme_minimal() +
  
  scale_x_date(breaks = "1 year",
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(-200, 1000, 5),
                     limits = c(-25 ,40),
                     labels = dollar_format(acc = 1, prefix = "", su = "Mds€")) +
  theme(legend.position = c(0.45, 0.17),
        legend.title = element_blank(),
        legend.direction = "vertical")

2015-

Code
CFT |>
  
  filter(variable %in% c("CFT.Q.S.FR.W0.S1M.S1.N.A.F.F62B._Z._Z.XDC._T.S.V.N._T",
                         "CFT.Q.S.FR.W0.S1M.S1.N.A.F.F29Z.T._Z.XDC._T.S.V.N._T",
                         "CFT.Q.S.FR.W0.S1M.S1.N.A.F.F29R.T._Z.XDC._T.S.V.N._T",
                         "CFT.Q.S.FR.W0.S1M.S1.N.A.F.F2A.T._Z.XDC._T.S.V.N._T")) |>
  filter(date >= as.Date("2015-01-01")) |>
  ggplot() + geom_line(aes(x = date, y = value, color = Variable)) + 
  xlab("") + ylab("") + theme_minimal() +
  
  scale_x_date(breaks = "1 year",
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(-200, 1000, 5),
                     limits = c(-5 ,40),
                     labels = dollar_format(acc = 1, prefix = "", su = "Mds€")) +
  theme(legend.position = c(0.45, 0.8),
        legend.title = element_blank(),
        legend.direction = "vertical")

Taux d’épargne des ménages

Le taux d’épargne des ménages est le rapport entre l’épargne brute des ménages (B8G) et le revenu disponible brut ajusté des variations de droits à pension. Le revenu disponible brut (B6G) correspond aux revenus que perçoivent les ménages (revenus d’activité et revenus fonciers) après opérations de redistribution (ajout des prestations sociales en espèces reçues, soustraction des cotisations et impôts).

Quant au taux d’épargne financière, il s’agit de la part du revenu disponible brut investie dans des actifs financiers.

  • le taux d’épargne s’obtient en rapportant l’épargne brute au revenu disponible brut ajusté de la variation des droits des ménages sur les fonds de pension, préalablement corrigés des variations saisonnières

  • le taux d’épargne financière est estimé en soustrayant la formation brute de capital fixe à l’épargne brute, ensuite rapportée au revenu disponible brut ajusté de la variation des droits des ménages sur les fonds de pension, puis en corrigeant des variations saisonnières.

Annual

Code
CFT |>
  
  filter(variable %in% c("CFT.A.N.FR.W0.S1M.S1.N.B.B8G._Z._Z._Z.XDC_R_B6G_S1M._T.S.V.N._T",
                         "CFT.A.N.FR.W0.S1M.S1.N.B.B9Z._Z._Z._Z.XDC_R_B6G_S1M._T.S.V.N._T")) |>
  na.omit() |>
  ggplot() + geom_line(aes(x = date, y = value/100, color = Variable)) + 
  xlab("") + ylab("") + theme_minimal() +
  
  scale_x_date(breaks = "1 year",
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, 1),
                labels = percent_format(accuracy = 1)) +
  theme(legend.position = c(0.4, 0.9),
        legend.title = element_blank(),
        legend.direction = "vertical")

Quarterly

All

Code
CFT |>
  
  filter(variable %in% c("CFT.Q.N.FR.W0.S1M.S1.N.B.B8G._Z._Z._Z.XDC_R_B6G_S1M._T.S.V.C4._T",
                         "CFT.Q.N.FR.W0.S1M.S1.N.B.B9Z._Z._Z._Z.XDC_R_B6G_S1M._T.S.V.C4._T")) |>
  na.omit() |>
  ggplot() + geom_line(aes(x = date, y = value/100, color = Variable)) + 
  xlab("") + ylab("") + theme_minimal() +
  scale_x_date(breaks = "2 years",
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, 1),
                labels = percent_format(accuracy = 1)) +
  theme(legend.position = c(0.42, 0.9),
        legend.title = element_blank(),
        legend.direction = "vertical")

2010-

Code
CFT |>
  
  filter(variable %in% c("CFT.Q.N.FR.W0.S1M.S1.N.B.B8G._Z._Z._Z.XDC_R_B6G_S1M._T.S.V.C4._T",
                         "CFT.Q.N.FR.W0.S1M.S1.N.B.B9Z._Z._Z._Z.XDC_R_B6G_S1M._T.S.V.C4._T")) |>
  na.omit() |>
  filter(date >= as.Date("2010-01-01")) |>
  ggplot() + geom_line(aes(x = date, y = value/100, color = Variable)) + 
  xlab("") + ylab("") + theme_minimal() +
  scale_x_date(breaks = "2 years",
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, 1),
                labels = percent_format(accuracy = 1)) +
  theme(legend.position = c(0.45, 0.9),
        legend.title = element_blank(),
        legend.direction = "vertical")

France, Spain, Italy

Table

Code
REF_AREA <- read_parquet("REF_AREA.parquet")
CFT |>
  
  
  filter(FREQ == "Q",
         UNIT_MEASURE == "XDC_R_B6G_S1M",
         REF_SECTOR == "S1M",
         date == as.Date("2020-01-01")) |>
  select(Variable, Ref_area, value) |>
  arrange(Ref_area) |>
  print_table_conditional()
Variable Ref_area value
character(0) c(":--------:", ":--------:", ":-----:") character(0)

Taux d’épargne financière

France, Italy, Germany

Code
CFT |>
  
  
  filter(FREQ == "Q",
         REF_AREA %in% c("FR", "IT", "DE"),
         UNIT_MEASURE == "XDC_R_B6G_S1M",
         STO == "B9Z",
         REF_SECTOR == "S1M") |>
  mutate(value = value/100) |>
  na.omit() |>
  ggplot() + geom_line(aes(x = date, y = value, color = Ref_area)) + 
  xlab("") + ylab("") + theme_minimal() +
  scale_color_manual(values = c("#002395", "#000000", "#009246")) +
  scale_x_date(breaks = "2 years",
               labels = date_format("%Y")) +
  add_3flags +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, 1),
                labels = percent_format(accuracy = 1)) +
  theme(legend.position = "none")

France, Italy, Germany, Spain, United States

All

Code
CFT |>
  
  
  filter(FREQ == "Q",
         UNIT_MEASURE == "XDC_R_B6G_S1M",
         STO == "B9Z",
         REF_SECTOR == "S1M") |>
  add_flag_color("Ref_area") |>
  mutate(value = value/100) |>
  na.omit() |>
  ggplot() + geom_line(aes(x = date, y = value, color = color)) + 
  xlab("") + ylab("") + theme_minimal() + scale_color_identity() + add_6flags +
  scale_x_date(breaks = "2 years",
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, 1),
                labels = percent_format(accuracy = 1))

2007-

Code
CFT |>
  
  
  filter(FREQ == "Q",
         UNIT_MEASURE == "XDC_R_B6G_S1M",
         STO == "B9Z",
         REF_SECTOR == "S1M") |>
  add_flag_color("Ref_area") |>
  mutate(value = value/100) |>
  filter(date >= as.Date("2007-01-01")) |>
  na.omit() |>
  ggplot() + geom_line(aes(x = date, y = value, color = color)) + 
  xlab("") + ylab("") + theme_minimal() + scale_color_identity() + add_6flags +
  scale_x_date(breaks = "1 year",
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, 1),
                labels = percent_format(accuracy = 1))

2015-

Code
CFT |>
  
  
  filter(FREQ == "Q",
         UNIT_MEASURE == "XDC_R_B6G_S1M",
         STO == "B9Z",
         REF_SECTOR == "S1M") |>
  add_flag_color("Ref_area") |>
  mutate(value = value/100) |>
  filter(date >= as.Date("2015-01-01")) |>
  na.omit() |>
  ggplot() + geom_line(aes(x = date, y = value, color = color)) + 
  xlab("") + ylab("Taux d'épargne financière (%)") + theme_minimal() + scale_color_identity() + add_6flags +
  scale_x_date(breaks = "1 year",
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, 1),
                labels = percent_format(accuracy = 1))

Taux d’épargne

France, Italy, Germany

Code
CFT |>
  
  
  filter(FREQ == "Q",
         REF_AREA %in% c("FR", "IT", "DE"),
         UNIT_MEASURE == "XDC_R_B6G_S1M",
         STO == "B8G",
         REF_SECTOR == "S1M") |>
  add_flag_color("Ref_area") |>
  mutate(value = value/100) |>
  na.omit() |>
  ggplot() + geom_line(aes(x = date, y = value, color = color)) + 
  xlab("") + ylab("") + theme_minimal() + scale_color_identity() + add_3flags +
  scale_x_date(breaks = "2 years",
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, 1),
                labels = percent_format(accuracy = 1))

France, Italy, Germany, Spain, United States

Code
CFT |>
  
  
  filter(FREQ == "Q",
         UNIT_MEASURE == "XDC_R_B6G_S1M",
         STO == "B8G",
         REF_SECTOR == "S1M") |>
  add_flag_color("Ref_area") |>
  mutate(value = value/100) |>
  na.omit() |>
  ggplot() + geom_line(aes(x = date, y = value, color = color)) + 
  xlab("") + ylab("") + theme_minimal() + scale_color_identity() + add_6flags +
  scale_x_date(breaks = "2 years",
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, 1),
                labels = percent_format(accuracy = 1))

Dette

Dette des ménages

All

Code
CFT |>
  
  
  filter(INSTR_ASSET == "DETT",
         UNIT_MEASURE == "XDC_R_B1GQ_CY",
         REF_SECTOR == "S1M") |>
  mutate(Ref_area = ifelse(REF_AREA == "I8", "Europe", Ref_area)) |>
  mutate(Ref_area = ifelse(REF_AREA == "UK", "United Kingdom", Ref_area)) |>
  add_flag_color("Ref_area") |>
  mutate(value = value/100) |>
  arrange(date) |>
  select(REF_AREA,everything()) |>
  ggplot() + geom_line(aes(x = date, y = value, color = color)) + 
  xlab("") + ylab("") + theme_minimal() + scale_color_identity() + add_7flags +
  scale_x_date(breaks = "2 years",
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-10, 200, 10),
                labels = percent_format(accuracy = 1))

France, Italy, Germany, Spain, Japan, EU

Code
CFT |>
  
  
  filter(REF_AREA %in% c("FR", "IT", "DE", "ES", "JP", "I8"),
         INSTR_ASSET == "DETT",
         UNIT_MEASURE == "XDC_R_B1GQ_CY",
         REF_SECTOR == "S1M") |>
  mutate(Ref_area = ifelse(REF_AREA == "I8", "Europe", Ref_area)) |>
  add_flag_color("Ref_area") |>
  mutate(value = value/100) |>
  ggplot() + geom_line(aes(x = date, y = value, color = color)) + 
  xlab("") + ylab("") + theme_minimal() + scale_color_identity() + add_6flags +
  scale_x_date(breaks = "2 years",
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, 5),
                labels = percent_format(accuracy = 1))

France, Italy, Germany

All

Code
CFT |>
  
  
  filter(REF_AREA %in% c("FR", "IT", "DE"),
         INSTR_ASSET == "DETT",
         UNIT_MEASURE == "XDC_R_B1GQ_CY",
         REF_SECTOR == "S1M") |>
  mutate(Ref_area = ifelse(REF_AREA == "I8", "Europe", Ref_area)) |>
  add_flag_color("Ref_area") |>
  mutate(value = value/100) |>
  ggplot() + geom_line(aes(x = date, y = value, color = color)) + 
  xlab("") + ylab("") + theme_minimal() + scale_color_identity() + add_3flags +
  scale_x_date(breaks = "2 years",
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, 5),
                labels = percent_format(accuracy = 1))

2013-

Code
CFT |>
  
  
  filter(REF_AREA %in% c("FR", "IT", "DE"),
         INSTR_ASSET == "DETT",
         UNIT_MEASURE == "XDC_R_B1GQ_CY",
         REF_SECTOR == "S1M") |>
  mutate(Ref_area = ifelse(REF_AREA == "I8", "Europe", Ref_area)) |>
  add_flag_color("Ref_area") |>
  mutate(value = value/100) |>
  filter(date >=as.Date("2013-01-01")) |>
  ggplot() + geom_line(aes(x = date, y = value, color = color)) + 
  xlab("") + ylab("") + theme_minimal() + scale_color_identity() + add_3flags +
  scale_x_date(breaks = "1 year",
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, 2),
                labels = percent_format(accuracy = 1))

Non-financial corporations

France, Italy, Germany

Code
CFT |>
  
  
  filter(REF_AREA %in% c("FR", "IT", "DE", "I8"),
         INSTR_ASSET == "DETT",
         UNIT_MEASURE == "XDC_R_B1GQ_CY",
         REF_SECTOR == "S11") |>
  mutate(Ref_area = ifelse(REF_AREA == "I8", "Europe", Ref_area)) |>
  add_flag_color("Ref_area") |>
  mutate(value = value/100) |>
  ggplot() + geom_line(aes(x = date, y = value, color = color)) + 
  xlab("") + ylab("") + theme_minimal() + scale_color_identity() + add_4flags +
  scale_x_date(breaks = "2 years",
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, 5),
                labels = dollar_format(accuracy = .01, pre = "", su = " année"))

Taux d’endettement

France

Années de PIB
Code
CFT |>
  
  filter(variable %in% c("CFT.Q.S.FR.W0.S1M.S1.N.L.LE.DETT.T._Z.XDC_R_B1GQ_CY._T.S.V.N._T",
                         "CFT.Q.S.FR.W0.S11.S1.C.L.LE.DETT.T._Z.XDC_R_B1GQ_CY._T.S.V.N._T",
                         "CFT.Q.N.FR.W0.S13.S1.C.L.LE.GD.T._Z.XDC_R_B1GQ_CY._T.F.V.N._T")) |>
  mutate(Variable = gsub(", en % du PIB", "", Variable),
         Variable = gsub(" en % du PIB", "", Variable)) |>
  ggplot() + geom_line(aes(x = date, y = value/100, color = Variable)) + 
  xlab("") + ylab("Dette/PIB (en années de PIB)") + theme_minimal() +
  
  scale_x_date(breaks = "2 years",
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(0, 1.3, 0.1),
                     labels = dollar_format(su = " ans", p = "", acc = 0.1)) +
  theme(legend.position = c(0.3, 0.9),
        legend.title = element_blank(),
        legend.direction = "vertical")

% du PIB
Code
CFT |>
  
  filter(variable %in% c("CFT.Q.S.FR.W0.S1M.S1.N.L.LE.DETT.T._Z.XDC_R_B1GQ_CY._T.S.V.N._T",
                         "CFT.Q.S.FR.W0.S11.S1.C.L.LE.DETT.T._Z.XDC_R_B1GQ_CY._T.S.V.N._T",
                         "CFT.Q.N.FR.W0.S13.S1.C.L.LE.GD.T._Z.XDC_R_B1GQ_CY._T.F.V.N._T")) |>
  ggplot() + geom_line(aes(x = date, y = value/100, color = Variable)) + 
  xlab("") + ylab("") + theme_minimal() +
  
  scale_x_date(breaks = "2 years",
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-10, 140, 5),
                labels = percent_format(accuracy = 1)) +
  theme(legend.position = c(0.3, 0.9),
        legend.title = element_blank(),
        legend.direction = "vertical")

Allemagne

Code
CFT |>
  
  filter(variable %in% c("CFT.Q.N.DE.W0.S1M.S1.N.L.LE.DETT.T._Z.XDC_R_B1GQ_CY._T.S.V.N._T",
                         "CFT.Q.N.DE.W0.S11.S1.C.L.LE.DETT.T._Z.XDC_R_B1GQ_CY._T.S.V.N._T",
                         "CFT.Q.N.DE.W0.S13.S1.C.L.LE.GD.T._Z.XDC_R_B1GQ_CY._T.F.V.N._T")) |>
  ggplot() + geom_line(aes(x = date, y = value/100, color = Variable)) + 
  xlab("") + ylab("") + theme_minimal() +
  
  scale_x_date(breaks = "2 years",
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-10, 140, 5),
                labels = percent_format(accuracy = 1)) +
  theme(legend.position = c(0.3, 0.9),
        legend.title = element_blank(),
        legend.direction = "vertical")

Italie

Code
CFT |>
  
  filter(variable %in% c("CFT.Q.N.IT.W0.S1M.S1.N.L.LE.DETT.T._Z.XDC_R_B1GQ_CY._T.S.V.N._T",
                         "CFT.Q.N.IT.W0.S11.S1.C.L.LE.DETT.T._Z.XDC_R_B1GQ_CY._T.S.V.N._T",
                         "CFT.Q.N.IT.W0.S13.S1.C.L.LE.GD.T._Z.XDC_R_B1GQ_CY._T.F.V.N._T")) |>
  ggplot() + geom_line(aes(x = date, y = value/100, color = Variable)) + 
  xlab("") + ylab("") + theme_minimal() +
  
  scale_x_date(breaks = "2 years",
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-10, 400, 10),
                labels = percent_format(accuracy = 1)) +
  theme(legend.position = c(0.3, 0.9),
        legend.title = element_blank(),
        legend.direction = "vertical")

Espagne

Code
CFT |>
  
  filter(variable %in% c("CFT.Q.N.ES.W0.S1M.S1.N.L.LE.DETT.T._Z.XDC_R_B1GQ_CY._T.S.V.N._T",
                         "CFT.Q.N.ES.W0.S11.S1.C.L.LE.DETT.T._Z.XDC_R_B1GQ_CY._T.S.V.N._T",
                         "CFT.Q.N.ES.W0.S13.S1.C.L.LE.GD.T._Z.XDC_R_B1GQ_CY._T.F.V.N._T")) |>
  ggplot() + geom_line(aes(x = date, y = value/100, color = Variable)) + 
  xlab("") + ylab("") + theme_minimal() +
  
  scale_x_date(breaks = "2 years",
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-10, 400, 10),
                labels = percent_format(accuracy = 1)) +
  theme(legend.position = c(0.2, 0.9),
        legend.title = element_blank(),
        legend.direction = "vertical")

Zone Euro

Code
CFT |>
  
  filter(variable %in% c("CFT.Q.N.I8.W0.S1M.S1.N.L.LE.DETT.T._Z.XDC_R_B1GQ_CY._T.S.V.N._T",
                         "CFT.Q.N.I8.W0.S11.S1.C.L.LE.DETT.T._Z.XDC_R_B1GQ_CY._T.S.V.N._T",
                         "CFT.Q.N.I8.W0.S13.S1.C.L.LE.GD.T._Z.XDC_R_B1GQ_CY._T.F.V.N._T")) |>
  ggplot() + geom_line(aes(x = date, y = value/100, color = Variable)) + 
  xlab("") + ylab("") + theme_minimal() +
  
  scale_x_date(breaks = "2 years",
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-10, 140, 5),
                labels = percent_format(accuracy = 1)) +
  theme(legend.position = c(0.3, 0.9),
        legend.title = element_blank(),
        legend.direction = "vertical")