Taux d’intérêt - France - MIR1

Données - BDF

🇬🇧 English version

Structure

Taux de rémunération

Nobs

Code
MIR1 |>
  
  filter(grepl("Taux moyen de rémunération annuel", Variable)) |>
  group_by(variable, Variable) |>
  summarise(Nobs = n()) |>
  print_table_conditional()
variable Variable Nobs
MIR1.M.FR.B.L20.A.C.A.2300U6.EUR.O Taux moyen de rémunération annuel des dépôts bancaires 266
MIR1.M.FR.B.L20.A.R.A.2300U6.EUR.O Taux moyen de rémunération annuel des dépôts bancaires 266
MIR1.M.FR.B.L20.L.C.A.2300U6.EUR.O Taux moyen de rémunération annuel des dépôts, moins de 2 ans 266
MIR1.M.FR.B.L20.L.R.A.2300U6.EUR.O Taux moyen de rémunération annuel des dépôts, moins de 2 ans 266

Taux de rémunération des dépôts + immobilier

Code
MIR1 |>
  filter(grepl("MIR1.M.FR.B.L20.A.C.A.2300U6.EUR.O", variable) |
           grepl("MIR1.M.FR.B.L20.L.C.A.2300U6.EUR.O", variable)) |>
  na.omit() |>
  
  ggplot() + geom_line(aes(x = date, y = value/100, color = Variable)) +
  theme_minimal() +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 1), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.55, 0.9),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  xlab("") + ylab("Taux d'intérêt (%)") +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, .1),
                labels = percent_format(accuracy = .1))

Taux

Nobs

Code
MIR1 |>
  
  filter(FREQ == "M",
         REF_AREA == "FR",
         BS_ITEM == "A22") |>
  group_by(variable, Variable) |>
  summarise(Nobs = n()) |>
  print_table_conditional()
variable Variable Nobs
MIR1.M.FR.B.A22.A.5.A.2250U6.EUR.N Crédits nouveaux à l'habitat des ménages, flux CVS 283
MIR1.M.FR.B.A22.A.5.A.2254U6.EUR.N Crédits nouveaux à l'habitat des particuliers, flux CVS 283
MIR1.M.FR.B.A22.A.NBBASE100.A.2254P.EUR.N Nombre de prêts à l'habitat aux primo-accédants (cumul annuel), base 100 décembre 2015 127
MIR1.M.FR.B.A22.A.R.A.2250U6.EUR.N Crédits nouveaux à l'habitat des ménages, taux d'intérêt annuel 283
MIR1.M.FR.B.A22.A.R.A.2254U6.EUR.N Crédits nouveaux à l'habitat des particuliers, taux d'intérêt annuel 332
MIR1.M.FR.B.A22.A.Y.A.2250U6.EUR.N Crédits nouveaux à l'habitat des ménages résidents, flux mensuels cumulés sur un an 283
MIR1.M.FR.B.A22.F.R.A.2250U6.EUR.N Crédits nouveaux à l'habitat des ménages, jusqu'à un an, taux d'intérêt annuel 283
MIR1.M.FR.B.A22.F.R.A.2254U6.EUR.N Crédits nouveaux à l'habitat des particuliers, jusqu'à un an, taux d'intérêt annuel 283
MIR1.M.FR.B.A22.F.Y.A.2250U6.EUR.N Crédits nouveaux à l'habitat des ménages résidents, jusqu'à un an, flux mensuels cumulés sur un an 283
MIR1.M.FR.B.A22.K.R.A.2250U6.EUR.N Crédits nouveaux à l'habitat des ménages, à plus d'un an, taux d'intérêt annuel 283
MIR1.M.FR.B.A22.K.R.A.2254U6.EUR.N Crédits nouveaux à l'habitat des particuliers, à plus d'un an, taux d'intérêt annuel 283
MIR1.M.FR.B.A22.K.Y.A.2250U6.EUR.N Crédits nouveaux à l'habitat des ménages résidents, à plus d'un an, flux mensuels cumulés sur un an 283

Livrets réglementés

-Info. html

Taux SNF

Table SNF

Code
MIR1 |>
  
  filter(BS_COUNT_SECTOR == "2240U6") |>
  group_by(Variable) |>
  summarise(Nobs = n(),
            date = last(date),
            value = last(value)) |>
  print_table_conditional()

Catégories montants

Tous

Code
MIR1 |>
  filter(grepl("MIR1.M.FR.B.A20.A.R.0.2240U6.EUR.N", variable) |
           grepl("MIR1.M.FR.B.A20.A.R.1.2240U6.EUR.N", variable) |
           grepl("MIR1.M.FR.B.A20.A.R.A.2240U6.EUR.N", variable)) |>
  
  
  arrange(desc(date)) |>
  ggplot() + geom_line(aes(x = date, y = value/100, color = Amount_cat)) +
  
  theme_minimal() +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.8, 0.85),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  xlab("") + ylab("Taux d'intérêt (%)") +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, 1),
                labels = percent_format(accuracy = 1))

2010-

Code
MIR1 |>
  filter(grepl("MIR1.M.FR.B.A20.A.R.0.2240U6.EUR.N", variable) |
           grepl("MIR1.M.FR.B.A20.A.R.1.2240U6.EUR.N", variable) |
           grepl("MIR1.M.FR.B.A20.A.R.A.2240U6.EUR.N", variable)) |>
  
  
  arrange(desc(date)) |>
  filter(date >= as.Date("2010-01-01")) |>
  ggplot() + geom_line(aes(x = date, y = value/100, color = Amount_cat)) +
  
  theme_minimal() +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.7, 0.85),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  xlab("") + ylab("Taux d'intérêt (%)") +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, 0.5),
                labels = percent_format(accuracy = .1))

Catégories montants

Code
MIR1 |>
  filter(grepl("MIR1.M.FR.B.A20.A.R.0.2240U6.EUR.N", variable) |
           grepl("MIR1.M.FR.B.A20.A.R.1.2240U6.EUR.N", variable) |
           grepl("MIR1.M.FR.B.A20.A.R.A.2240U6.EUR.N", variable)) |>
  
  
  arrange(desc(date)) |>
  ggplot() + geom_line(aes(x = date, y = value/100, color = Amount_cat)) +
  
  theme_minimal() +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.7, 0.85),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  xlab("") + ylab("Taux d'intérêt (%)") +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, 1),
                labels = percent_format(accuracy = 1))

Livrets réglementés (avec LDDS)

Code
MIR1 |>
  filter(grepl("MIR1.M.FR.B.L23FRLA.D.R.A.2230U6.EUR.O", variable) |
           grepl("MIR1.M.FR.B.L23RJ.A.R.A.2300.EUR.O", variable) |
           grepl("MIR1.M.FR.B.L23FRLJ.A.R.A.2250U6.EUR.O", variable) |
           grepl("MIR1.M.FR.B.L23FRLP.H.R.A.2250U6.EUR.O", variable) |
           grepl("MIR1.M.FR.B.L22FRSP.H.R.A.2250U6.EUR.N", variable)) |>
  
  arrange(desc(date)) |>
  ggplot() + geom_line(aes(x = date, y = value/100, color = Variable)) +
  
  theme_minimal() +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 5), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.4, 0.17),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  xlab("") + ylab("Taux de rémunération annuel (%)") +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, 1),
                labels = percent_format(accuracy = 1))

Livrets réglementés

Tous

Code
MIR1 |>
  filter(grepl("MIR1.M.FR.B.L23FRLA.D.R.A.2230U6.EUR.O", variable) |
           grepl("MIR1.M.FR.B.L23RJ.A.R.A.2300.EUR.O", variable) |
           grepl("MIR1.M.FR.B.L23FRLJ.A.R.A.2250U6.EUR.O", variable) |
           grepl("MIR1.M.FR.B.L23FRLP.H.R.A.2250U6.EUR.O", variable) |
           grepl("MIR1.M.FR.B.L22FRSP.H.R.A.2250U6.EUR.N", variable)) |>
  
  arrange(desc(date)) |>
  ggplot() + geom_line(aes(x = date, y = value/100, color = Variable)) +
  
  theme_minimal() +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 5), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.4, 0.17),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  xlab("") + ylab("Taux de rémunération annuel (%)") +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, 1),
                labels = percent_format(accuracy = 1))

2000-

Code
MIR1 |>
  filter(grepl("MIR1.M.FR.B.L23FRLA.D.R.A.2230U6.EUR.O", variable) |
           grepl("MIR1.M.FR.B.L23RJ.A.R.A.2300.EUR.O", variable) |
           grepl("MIR1.M.FR.B.L23FRLJ.A.R.A.2250U6.EUR.O", variable) |
           grepl("MIR1.M.FR.B.L23FRLP.H.R.A.2250U6.EUR.O", variable) |
           grepl("MIR1.M.FR.B.L22FRSP.H.R.A.2250U6.EUR.N", variable)) |>
  
  arrange(desc(date)) |>
  filter(date >= as.Date("2000-01-01")) |>
  ggplot() + geom_line(aes(x = date, y = value/100, color = Variable)) +
  
  theme_minimal() +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.4, 0.85),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  xlab("") + ylab("Taux de rémunération annuel (%)") +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, 1),
                labels = percent_format(accuracy = 1))

2010-

Code
MIR1 |>
  filter(grepl("MIR1.M.FR.B.L23FRLA.D.R.A.2230U6.EUR.O", variable) |
           grepl("MIR1.M.FR.B.L23RJ.A.R.A.2300.EUR.O", variable) |
           grepl("MIR1.M.FR.B.L23FRLJ.A.R.A.2250U6.EUR.O", variable) |
           grepl("MIR1.M.FR.B.L23FRLP.H.R.A.2250U6.EUR.O", variable) |
           grepl("MIR1.M.FR.B.L22FRSP.H.R.A.2250U6.EUR.N", variable)) |>
  
  arrange(desc(date)) |>
  filter(date >= as.Date("2010-01-01")) |>
  ggplot() + geom_line(aes(x = date, y = value/100, color = Variable)) +
  
  theme_minimal() +
  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") +
  xlab("") + ylab("Taux de rémunération annuel (%)") +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, 0.5),
                labels = percent_format(accuracy = .1))

2018-

Code
MIR1 |>
  filter(grepl("MIR1.M.FR.B.L23FRLA.D.R.A.2230U6.EUR.O", variable) |
           grepl("MIR1.M.FR.B.L23RJ.A.R.A.2300.EUR.O", variable) |
           grepl("MIR1.M.FR.B.L23FRLJ.A.R.A.2250U6.EUR.O", variable) |
           grepl("MIR1.M.FR.B.L23FRLP.H.R.A.2250U6.EUR.O", variable) |
           grepl("MIR1.M.FR.B.L22FRSP.H.R.A.2250U6.EUR.N", variable)) |>
  
  arrange(desc(date)) |>
  filter(date >= as.Date("2018-01-01")) |>
  ggplot() + geom_line(aes(x = date, y = value/100, color = Variable)) +
  
  theme_minimal() +
  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") +
  xlab("") + ylab("Taux de rémunération annuel (%)") +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, 0.5),
                labels = percent_format(accuracy = .1))

Taux crédits habitat

Tous

Code
# MIR1.M.FR.B.A22FRF.A.R.A.2254U6.EUR.N - Crédits nouveaux à l'habitat à taux fixe aux particuliers, taux d'intérêt, en %
# MIR1.M.FR.B.A22FRV.A.R.A.2254U6.EUR.N - Crédits nouveaux à l'habitat à taux variable aux particuliers, taux d'intérêt, en %
# MIR1.M.FR.B.A22HR.A.R.A.2254U6.EUR.N - Taux des crédits nouveaux à l'habitat (hors négociations) aux particuliers
MIR1 |>
  
  filter(FREQ == "M",
         REF_AREA == "FR",
         BS_REP_SECTOR == "B",
         BS_ITEM == "A2C",
         DATA_TYPE_MIR == "R",
         AMOUNT_CAT == "A",
         BS_COUNT_SECTOR == "2250U6",
         CURRENCY_TRANS == "EUR",
         IR_BUS_COV == "N") |>
  
  ggplot() + geom_line(aes(x = date, y = value/100, color = Maturity_orig)) +
  
  theme_minimal() + xlab("") + ylab("Taux d'intérêt (%)") +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.35, 0.15),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, 1),
                labels = percent_format(accuracy = 1))

Tous

Code
MIR1 |>
  filter(grepl("MIR1.M.FR.B.A22.K.R.A.2254U6.EUR.N", variable) |
           grepl("MIR1.M.FR.B.A22.F.R.A.2254U6.EUR.N", variable) |
           grepl("MIR1.M.FR.B.A22.A.R.A.2254U6.EUR.N", variable)) |>
  
  ggplot() + geom_line(aes(x = date, y = value/100, color = Variable)) +
  
  theme_minimal() +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.35, 0.15),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  xlab("") + ylab("Taux d'intérêt (%)") +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, 1),
                labels = percent_format(accuracy = 1))

2016-

Code
MIR1 |>
  filter(grepl("MIR1.M.FR.B.A22.K.R.A.2254U6.EUR.N", variable) |
           grepl("MIR1.M.FR.B.A22.F.R.A.2254U6.EUR.N", variable) |
           grepl("MIR1.M.FR.B.A22.A.R.A.2254U6.EUR.N", variable)) |>
  
  filter(date >= as.Date("2016-01-01")) |>
  ggplot() + geom_line(aes(x = date, y = value/100, color = Variable)) +
  
  theme_minimal() +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 1), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.4, 0.85),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  xlab("") + ylab("Taux d'intérêt (%)") +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, .1),
                labels = percent_format(accuracy = .1))

2018-

Code
MIR1 |>
  filter(grepl("MIR1.M.FR.B.A22.K.R.A.2254U6.EUR.N", variable) |
           grepl("MIR1.M.FR.B.A22.F.R.A.2254U6.EUR.N", variable) |
           grepl("MIR1.M.FR.B.A22.A.R.A.2254U6.EUR.N", variable)) |>
  
  filter(date >= as.Date("2018-01-01")) |>
  ggplot() + geom_line(aes(x = date, y = value/100, color = Variable)) +
  
  theme_minimal() +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 1), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.4, 0.85),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  xlab("") + ylab("Taux d'intérêt (%)") +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, .1),
                labels = percent_format(accuracy = .1))

Taux de rémunération des dépôts + immobilier

Tous

Code
MIR1 |>
  filter(grepl("MIR1.M.FR.A.N30.A.R.A.2230U6.EUR.O", variable) |
           grepl("MIR1.M.FR.B.A22.A.R.A.2254U6.EUR.N", variable) |
           grepl("MIR1.M.FR.B.L21.A.R.A.2230U6.EUR.O", variable)) |>
  
  ggplot() + geom_line(aes(x = date, y = value/100, color = Variable)) +
  
  theme_minimal() +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.55, 0.9),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  xlab("") + ylab("Taux d'intérêt (%)") +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, 1),
                labels = percent_format(accuracy = 1),
                limits = c(0, 0.07))

Part des renégociations

Code
MIR1 |>
  filter(grepl("MIR1.M.FR.B.A22PR.A.W.A.2254FR.EUR.N", variable)) |>
  
  na.omit() |>
  ggplot() + geom_line(aes(x = date, y = value/100)) +
  theme_minimal() +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 1), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.35, 0.15),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  xlab("") + ylab("Part des renégo dans le total des crédits à l'habitat (%)") +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, 5),
                labels = percent_format(accuracy = 1))

Volumes de crédit

Crédits à la consommation

Code
MIR1 |>
  filter(grepl("MIR1.M.FR.B.A2Z.A.R.A.2254U6.EUR.N", variable) |
           grepl("MIR1.M.FR.B.A2B.A.R.A.2254U6.EUR.N", variable)) |>
  
  ggplot() + geom_line(aes(x = date, y = value/100, color = Variable)) +
  
  theme_minimal() +
  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") +
  xlab("") + ylab("Taux d'intérêt (%)") +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, 1),
                labels = percent_format(accuracy = 1),
                limits = c(0.03, 0.15))

Crédits nouveaux à l’habitat

Tous

Code
MIR1 |>
  filter(grepl("MIR1.M.FR.B.A22HR.A.5.A.2254U6.EUR.N", variable) |
           grepl("MIR1.M.FR.B.A22.A.5.A.2254U6.EUR.N", variable)) |>
  
  ggplot() + geom_line(aes(x = date, y = value, color = Variable)) +
  
  theme_minimal() +
  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") +
  xlab("") + ylab("") +
  scale_y_continuous(breaks = seq(0, 100, 2))

2015-

Code
MIR1 |>
  filter(grepl("MIR1.M.FR.B.A22HR.A.5.A.2254U6.EUR.N", variable) |
           grepl("MIR1.M.FR.B.A22.A.5.A.2254U6.EUR.N", variable)) |>
  
  filter(date >= as.Date("2015-01-01")) |>
  ggplot() + geom_line(aes(x = date, y = value, color = Variable)) +
  
  theme_minimal() +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 1), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.5, 0.9),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  xlab("") + ylab("") +
  scale_y_continuous(breaks = seq(0, 100, 2))

Taux d’usure

2017-

Code
MIR1 |>
  filter(grepl("MIR1.Q.FR.R.A22FRF.Q.U.A.2254FR.EUR.N", variable) |
           grepl("MIR1.Q.FR.R.A22FRF.R.U.A.2254FR.EUR.N", variable) |
           grepl("MIR1.Q.FR.R.A22FRF.S.U.A.2254FR.EUR.N", variable)) |>
  
  ggplot() + geom_line(aes(x = date, y = value/100, color = Variable)) +
  theme_minimal() +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 1), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.5, 0.9),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  xlab("") + ylab("Taux d'intérêt (%)") +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, 0.1),
                labels = percent_format(accuracy = .1))