Last observation: Q: 2026-09-30 (N = 19) · M: 2026-08-31 (N = 5)
First observation: M: 1966-01-31 (N = 2) · Q: 1984-06-30 (N = 20)
Last data update: 28 août 2026, 19:08. Last compile: 30 août 2026, 10:27
Data - Banque de France
Last observation: Q: 2026-09-30 (N = 19) · M: 2026-08-31 (N = 5)
First observation: M: 1966-01-31 (N = 2) · Q: 1984-06-30 (N = 20)
Last data update: 28 août 2026, 19:08. Last compile: 30 août 2026, 10:27
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 |
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("Interest rate (%)") +
scale_y_continuous(breaks = 0.01*seq(-10, 100, .1),
labels = percent_format(accuracy = .1))
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 | 282 |
| MIR1.M.FR.B.A22.A.5.A.2254U6.EUR.N | Crédits nouveaux à l'habitat des particuliers, flux CVS | 282 |
| 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 | 282 |
| MIR1.M.FR.B.A22.A.R.A.2254U6.EUR.N | Crédits nouveaux à l'habitat des particuliers, taux d'intérêt annuel | 331 |
| 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 | 282 |
| 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 | 282 |
| 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 | 282 |
| 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 | 282 |
| 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 | 282 |
| 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 | 282 |
| 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 | 282 |
-Info. html
MIR1 |>
filter(BS_COUNT_SECTOR == "2240U6") |>
group_by(Variable) |>
summarise(Nobs = n(),
date = last(date),
value = last(value)) |>
print_table_conditional()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("Interest rate (%)") +
scale_y_continuous(breaks = 0.01*seq(-10, 100, 1),
labels = percent_format(accuracy = 1))
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("Interest rate (%)") +
scale_y_continuous(breaks = 0.01*seq(-10, 100, 0.5),
labels = percent_format(accuracy = .1))
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("Interest rate (%)") +
scale_y_continuous(breaks = 0.01*seq(-10, 100, 1),
labels = percent_format(accuracy = 1))
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("Annual remuneration rate (%)") +
scale_y_continuous(breaks = 0.01*seq(-10, 100, 1),
labels = percent_format(accuracy = 1))
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("Annual remuneration rate (%)") +
scale_y_continuous(breaks = 0.01*seq(-10, 100, 1),
labels = percent_format(accuracy = 1))
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("Annual remuneration rate (%)") +
scale_y_continuous(breaks = 0.01*seq(-10, 100, 1),
labels = percent_format(accuracy = 1))
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("Annual remuneration rate (%)") +
scale_y_continuous(breaks = 0.01*seq(-10, 100, 0.5),
labels = percent_format(accuracy = .1))
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("Annual remuneration rate (%)") +
scale_y_continuous(breaks = 0.01*seq(-10, 100, 0.5),
labels = percent_format(accuracy = .1))
# MIR1.M.FR.B.A22FRF.A.R.A.2254U6.EUR.N - New fixed-rate housing loans to households, interest rate, in %
# MIR1.M.FR.B.A22FRV.A.R.A.2254U6.EUR.N - New variable-rate housing loans to households, interest rate, in %
# MIR1.M.FR.B.A22HR.A.R.A.2254U6.EUR.N - Rate on new housing loans (excluding renegotiations) to households
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("Interest rate (%)") +
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))
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("Interest rate (%)") +
scale_y_continuous(breaks = 0.01*seq(-10, 100, 1),
labels = percent_format(accuracy = 1))
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("Interest rate (%)") +
scale_y_continuous(breaks = 0.01*seq(-10, 100, .1),
labels = percent_format(accuracy = .1))
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("Interest rate (%)") +
scale_y_continuous(breaks = 0.01*seq(-10, 100, .1),
labels = percent_format(accuracy = .1))
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("Interest rate (%)") +
scale_y_continuous(breaks = 0.01*seq(-10, 100, 1),
labels = percent_format(accuracy = 1),
limits = c(0, 0.07))
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("Interest rate (%)") +
scale_y_continuous(breaks = 0.01*seq(-10, 100, 1),
labels = percent_format(accuracy = 1),
limits = c(0.03, 0.15))
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))
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))
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("Interest rate (%)") +
scale_y_continuous(breaks = 0.01*seq(-10, 100, 0.1),
labels = percent_format(accuracy = .1))