Monetary Aggregates - France

Data - Banque de France

🇫🇷 Version française

Info

Structure

source dataset Title .html .rData
bdf BSI1 Agrégats monétaires - France 2026-08-07 2026-07-27

Data on real estate

source dataset Title .html .rData
bdf BSI1 Agrégats monétaires - France 2026-08-07 2026-07-27
acpr as151 Enquête annuelle du SGACPR sur le financement de l'habitat 2022 2026-08-07 2026-08-01
acpr as160 Enquête annuelle du SGACPR sur le financement de l'habitat 2023 2026-08-07 2026-08-01
acpr as174 Enquête annuelle du SGACPR sur le financement de l'habitat 2024 2026-08-07 2026-08-01
bdf CPP Prix immobilier commercial 2026-08-07 2026-07-24
bdf FM Marché financier, taux 2026-08-07 2026-08-07
bdf MIR Taux d'intérêt - Zone euro 2026-08-07 2026-07-28
bdf MIR1 Taux d'intérêt - France 2026-08-07 2026-07-28
bdf RPP Prix de l'immobilier 2026-08-07 2026-08-07
bdf immobilier Immobilier en France 2026-08-07 2026-08-01
cgedd nombre-vente-maison-appartement-ancien Nombre de ventes de logements anciens cumulé sur 12 mois 2026-08-07 2026-08-01
insee CONSTRUCTION-LOGEMENTS Construction de logements 2026-08-08 2026-08-07
insee ENQ-CONJ-ART-BAT Conjoncture dans l'artisanat du bâtiment 2026-08-08 2026-08-07
insee ENQ-CONJ-IND-BAT Conjoncture dans l'industrie du bâtiment - ENQ-CONJ-IND-BAT 2026-08-08 2026-08-07
insee ENQ-CONJ-PROMO-IMMO Conjoncture dans la promotion immobilière 2026-08-08 2026-08-07
insee ENQ-CONJ-TP Conjoncture dans les travaux publics 2026-08-08 2026-08-07
insee ILC-ILAT-ICC Indices pour la révision d’un bail commercial ou professionnel 2026-08-08 2026-08-07
insee INDICES_LOYERS Indices des loyers d'habitation (ILH) 2026-08-08 2026-08-07
insee IPLA-IPLNA-2015 Indices des prix des logements neufs et Indices Notaires-Insee des prix des logements anciens 2026-08-08 2026-08-07
insee IRL Indice pour la révision d’un loyer d’habitation 2026-08-08 2026-08-07
insee PARC-LOGEMENTS Estimations annuelles du parc de logements (EAPL) 2026-08-08 2026-07-23
insee SERIES_LOYERS Variation des loyers 2026-08-08 2026-08-07
insee t_dpe_val Dépenses de consommation des ménages pré-engagées 2026-08-08 2026-08-02
notaires arrdt Prix au m^2 par arrondissement - arrdt 2026-08-07 2026-08-07
notaires dep Prix au m^2 par département 2026-08-07 2026-08-07
olap loyers Loyers 2026-08-01 2026-08-01

Data on housing

source dataset Title .html .rData
bdf RPP Prix de l'immobilier 2026-08-07 2026-08-07
bis LONG_PP Residential property prices - detailed series 2026-08-07 2026-07-25
bis SELECTED_PP Property prices, selected series 2026-08-07 2026-08-07
ecb RPP Residential Property Price Index Statistics 2026-08-07 2026-08-07
eurostat ei_hppi_q House price index (2015 = 100) - quarterly data 2026-08-07 2026-08-07
eurostat hbs_str_t223 Mean consumption expenditure by income quintile 2026-08-07 2026-08-07
eurostat prc_hicp_midx HICP (2015 = 100) - monthly data (index) 2026-08-08 2026-08-07
eurostat prc_hpi_q House price index (2015 = 100) - quarterly data 2026-08-08 2026-08-07
fred housing House Prices 2026-08-07 2026-08-07
insee IPLA-IPLNA-2015 Indices des prix des logements neufs et Indices Notaires-Insee des prix des logements anciens 2026-08-08 2026-08-07
oecd SNA_TABLE5 Final consumption expenditure of households 2026-08-08 2026-08-02
oecd housing NA NA NA

Latest

  • Latest. html

  • Loans to households, June 2023. pdf

  • List of BdF Data - Loans to households. html

  • Loans to households, April 2021. html / pdf

  • Loans to households, October 2021. html / pdf

LAST_COMPILE

LAST_COMPILE
2026-08-09

Last

date Nobs
2026-06-30 16

Tables

Balance sheet accounts

Code
ig_b("insee", "ip1967", "table2")

Financial accounts

Code
ig_b("insee", "ip1967", "table2")

BdF Financial Outstanding Amounts

End of 2023

Code
ig_b("bdf", "ER-2023_web", "T1")

End of 2022

Code
ig_b("bdf", "er-2022_rapport_web", "T1")

Regulated Savings Accounts

Overview

  • Regulated savings in 2022. pdf
Code
ig_b("bdf", "er-2022_rapport_web", "G1")

Livret A, Livret Bleu, PEL

Code
BSI1 |>
  filter(variable %in% c("BSI1.M.FR.N.A.L23FRLA.A.1.U6.2250.Z01.E",
                         "BSI1.M.FR.N.A.L23FRAB.A.1.U6.2250.Z01.E",
                         "BSI1.M.FR.N.A.L22FRPL.A.1.U6.2251.Z01.E")) |>

  ggplot() + theme_minimal() + xlab("") + ylab("Livret A, Livret Bleu") +
  geom_line(aes(x = date, y = value / 1000, color = Variable)) +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.4, 0.9),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  scale_y_continuous(breaks = seq(0, 1000, 20),
                labels = dollar_format(suffix = " Mds€", prefix = "",  accuracy = 1)) +
  geom_label(data = . %>% filter(date == as.Date("2023-12-31")),
             aes(x = date, y = value/1000, color = Variable, label = round(value/1000, digits = 1)))

Livret A, PEL, LEP, Sight deposits

All

Code
BSI1 |>
  filter(variable %in% c("BSI1.M.FR.N.A.L23FRAB.A.1.U6.2250.Z01.E",
                         "BSI1.M.FR.N.A.L22FRPL.A.1.U6.2251.Z01.E",
                         "BSI1.M.FR.N.A.L21.A.1.U6.2250.Z01.E")) |>

  ggplot() + theme_minimal() + xlab("") + ylab("Livret A, Livret Bleu") +
  geom_line(aes(x = date, y = value / 1000, color = Variable)) +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.4, 0.9),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  scale_y_continuous(breaks = seq(0, 1000, 20),
                labels = dollar_format(suffix = " Mds€", prefix = "",  accuracy = 1)) +
  geom_label(data = . %>% filter(date == as.Date("2023-12-31")),
             aes(x = date, y = value/1000, color = Variable, label = round(value/1000, digits = 1)))

Livret A and PEL

All

Code
BSI1 |>
  filter(variable %in% c("BSI1.M.FR.N.A.L23FRAB.A.1.U6.2250.Z01.E",
                         "BSI1.M.FR.N.A.L22FRPL.A.1.U6.2251.Z01.E")) |>

  ggplot() + theme_minimal() + xlab("") + ylab("Livret A, Livret Bleu") +
  geom_line(aes(x = date, y = value / 1000, color = Variable)) +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.4, 0.9),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  scale_y_continuous(breaks = seq(0, 1000, 20),
                labels = dollar_format(suffix = " Mds€", prefix = "",  accuracy = 1)) +
  geom_label(data = . %>% filter(date == as.Date("2023-12-31")),
             aes(x = date, y = value/1000, color = Variable, label = round(value/1000, digits = 1)))

2012-

Code
BSI1 |>
  filter(variable %in% c("BSI1.M.FR.N.A.L23FRAB.A.1.U6.2250.Z01.E",
                         "BSI1.M.FR.N.A.L22FRPL.A.1.U6.2251.Z01.E")) |>

  filter(date >= as.Date("2011-12-31")) |>
  ggplot() + theme_minimal() + xlab("") + ylab("Livret A, Livret Bleu") +
  geom_line(aes(x = date, y = value / 1000, color = Variable)) +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 1), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.4, 0.9),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  scale_y_continuous(breaks = seq(0, 1000, 20),
                labels = dollar_format(suffix = " Mds€", prefix = "",  accuracy = 1)) +
  geom_label(data = . %>% filter(date == as.Date("2023-12-31")),
             aes(x = date, y = value/1000, color = Variable, label = round(value/1000, digits = 1)))

Sight deposits, Ordinary savings account, PEL, Livret A, LDDS

All

Code
BSI1 |>
  filter(variable %in% c("BSI1.M.FR.N.A.L23FRAB.A.1.U6.2250.Z01.E",
                         "BSI1.M.FR.N.A.L22FRPL.A.1.U6.2251.Z01.E",
                         "BSI1.M.FR.N.A.L23FRLD.A.1.U6.2251.Z01.E",
                         "BSI1.M.FR.N.A.L23FRLO.A.1.U6.2250.Z01.E",
                         "BSI1.M.FR.N.A.L22FRCT.A.1.U6.2250.Z01.E")) |>

  arrange(date) |>
  ggplot() + theme_minimal() + xlab("") + ylab("Livret A, Livret Bleu, LDDS") +
  geom_line(aes(x = date, y = value / 1000, color = Variable)) +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.4, 0.8),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  scale_y_continuous(breaks = seq(0, 1000, 20),
                labels = dollar_format(suffix = " Mds€", prefix = "",  accuracy = 1)) +
  geom_label(data = . %>% filter(date == as.Date("2023-12-31")),
             aes(x = date, y = value/1000, color = Variable, label = round(value/1000, digits = 1)))

2012-

Code
BSI1 |>
  filter(variable %in% c("BSI1.M.FR.N.A.L23FRAB.A.1.U6.2250.Z01.E",
                         "BSI1.M.FR.N.A.L22FRPL.A.1.U6.2251.Z01.E",
                         "BSI1.M.FR.N.A.L23FRLD.A.1.U6.2251.Z01.E",
                         "BSI1.M.FR.N.A.L23FRLO.A.1.U6.2250.Z01.E",
                         "BSI1.M.FR.N.A.L22FRCT.A.1.U6.2250.Z01.E")) |>

  filter(date >= as.Date("2011-12-31")) |>
  ggplot() + theme_minimal() + xlab("") + ylab("Livret A, Livret Bleu, LDDS") +
  geom_line(aes(x = date, y = value / 1000, color = Variable)) +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 1), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.4, 0.8),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  scale_y_continuous(breaks = seq(0, 1000, 20),
                labels = dollar_format(suffix = " Mds€", prefix = "",  accuracy = 1)) +
  geom_label(data = . %>% filter(date == as.Date("2023-12-31")),
             aes(x = date, y = value/1000, color = Variable, label = round(value/1000, digits = 1)))

Ordinary savings account, PEL, Livret A, LDDS

2012

Code
BSI1 |>
  filter(variable %in% c("BSI1.M.FR.N.A.L20.A.1.U6.2250.Z01.E",
                         "BSI1.M.FR.N.A.L21.A.1.U6.2250.Z01.E",
                         "BSI1.M.FR.N.A.L22.A.1.U6.2250.Z01.E",
                         "BSI1.M.FR.N.A.L23.A.1.U6.2250.Z01.E")) |>

  arrange(date) |>
  filter(date >=as.Date("2012-01-01")) |>
  ggplot() + theme_minimal() + xlab("") + ylab("Livret A, Livret Bleu, LDDS") +
  geom_line(aes(x = date, y = value / 1000, color = Variable)) +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.4, 0.9),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  scale_y_continuous(breaks = seq(0, 10000, 100),
                labels = dollar_format(suffix = " Mds€", prefix = "",  accuracy = 1)) +
  geom_label(data = . %>% filter(date == as.Date("2023-12-31")),
             aes(x = date, y = value/1000, color = Variable, label = round(value/1000, digits = 1)))

Ordinary savings account, PEL, Livret A, LDDS

All

Code
BSI1 |>
  filter(variable %in% c("BSI1.M.FR.N.A.L23FRAB.A.1.U6.2250.Z01.E",
                         "BSI1.M.FR.N.A.L22FRPL.A.1.U6.2251.Z01.E",
                         "BSI1.M.FR.N.A.L23FRLD.A.1.U6.2251.Z01.E",
                         "BSI1.M.FR.N.A.L23FRLO.A.1.U6.2250.Z01.E")) |>

  arrange(date) |>
  ggplot() + theme_minimal() + xlab("") + ylab("Livret A, Livret Bleu, LDDS") +
  geom_line(aes(x = date, y = value / 1000, color = Variable)) +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.4, 0.9),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  scale_y_continuous(breaks = seq(0, 1000, 20),
                labels = dollar_format(suffix = " Mds€", prefix = "",  accuracy = 1)) +
  geom_label(data = . %>% filter(date == as.Date("2023-12-31")),
             aes(x = date, y = value/1000, color = Variable, label = round(value/1000, digits = 1)))

2000-

Code
BSI1 |>
  filter(variable %in% c("BSI1.M.FR.N.A.L23FRAB.A.1.U6.2250.Z01.E",
                         "BSI1.M.FR.N.A.L22FRPL.A.1.U6.2251.Z01.E",
                         "BSI1.M.FR.N.A.L23FRLD.A.1.U6.2251.Z01.E",
                         "BSI1.M.FR.N.A.L23FRLO.A.1.U6.2250.Z01.E")) |>

  filter(date >= as.Date("1999-12-31")) |>
  ggplot() + theme_minimal() + xlab("") + ylab("Livret A, Livret Bleu, LDDS") +
  geom_line(aes(x = date, y = value / 1000, color = Variable)) +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 5), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.4, 0.9),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  scale_y_continuous(breaks = seq(0, 1000, 20),
                labels = dollar_format(suffix = " Mds€", prefix = "",  accuracy = 1)) +
  geom_label(data = . %>% filter(date == as.Date("2023-12-31")),
             aes(x = date, y = value/1000, color = Variable, label = round(value/1000, digits = 1)))

2012-

Code
BSI1 |>
  filter(variable %in% c("BSI1.M.FR.N.A.L23FRAB.A.1.U6.2250.Z01.E",
                         "BSI1.M.FR.N.A.L22FRPL.A.1.U6.2251.Z01.E",
                         "BSI1.M.FR.N.A.L23FRLD.A.1.U6.2251.Z01.E",
                         "BSI1.M.FR.N.A.L23FRLO.A.1.U6.2250.Z01.E")) |>

  filter(date >= as.Date("2011-12-31")) |>
  ggplot() + theme_minimal() + xlab("") + ylab("Livret A, Livret Bleu, LDDS") +
  geom_line(aes(x = date, y = value / 1000, color = Variable)) +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 1), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.4, 0.9),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  scale_y_continuous(breaks = seq(0, 1000, 20),
                labels = dollar_format(suffix = " Mds€", prefix = "",  accuracy = 1)) +
  geom_label(data = . %>% filter(date == as.Date("2023-12-31")),
             aes(x = date, y = value/1000, color = Variable, label = round(value/1000, digits = 1)))

PEL, Livret A, LDDS

All

Code
BSI1 |>
  filter(variable %in% c("BSI1.M.FR.N.A.L23FRAB.A.1.U6.2250.Z01.E",
                         "BSI1.M.FR.N.A.L22FRPL.A.1.U6.2251.Z01.E",
                         "BSI1.M.FR.N.A.L23FRLD.A.1.U6.2251.Z01.E")) |>

  arrange(date) |>
  ggplot() + theme_minimal() + xlab("") + ylab("Livret A, Livret Bleu, LDDS") +
  geom_line(aes(x = date, y = value / 1000, color = Variable)) +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.4, 0.9),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  scale_y_continuous(breaks = seq(0, 1000, 20),
                labels = dollar_format(suffix = " Mds€", prefix = "",  accuracy = 1)) +
  geom_label(data = . %>% filter(date == as.Date("2023-12-31")),
             aes(x = date, y = value/1000, color = Variable, label = round(value/1000, digits = 1)))

2000-

Code
BSI1 |>
  filter(variable %in% c("BSI1.M.FR.N.A.L23FRAB.A.1.U6.2250.Z01.E",
                         "BSI1.M.FR.N.A.L22FRPL.A.1.U6.2251.Z01.E",
                         "BSI1.M.FR.N.A.L23FRLD.A.1.U6.2251.Z01.E")) |>

  filter(date >= as.Date("1999-12-31")) |>
  ggplot() + theme_minimal() + xlab("") + ylab("Livret A, Livret Bleu, LDDS") +
  geom_line(aes(x = date, y = value / 1000, color = Variable)) +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 5), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.4, 0.9),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  scale_y_continuous(breaks = seq(0, 1000, 20),
                labels = dollar_format(suffix = " Mds€", prefix = "",  accuracy = 1)) +
  geom_label(data = . %>% filter(date == as.Date("2023-12-31")),
             aes(x = date, y = value/1000, color = Variable, label = round(value/1000, digits = 1)))

2012-

Code
BSI1 |>
  filter(variable %in% c("BSI1.M.FR.N.A.L23FRAB.A.1.U6.2250.Z01.E",
                         "BSI1.M.FR.N.A.L22FRPL.A.1.U6.2251.Z01.E",
                         "BSI1.M.FR.N.A.L23FRLD.A.1.U6.2251.Z01.E")) |>

  filter(date >= as.Date("2011-12-31")) |>
  ggplot() + theme_minimal() + xlab("") + ylab("Livret A, Livret Bleu, LDDS") +
  geom_line(aes(x = date, y = value / 1000, color = Variable)) +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 1), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.4, 0.9),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  scale_y_continuous(breaks = seq(0, 1000, 20),
                labels = dollar_format(suffix = " Mds€", prefix = "",  accuracy = 1)) +
  geom_label(data = . %>% filter(date == as.Date("2023-12-31")),
             aes(x = date, y = value/1000, color = Variable, label = round(value/1000, digits = 1)))

PEL, all

Code
BSI1 |>

  filter(BS_ITEM %in% c("L22FRPL")) |>
  ggplot() + theme_minimal() + xlab("") + ylab("Livret A, Livret Bleu") +
  geom_line(aes(x = date, y = value / 1000, color = Variable)) +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.5, 0.6),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  scale_y_continuous(breaks = seq(0, 1000, 20),
                labels = dollar_format(suffix = " Mds€", prefix = "",  accuracy = 1)) +
  geom_label(data = . %>% filter(date == as.Date("2023-12-31")),
             aes(x = date, y = value/1000, color = Variable, label = round(value/1000, digits = 1)))

Sight deposits (L21)

2300

Code
BSI1 |>

  filter(BS_ITEM %in% c("L21"),
         variable == "BSI1.M.FR.N.A.L21.A.1.U6.2300.Z01.E") |>
  ggplot() + theme_minimal() + xlab("") + ylab("Sight deposits") +
  geom_line(aes(x = date, y = value / 1000, color = Variable)) +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.5, 0.6),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  scale_y_log10(breaks = seq(100, 3000, 100),
                labels = dollar_format(suffix = " Mds€", prefix = "",  accuracy = 1))

2250 - Households

Code
BSI1 |>

  filter(BS_ITEM %in% c("L21"),
         variable == "BSI1.M.FR.N.A.L21.A.1.U6.2250.Z01.E") |>
  ggplot() + theme_minimal() + xlab("") + ylab("Sight deposits") +
  geom_line(aes(x = date, y = value / 1000, color = Variable)) +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.5, 0.6),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  scale_y_log10(breaks = seq(100, 3000, 100),
                labels = dollar_format(suffix = " Mds€", prefix = "",  accuracy = 1)) +
  geom_label(data = . %>% filter(date == as.Date("2023-12-31")),
             aes(x = date, y = value/1000, color = Variable, label = round(value/1000, digits = 1)))

Deposits (L20)

All

Code
BSI1 |>

  filter(variable %in% c("BSI1.M.FR.N.A.L20.A.1.U6.2250.Z01.E",
                         "BSI1.M.FR.N.A.L20.A.1.U6.2254FR.Z01.E",
                         "BSI1.M.FR.N.A.L21.A.1.U6.2300.Z01.E")) |>
  ggplot() + theme_minimal() + xlab("") + ylab("Sight deposits") +
  geom_line(aes(x = date, y = value / 1000, color = Variable)) +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 5), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.5, 0.6),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  scale_y_log10(breaks = seq(100, 3000, 100),
                labels = dollar_format(suffix = " Mds€", prefix = "",  accuracy = 1)) +
  geom_label(data = . %>% filter(date == as.Date("2023-12-31")),
             aes(x = date, y = value/1000, color = Variable, label = round(value/1000, digits = 1)))

2012-

Code
BSI1 |>

  filter(variable %in% c("BSI1.M.FR.N.A.L20.A.1.U6.2250.Z01.E",
                         "BSI1.M.FR.N.A.L20.A.1.U6.2254FR.Z01.E",
                         "BSI1.M.FR.N.A.L21.A.1.U6.2300.Z01.E"),
         date >= as.Date("2011-12-31")) |>
  ggplot() + theme_minimal() + xlab("") + ylab("Deposits, Sight deposits") +
  geom_line(aes(x = date, y = value / 1000, color = Variable)) +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.4, 0.9),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  scale_y_log10(breaks = seq(100, 3000, 100),
                labels = dollar_format(suffix = " Mds€", prefix = "",  accuracy = 1)) +
  geom_label(data = . %>% filter(date == as.Date("2023-12-31")),
             aes(x = date, y = value/1000, color = Variable, label = round(value/1000, digits = 1)))

Outstanding corporate credit

2240: corporate loans

Linear

Code
data_ombeline <- BSI1 |>
  group_by(variable) |>
  summarise(max_date = max(date),
            min_date = min(date)) |>
  left_join(BSI1_var, by = "variable") |>
  filter(BS_COUNT_SECTOR == "2240") |>
  arrange(desc(max_date))

save(data_ombeline, file = "~/data_ombeline.RData")

Outstanding housing loans

Linear

Code
BSI1 |>
  filter(grepl("BSI1.M.FR.N.R.A220Z.A.1.U6.2250.Z01.E", variable) |
           grepl("BSI1.M.FR.N.R.A220Z.A.1.U6.2254FR.Z01.E", variable) |
           grepl("BSI1.M.FR.N.2.A22.A.1.U6.2251.Z01.E", variable)) |>

  ggplot() + theme_minimal() + xlab("") + ylab("") +
  geom_line(aes(x = date, y = value / 1000, color = Variable)) +

  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.4, 0.9),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  scale_y_continuous(breaks = seq(-10000, 10000, 100),
                labels = dollar_format(suffix = " Mds€", prefix = "",  accuracy = 1)) +
  geom_label(data = . %>% filter(date == as.Date("2023-12-31")),
             aes(x = date, y = value/1000, color = Variable, label = round(value/1000, digits = 1)))

Log

Code
BSI1 |>
  filter(grepl("BSI1.M.FR.N.R.A220Z.A.1.U6.2250.Z01.E", variable) |
           grepl("BSI1.M.FR.N.R.A220Z.A.1.U6.2254FR.Z01.E", variable) |
           grepl("BSI1.M.FR.N.2.A22.A.1.U6.2251.Z01.E", variable)) |>

  ggplot() + theme_minimal() + xlab("") + ylab("") +
  geom_line(aes(x = date, y = value / 1000, color = Variable)) +

  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.4, 0.9),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  scale_y_log10(breaks = seq(-10000, 10000, 100),
                labels = dollar_format(suffix = " Mds€", prefix = "",  accuracy = 1)) +
  geom_label(data = . %>% filter(date == as.Date("2023-12-31")),
             aes(x = date, y = value/1000, color = Variable, label = round(value/1000, digits = 1)))

Outstanding consumer credit

Linear

Code
BSI1 |>
  filter(grepl("BSI1.M.FR.N.R.A210Z.A.1.U6.2254FR.Z01.E", variable) |
           grepl("BSI1.M.FR.N.R.A210Z.A.1.U6.2250.Z01.E", variable)) |>

  ggplot() + theme_minimal() + xlab("") + ylab("") +
  geom_line(aes(x = date, y = value / 1000, color = Variable)) +

  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.5, 0.9),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  scale_y_continuous(breaks = seq(-10000, 10000, 10),
                labels = dollar_format(suffix = " Mds€", prefix = "",  accuracy = 1)) +
  geom_label(data = . %>% filter(date == as.Date("2023-12-31")),
             aes(x = date, y = value/1000, color = Variable, label = round(value/1000, digits = 1)))

Log

Code
BSI1 |>
  filter(grepl("BSI1.M.FR.N.R.A210Z.A.1.U6.2254FR.Z01.E", variable) |
           grepl("BSI1.M.FR.N.R.A210Z.A.1.U6.2250.Z01.E", variable)) |>

  ggplot() + theme_minimal() + xlab("") + ylab("") +
  geom_line(aes(x = date, y = value / 1000, color = Variable)) +

  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.5, 0.9),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  scale_y_log10(breaks = seq(-10000, 10000, 10),
                labels = dollar_format(suffix = " Mds€", prefix = "",  accuracy = 1)) +
  geom_label(data = . %>% filter(date == as.Date("2023-12-31")),
             aes(x = date, y = value/1000, color = Variable, label = round(value/1000, digits = 1)))