Marché financier, taux

Data - BDF

Info

LAST_COMPILE

source dataset .html .RData
bdf FM 2025-08-25 2025-08-28

Last

date Nobs
2025-08-27 10

FREQ Frequency

Code
FM %>%
  left_join(FM_var, by = "variable") %>%
  left_join(FREQ, by = "FREQ") %>%
  group_by(FREQ, Freq) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional()
FREQ Freq Nobs
D Daily 176923
M Monthly 9557
NA NA 248

INSTRUMENT_FM

Code
FM %>%
  left_join(FM_var, by = "variable") %>%
  left_join(INSTRUMENT_FM, by = "INSTRUMENT_FM") %>%
  group_by(INSTRUMENT_FM, Instrument_fm) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional()
INSTRUMENT_FM Instrument_fm Nobs
BB Benchmark bond 81913
MR Money market rates 37980
KR Key ECB interest rate 30075
MM Money Market 16406
TR Reference rate 12996
LIR NA 6938
NA NA 248
MF Money market funds 172

PROVIDER_FM

Code
FM %>%
  left_join(FM_var, by = "variable") %>%
  left_join(PROVIDER_FM, by = "PROVIDER_FM") %>%
  group_by(PROVIDER_FM, Provider_fm) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional()
PROVIDER_FM Provider_fm Nobs
FR2 Banque de France 155943
4F ECB 30075
FR6 Caisse des Depots et Consignations 462
NA NA 248

PROVIDER_FM_ID

Code
FM %>%
  left_join(FM_var, by = "variable") %>%
  left_join(PROVIDER_FM_ID, by = "PROVIDER_FM_ID") %>%
  group_by(PROVIDER_FM_ID, Provider_fm_id) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional()

Taux d’intérêt

BCE - Facilité de dépôt, refinancements

All

Code
FM %>%
  filter(grepl("FM.D.U2.EUR.4F.KR.MRR_FR.LEV", variable) |
           grepl("FM.D.U2.EUR.4F.KR.MLFR.LEV", variable) |
           grepl("FM.D.U2.EUR.4F.KR.DFR.LEV", variable)) %>%
  left_join(variable, by = "variable") %>%
  ggplot + geom_line(aes(x = date, y = value/100, color = Variable)) +
  
  theme_minimal() + xlab("") + ylab("Taux d'intérêt (%)") +
  scale_x_date(breaks = as.Date(paste0(seq(1960,2100, 5), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.35, 0.1),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, 1),
                labels = percent_format(accuracy = 1))

2022-

Code
FM %>%
  filter(grepl("FM.D.U2.EUR.4F.KR.MRR_FR.LEV", variable) |
           grepl("FM.D.U2.EUR.4F.KR.MLFR.LEV", variable) |
           grepl("FM.D.U2.EUR.4F.KR.DFR.LEV", variable)) %>%
  filter(date >= as.Date("2022-01-01")) %>%
  left_join(variable, by = "variable") %>%
  ggplot + geom_line(aes(x = date, y = value/100, color = Variable)) +
  
  theme_minimal() + xlab("") + ylab("Taux d'intérêt (%)") +
  scale_x_date(breaks = "1 month",
               labels = date_format("%b %Y")) +
  theme(legend.position = c(0.3, 0.9),
        legend.title = element_blank(),
        legend.direction = "vertical",
        axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, 1),
                labels = percent_format(accuracy = 1))

Bons du Trésor

10 ans, 5 ans

Tous

Code
FM %>%
  left_join(FM_var, by = "variable") %>%
  filter(PROVIDER_FM_ID %in% c("FRMOYTEC10", "FRMOYTEC5"),
          FREQ == "D") %>%
  select_if(function(col) length(unique(col)) > 1) %>%
  ggplot + geom_line(aes(x = date, y = value/100, color = Variable)) +
  
  theme_minimal() + xlab("") + ylab("Taux d'intérêt (%)") +
  scale_x_date(breaks = as.Date(paste0(seq(1960,2100, 1), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.7, 0.9),
        legend.title = element_blank(),
        legend.direction = "vertical",
        axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, .2),
                labels = percent_format(accuracy = .1)) +
  geom_hline(yintercept =  0, linetype = "dashed") +
  geom_label(data = . %>% filter(date == max(date)),
             aes(x = date, y = value/100, label = percent(value/100), color = Variable))

2018-

Code
FM %>%
  left_join(FM_var, by = "variable") %>%
  filter(PROVIDER_FM_ID %in% c("FRMOYTEC10", "FRMOYTEC5"),
         date >= as.Date("2018-01-01"),
          FREQ == "D") %>%
  select_if(function(col) length(unique(col)) > 1) %>%
  ggplot + geom_line(aes(x = date, y = value/100, color = Variable)) +
  
  theme_minimal() + xlab("") + ylab("Taux d'intérêt (%)") +
  scale_x_date(breaks = as.Date(paste0(seq(1960,2100, 1), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.2, 0.9),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, .2),
                labels = percent_format(accuracy = .1)) +
  geom_hline(yintercept =  0, linetype = "dashed") +
  geom_label(data = . %>% filter(date == max(date)),
             aes(x = date, y = value/100, label = percent(value/100), color = Variable))

March 2020-

Code
FM %>%
  left_join(FM_var, by = "variable") %>%
  filter(PROVIDER_FM_ID %in% c("FRMOYTEC10", "FRMOYTEC5"),
         date >= as.Date("2020-01-01"),
          FREQ == "D") %>%
  ggplot + geom_line(aes(x = date, y = value/100, color = Variable)) +
  
  theme_minimal() + xlab("") + ylab("Taux d'intérêt (%)") +
  scale_x_date(breaks = "3 months",
               labels = date_format("%b %y")) +
  theme(legend.position = c(0.2, 0.9),
        legend.title = element_blank(),
        legend.direction = "vertical",
        axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, .2),
                labels = percent_format(accuracy = .1)) +
  geom_hline(yintercept =  0, linetype = "dashed") +
  geom_label(data = . %>% filter(date == max(date)),
             aes(x = date, y = value/100, label = percent(value/100), color = Variable))

2021-

Code
FM %>%
  left_join(FM_var, by = "variable") %>%
  filter(PROVIDER_FM_ID %in% c("FRMOYTEC10", "FRMOYTEC5"),
         date >= as.Date("2021-01-01"),
          FREQ == "D") %>%
  arrange(desc(date)) %>%
  ggplot + geom_line(aes(x = date, y = value/100, color = Variable)) +
  
  theme_minimal() + xlab("") + ylab("Taux d'intérêt (%)") +
  scale_x_date(breaks = "2 months",
               labels = date_format("%b %y")) +
  theme(legend.position = c(0.2, 0.9),
        legend.title = element_blank(),
        legend.direction = "vertical",
        axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, .2),
                labels = percent_format(accuracy = .1)) +
  geom_hline(yintercept =  0, linetype = "dashed") +
  geom_label(data = . %>% filter(date == max(date)),
             aes(x = date, y = value/100, label = percent(value/100), color = Variable))

2 years

Code
FM %>%
  left_join(FM_var, by = "variable") %>%
  filter(PROVIDER_FM_ID %in% c("FRMOYTEC10", "FRMOYTEC5"),
         date >= Sys.Date() - years(2),
          FREQ == "D") %>%
  arrange(desc(date)) %>%
  ggplot + geom_line(aes(x = date, y = value/100, color = Variable)) +
  
  theme_minimal() + xlab("") + ylab("Taux d'intérêt (%)") +
  scale_x_date(breaks = "1 month",
               labels = date_format("%b %y")) +
  theme(legend.position = c(0.2, 0.9),
        legend.title = element_blank(),
        legend.direction = "vertical",
        axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, .5),
                labels = percent_format(accuracy = .1)) +
  geom_hline(yintercept =  0, linetype = "dashed")

30 ans, 10 ans, 1 mois

Tous

Code
FM %>%
  left_join(FM_var, by = "variable") %>%
  filter(PROVIDER_FM_ID %in% c("FRMOYTEC30", "FRMOYTEC10"),
         date >= as.Date("2018-01-01"),
          FREQ == "D") %>%
  #select_if(function(col) length(unique(col)) > 1) %>%
  ggplot + geom_line(aes(x = date, y = value/100, color = Variable)) +
  
  theme_minimal() + xlab("") + ylab("Taux d'intérêt (%)") +
  scale_x_date(breaks = as.Date(paste0(seq(1960,2100, 1), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.2, 0.9),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, .2),
                labels = percent_format(accuracy = .1)) +
  geom_hline(yintercept =  0, linetype = "dashed")

30 ans

Tous

Code
FM %>%
  left_join(FM_var, by = "variable") %>%
  filter(PROVIDER_FM_ID %in% c("FRMOYTEC30"),
         date >= as.Date("2018-01-01"),
          FREQ == "D") %>%
  #select_if(function(col) length(unique(col)) > 1) %>%
  ggplot + geom_line(aes(x = date, y = value/100, color = Variable)) +
  
  theme_minimal() + xlab("") + ylab("Taux d'intérêt (%)") +
  scale_x_date(breaks = as.Date(paste0(seq(1960,2100, 1), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.2, 0.9),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, .2),
                labels = percent_format(accuracy = .1)) +
  geom_hline(yintercept =  0, linetype = "dashed")

30 ans, 10 ans, 5 ans

Tous

Code
FM %>%
  left_join(FM_var, by = "variable") %>%
  filter(PROVIDER_FM_ID %in% c("FRMOYTEC10", "FRMOYTEC5", "FRMOYTEC30"),
         date >= as.Date("2018-01-01"),
          FREQ == "D") %>%
  select_if(function(col) length(unique(col)) > 1) %>%
  ggplot + geom_line(aes(x = date, y = value/100, color = Variable)) +
  
  theme_minimal() + xlab("") + ylab("Taux d'intérêt (%)") +
  scale_x_date(breaks = as.Date(paste0(seq(1960,2100, 1), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.2, 0.9),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, .2),
                labels = percent_format(accuracy = .1)) +
  geom_hline(yintercept =  0, linetype = "dashed")

March 2020-

Code
FM %>%
  left_join(FM_var, by = "variable") %>%
  filter(PROVIDER_FM_ID %in% c("FRMOYTEC10", "FRMOYTEC5", "FRMOYTEC30"),
         date >= as.Date("2020-01-01"),
          FREQ == "D") %>%
  ggplot + geom_line(aes(x = date, y = value/100, color = Variable)) +
  
  theme_minimal() + xlab("") + ylab("Taux d'intérêt (%)") +
  scale_x_date(breaks = "3 months",
               labels = date_format("%b %y")) +
  theme(legend.position = c(0.2, 0.9),
        legend.title = element_blank(),
        legend.direction = "vertical",
        axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, .2),
                labels = percent_format(accuracy = .1)) +
  geom_hline(yintercept =  0, linetype = "dashed")

2021-

Code
FM %>%
  left_join(FM_var, by = "variable") %>%
  filter(PROVIDER_FM_ID %in% c("FRMOYTEC10", "FRMOYTEC5", "FRMOYTEC30"),
         date >= as.Date("2021-01-01"),
          FREQ == "D") %>%
  arrange(desc(date)) %>%
  ggplot + geom_line(aes(x = date, y = value/100, color = Variable)) +
  
  theme_minimal() + xlab("") + ylab("Taux d'intérêt (%)") +
  scale_x_date(breaks = "2 months",
               labels = date_format("%b %y")) +
  theme(legend.position = c(0.2, 0.9),
        legend.title = element_blank(),
        legend.direction = "vertical",
        axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, .2),
                labels = percent_format(accuracy = .1)) +
  geom_hline(yintercept =  0, linetype = "dashed")

2 years

Code
FM %>%
  left_join(FM_var, by = "variable") %>%
  filter(PROVIDER_FM_ID %in% c("FRMOYTEC10", "FRMOYTEC5", "FRMOYTEC30"),
         date >= Sys.Date() - years(2),
          FREQ == "D") %>%
  arrange(desc(date)) %>%
  ggplot + geom_line(aes(x = date, y = value/100, color = Variable)) +
  
  theme_minimal() + xlab("") + ylab("Taux d'intérêt (%)") +
  scale_x_date(breaks = "1 month",
               labels = date_format("%b %y")) +
  theme(legend.position = c(0.2, 0.9),
        legend.title = element_blank(),
        legend.direction = "vertical",
        axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, .5),
                labels = percent_format(accuracy = .1)) +
  geom_hline(yintercept =  0, linetype = "dashed")

1 an, 5 ans, 10 ans

Tous

Code
FM %>%
  left_join(FM_var, by = "variable") %>%
  filter(PROVIDER_FM_ID %in% c("FRMOYTEC10", "FRMOYTEC5", "FRMOYTEC1"),
         date >= as.Date("2018-01-01"),
          FREQ == "D") %>%
  select_if(function(col) length(unique(col)) > 1) %>%
  ggplot + geom_line(aes(x = date, y = value/100, color = Variable)) +
  
  theme_minimal() + xlab("") + ylab("Taux d'intérêt (%)") +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2030, 1), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.35, 0.9),
        legend.title = element_blank(),
        legend.direction = "vertical") +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, .2),
                labels = percent_format(accuracy = .1)) +
  geom_hline(yintercept =  0, linetype = "dashed")

March 2020-

Code
FM %>%
  left_join(FM_var, by = "variable") %>%
  filter(PROVIDER_FM_ID %in% c("FRMOYTEC10", "FRMOYTEC5", "FRMOYTEC1"),
         date >= as.Date("2020-03-01"),
          FREQ == "D") %>%
  ggplot + geom_line(aes(x = date, y = value/100, color = Variable)) +
  
  theme_minimal() + xlab("") + ylab("Taux d'intérêt (%)") +
  scale_x_date(breaks = "3 months",
               labels = date_format("%b %y")) +
  theme(legend.position = c(0.3, 0.9),
        legend.title = element_blank(),
        legend.direction = "vertical",
        axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, .2),
                labels = percent_format(accuracy = .1)) +
  geom_hline(yintercept =  0, linetype = "dashed")

2021-

Code
FM %>%
  left_join(FM_var, by = "variable") %>%
  filter(PROVIDER_FM_ID %in% c("FRMOYTEC10", "FRMOYTEC5", "FRMOYTEC1"),
         date >= as.Date("2021-01-01"),
          FREQ == "D") %>%
  arrange(desc(date)) %>%
  ggplot + geom_line(aes(x = date, y = value/100, color = Variable)) +
  
  theme_minimal() + xlab("") + ylab("Taux d'intérêt (%)") +
  scale_x_date(breaks = "2 months",
               labels = date_format("%b %y")) +
  theme(legend.position = c(0.3, 0.9),
        legend.title = element_blank(),
        legend.direction = "vertical",
        axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, .2),
                labels = percent_format(accuracy = .1)) +
  geom_hline(yintercept =  0, linetype = "dashed")

2 years

Code
FM %>%
  left_join(FM_var, by = "variable") %>%
  filter(PROVIDER_FM_ID %in% c("FRMOYTEC10", "FRMOYTEC5", "FRMOYTEC1"),
         date >= Sys.Date() - years(2),
          FREQ == "D") %>%
  arrange(desc(date)) %>%
  ggplot + geom_line(aes(x = date, y = value/100, color = Variable)) +
  
  theme_minimal() + xlab("") + ylab("Taux d'intérêt (%)") +
  scale_x_date(breaks = "1 month",
               labels = date_format("%b %y")) +
  theme(legend.position = c(0.25, 0.9),
        legend.title = element_blank(),
        legend.direction = "vertical",
        axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, .5),
                labels = percent_format(accuracy = .1)) +
  geom_hline(yintercept =  0, linetype = "dashed")

Pour en savoir plus…

Données sur les taux d’intérêt

source dataset .html .RData
bdf FM 2025-08-25 2025-08-28
bdf MIR 2025-08-25 2025-08-04
bdf MIR1 2025-08-25 2025-08-04
bis CBPOL_D 2025-08-25 2025-08-20
bis CBPOL_M 2025-08-25 2024-04-19
ecb FM 2025-08-26 2025-08-26
ecb MIR 2025-08-26 2025-08-24

Données sur l’immobilier

source dataset .html .RData
acpr as151 2025-08-24 2024-04-05
bdf BSI1 2025-08-28 2025-08-24
bdf CPP 2025-08-28 2024-07-01
bdf FM 2025-08-25 2025-08-28
bdf immobilier 2025-08-24 2025-08-28
bdf MIR 2025-08-25 2025-08-04
bdf MIR1 2025-08-25 2025-08-04
bdf RPP 2025-08-24 2025-08-24
cgedd nombre-vente-maison-appartement-ancien 2024-09-26 2024-09-26
insee CONSTRUCTION-LOGEMENTS 2025-08-26 2025-08-24
insee ENQ-CONJ-ART-BAT 2025-08-26 2025-08-24
insee ENQ-CONJ-IND-BAT 2025-08-26 2025-08-24
insee ENQ-CONJ-PROMO-IMMO 2025-08-26 2025-08-24
insee ENQ-CONJ-TP 2025-08-26 2025-08-24
insee ILC-ILAT-ICC 2025-08-26 2025-08-24
insee INDICES_LOYERS 2025-08-26 2025-08-24
insee IPLA-IPLNA-2015 2025-08-26 2025-08-24
insee IRL 2025-08-26 2025-08-24
insee PARC-LOGEMENTS 2025-08-26 2023-12-03
insee SERIES_LOYERS 2025-08-26 2025-08-24
insee t_dpe_val 2025-08-26 2025-05-28
notaires arrdt 2025-03-27 2025-03-27
notaires dep 2025-03-27 2025-03-27