Info
Last observation: Monthly: 2026-06 (N = 373) · Quarterly: 2026-Q2 (N = 6)
First observation: Monthly: 1997-09 (N = 62) · Quarterly: 1997-Q3 (N = 34)
Last data update: 13 aoû 2026, 06:21. Last compile: 13 aoû 2026, 08:35
Info
| ecb |
RAI |
Risk Assessment Indicators |
2026-08-12 |
2026-08-11 |
- Data Structure Definition. (DSD) html
| bdf |
FM |
Marché financier, taux |
2026-08-11 |
2026-08-10 |
| bdf |
MIR |
Taux d'intérêt - Zone euro |
2026-08-11 |
2026-08-10 |
| bdf |
MIR1 |
Taux d'intérêt - France |
2026-08-11 |
2026-08-10 |
| bis |
CBPOL |
Policy Rates, Daily |
2026-08-11 |
2026-07-25 |
| ecb |
BSI |
Balance Sheet Items |
2026-08-12 |
2026-08-11 |
| ecb |
BSI_PUB |
Balance Sheet Items - Published series |
2026-08-12 |
2026-08-11 |
| ecb |
FM |
Financial market data |
2026-08-12 |
2026-08-11 |
| ecb |
ILM |
Internal Liquidity Management |
2026-08-12 |
2026-08-11 |
| ecb |
ILM_PUB |
Internal Liquidity Management - Published series |
2026-08-12 |
2026-08-11 |
| ecb |
MIR |
MFI Interest Rate Statistics |
2026-08-12 |
2026-08-11 |
| ecb |
RAI |
Risk Assessment Indicators |
2026-08-12 |
2026-08-11 |
| ecb |
SUP |
Supervisory Banking Statistics |
2026-08-12 |
2026-08-12 |
| ecb |
YC |
Financial market data - yield curve |
2026-08-12 |
2026-08-12 |
| ecb |
YC_PUB |
Financial market data - yield curve - Published series |
2026-08-12 |
2026-08-12 |
| ecb |
liq_daily |
Daily Liquidity |
2026-08-12 |
2026-08-12 |
| eurostat |
ei_mfir_m |
Interest rates - monthly data |
2026-08-11 |
2026-08-11 |
| eurostat |
irt_st_m |
Money market interest rates - monthly data |
2026-08-11 |
2026-08-11 |
| fred |
r |
Interest Rates |
2026-08-11 |
2026-08-11 |
| oecd |
MEI |
Main Economic Indicators |
2026-08-11 |
2026-08-02 |
| oecd |
MEI_FIN |
Monthly Monetary and Financial Statistics (MEI) |
2026-08-11 |
2026-08-02 |
| bdf |
FM |
Marché financier, taux |
2026-08-11 |
2026-08-10 |
| bdf |
MIR |
Taux d'intérêt - Zone euro |
2026-08-11 |
2026-08-10 |
| bdf |
MIR1 |
Taux d'intérêt - France |
2026-08-11 |
2026-08-10 |
| bis |
CBPOL_D |
Policy Rates, Daily |
2026-08-11 |
2026-08-01 |
| bis |
CBPOL_M |
Policy Rates, Monthly |
2026-08-11 |
2026-07-25 |
| ecb |
FM |
Financial market data |
2026-08-12 |
2026-08-11 |
| ecb |
MIR |
MFI Interest Rate Statistics |
2026-08-12 |
2026-08-11 |
| eurostat |
ei_mfir_m |
Interest rates - monthly data |
2026-08-11 |
2026-08-11 |
| eurostat |
irt_lt_mcby_d |
EMU convergence criterion series - daily data |
2026-08-11 |
2026-08-02 |
| eurostat |
irt_st_m |
Money market interest rates - monthly data |
2026-08-11 |
2026-08-11 |
| fred |
r |
Interest Rates |
2026-08-11 |
2026-08-11 |
| oecd |
MEI |
Main Economic Indicators |
2026-08-11 |
2026-08-02 |
| oecd |
MEI_FIN |
Monthly Monetary and Financial Statistics (MEI) |
2026-08-11 |
2026-08-02 |
| wdi |
FR.INR.DPST |
Deposit interest rate (%) |
2026-08-11 |
2026-08-11 |
| wdi |
FR.INR.LEND |
Lending interest rate (%) |
2026-08-11 |
2026-08-11 |
| wdi |
FR.INR.RINR |
Real interest rate (%) |
2026-08-11 |
2026-08-11 |
Last
| 2026-Q2 |
Q |
6 |
| 2026-06 |
M |
373 |
REF_AREA
Code
RAI |>
group_by(REF_AREA, Ref_area) |>
summarise(Nobs = n()) |>
arrange(-Nobs) |>
mutate(Flag = gsub(" ", "-", str_to_lower(gsub(" ", "-", Ref_area))),
Flag = paste0('<img src="../../icon/flag/vsmall/', Flag, '.png" alt="Flag">')) |>
select(Flag, everything()) %>%
{if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}
Table: Average 2016-2022
Code
RAI |>
filter(FREQ == "M") |>
month_to_date() |>
filter(date >= as.Date("2016-01-01")) |>
group_by(DD_ECON_CONCEPT, Dd_econ_concept, REF_AREA, Ref_area) |>
summarise(OBS_VALUE = mean(OBS_VALUE),
Nobs = n()) |>
print_table_conditional()
France
Table
Code
RAI |>
filter(FREQ == "M",
REF_AREA %in% c("FR", "U2")) %>%
select_if(~ n_distinct(.) > 1) |>
group_by(DD_ECON_CONCEPT, Ref_area) |>
filter(TIME_PERIOD == max(TIME_PERIOD)) |>
select(Ref_area, DD_ECON_CONCEPT, OBS_VALUE) |>
spread(Ref_area, OBS_VALUE) |>
arrange(-`France`) |>
print_table_conditional()
| MMTCH |
77.45288 |
78.5620491 |
| ST1TMF |
69.12145 |
77.2836957 |
| SVLHHNFC |
65.33391 |
39.6302409 |
| IBL1TL |
24.57754 |
36.8220865 |
| LC1DHHS |
NA |
36.1612922 |
| NDEPFUN |
14.70936 |
15.6072303 |
| LEVR |
8.29728 |
7.1648895 |
| GRNLHHNFC |
NA |
6.5304169 |
| SVLHPHH |
15.54764 |
4.5252390 |
| CT1DGGV |
NA |
4.3746499 |
| LMGLNFC |
NA |
1.2041777 |
| LMGBLNFCH |
NA |
1.0524114 |
| LMGLHH |
NA |
0.7090474 |
| LMGOLNFCH |
NA |
0.2576619 |
SVLHHNFC, LC1DHHS
Code
RAI |>
filter(DD_ECON_CONCEPT %in% c("SVLHHNFC", "LC1DHHS"),
REF_AREA %in% c("FR", "U2")) |>
month_to_date() %>%
select_if(~n_distinct(.) > 1) |>
mutate(Ref_area = ifelse(REF_AREA == "U2", "Europe", Ref_area)) |>
left_join(colors, by = c("Ref_area" = "country")) |>
mutate(OBS_VALUE = OBS_VALUE/100) |>
ggplot() + theme_minimal() + xlab("") + ylab("Share of variable rate") +
geom_line(aes(x = date, y = OBS_VALUE, color = color, linetype = Dd_econ_concept)) +
add_flags(3) + scale_color_identity() +
scale_x_date(breaks = seq(1960, 2100, 2) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
theme(legend.position = c(0.7, 0.9),
legend.title = element_blank()) +
scale_y_continuous(breaks = 0.01*seq(-10, 100, 5),
labels = percent_format(accuracy = 1))
CT1DGGV, SVLHPHH
Code
RAI |>
filter(DD_ECON_CONCEPT %in% c("CT1DGGV", "SVLHPHH"),
REF_AREA %in% c("FR", "U2")) |>
month_to_date() %>%
select_if(~n_distinct(.) > 1) |>
mutate(Ref_area = ifelse(REF_AREA == "U2", "Europe", Ref_area)) |>
left_join(colors, by = c("Ref_area" = "country")) |>
mutate(OBS_VALUE = OBS_VALUE/100) |>
ggplot() + theme_minimal() + xlab("") + ylab("Share of variable rate") +
geom_line(aes(x = date, y = OBS_VALUE, color = color, linetype = Dd_econ_concept)) +
add_flags(3) + scale_color_identity() +
scale_x_date(breaks = seq(1960, 2100, 2) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
theme(legend.position = c(0.7, 0.9),
legend.title = element_blank()) +
scale_y_continuous(breaks = 0.01*seq(-10, 100, 5),
labels = percent_format(accuracy = 1))
SVLHPHH - Share of floating rates, Households
Table: Last Time
Code
RAI |>
filter(DD_ECON_CONCEPT == "SVLHPHH") |>
filter(TIME_PERIOD == max(TIME_PERIOD)) |>
select_if(~n_distinct(.) > 1) |>
select(REF_AREA, Ref_area, OBS_VALUE, OBS_VALUE) |>
mutate(OBS_VALUE = round(OBS_VALUE, 1)) |>
mutate(Flag = gsub(" ", "-", str_to_lower(gsub(" ", "-", Ref_area))),
Flag = paste0('<img src="../../icon/flag/vsmall/', Flag, '.png" alt="Flag">')) |>
select(Flag, everything()) |>
arrange(OBS_VALUE) %>%
{if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}
Table: Many dates
Code
RAI |>
filter(DD_ECON_CONCEPT == "SVLHPHH",
TIME_PERIOD %in% c(last_time, "2020-01", "2015-01", "2010-01", "2005-01")) |>
select_if(~n_distinct(.) > 1) |>
select(REF_AREA, Ref_area, TIME_PERIOD, OBS_VALUE) |>
mutate(OBS_VALUE = round(OBS_VALUE, 1)) |>
spread(TIME_PERIOD, OBS_VALUE) |>
print_table_conditional()
| AT |
Austria |
65.7 |
76.2 |
87.3 |
40.6 |
17.7 |
| BE |
Belgium |
58.2 |
58.4 |
2.4 |
4.5 |
6.2 |
| BG |
Bulgaria |
NA |
96.2 |
84.0 |
97.3 |
99.6 |
| CY |
Cyprus |
NA |
61.7 |
95.1 |
90.7 |
10.9 |
| CZ |
Czech Republic |
NA |
NA |
7.2 |
2.1 |
3.5 |
| DE |
Germany |
19.1 |
21.6 |
13.2 |
11.6 |
12.4 |
| DK |
Denmark |
70.1 |
49.2 |
NA |
NA |
46.8 |
| EE |
Estonia |
99.3 |
56.7 |
85.4 |
NA |
98.1 |
| ES |
Spain |
93.1 |
90.1 |
66.6 |
32.1 |
8.1 |
| FI |
Finland |
97.8 |
97.5 |
96.8 |
97.6 |
95.0 |
| FR |
France |
36.5 |
12.8 |
3.8 |
1.9 |
4.5 |
| GR |
Greece |
84.4 |
72.2 |
93.1 |
70.2 |
20.5 |
| HR |
Croatia |
NA |
NA |
84.9 |
20.5 |
2.2 |
| HU |
Hungary |
58.1 |
84.4 |
44.1 |
2.1 |
8.1 |
| IE |
Ireland |
93.6 |
84.1 |
66.0 |
25.8 |
6.2 |
| IT |
Italy |
87.3 |
81.3 |
71.7 |
18.0 |
19.9 |
| LT |
Lithuania |
97.9 |
84.7 |
89.8 |
97.8 |
94.3 |
| LU |
Luxembourg |
88.5 |
NA |
63.9 |
30.1 |
52.0 |
| LV |
Latvia |
72.3 |
84.4 |
NA |
94.3 |
94.2 |
| MT |
Malta |
NA |
88.0 |
77.9 |
47.4 |
NA |
| NL |
Netherlands |
43.2 |
24.9 |
19.9 |
17.4 |
19.3 |
| PL |
Poland |
90.9 |
100.0 |
99.9 |
100.0 |
29.9 |
| PT |
Portugal |
97.8 |
99.5 |
93.0 |
86.7 |
15.3 |
| RO |
Romania |
NA |
NA |
89.9 |
73.6 |
23.7 |
| SE |
Sweden |
NA |
85.6 |
85.5 |
64.2 |
90.6 |
| SI |
Slovenia |
99.1 |
98.1 |
93.4 |
55.5 |
2.2 |
| SK |
Slovakia |
62.4 |
36.0 |
6.4 |
1.1 |
2.3 |
| U2 |
Euro area (changing composition) |
54.7 |
42.6 |
21.6 |
15.8 |
15.5 |
Netherlands, Germany, Belgium, France, Europe
Code
RAI |>
filter(DD_ECON_CONCEPT == "SVLHPHH",
REF_AREA %in% c("NL", "DE", "BE", "FR", "U2")) |>
month_to_date() %>%
select_if(~n_distinct(.) > 1) |>
mutate(Ref_area = ifelse(REF_AREA == "U2", "Europe", Ref_area)) |>
left_join(colors, by = c("Ref_area" = "country")) |>
mutate(OBS_VALUE = OBS_VALUE/100) |>
ggplot() + theme_minimal() + xlab("") + ylab("Share of variable rate, households (%)") +
geom_line(aes(x = date, y = OBS_VALUE, color = color)) +
add_flags(5) + scale_color_identity() +
scale_x_date(breaks = seq(1960, 2100, 2) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-10, 100, 5),
labels = percent_format(accuracy = 1))
France, Spain, Portugal, latvia, Lithuania, Estonia
Code
RAI |>
filter(DD_ECON_CONCEPT == "SVLHPHH",
REF_AREA %in% c("FR", "ES", "PT", "EE", "LT", "U2")) |>
month_to_date() %>%
select_if(~n_distinct(.) > 1) |>
mutate(Ref_area = ifelse(REF_AREA == "U2", "Europe", Ref_area)) |>
left_join(colors, by = c("Ref_area" = "country")) |>
mutate(OBS_VALUE = OBS_VALUE/100) |>
ggplot() + theme_minimal() + xlab("") + ylab("Share of variable rate, households (%)") +
geom_line(aes(x = date, y = OBS_VALUE, color = color)) +
add_flags(6) + scale_color_identity() +
scale_x_date(breaks = seq(1960, 2100, 2) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-10, 100, 5),
labels = percent_format(accuracy = 1))
France, Spain, Portugal
Code
RAI |>
filter(DD_ECON_CONCEPT == "SVLHPHH",
REF_AREA %in% c("FR", "ES", "PT")) |>
month_to_date() %>%
select_if(~n_distinct(.) > 1) |>
left_join(colors, by = c("Ref_area" = "country")) |>
mutate(OBS_VALUE = OBS_VALUE/100) |>
ggplot() + theme_minimal() + xlab("") + ylab("Share of variable rate, households (%)") +
geom_line(aes(x = date, y = OBS_VALUE, color = color)) +
add_flags(3) + scale_color_identity() +
scale_x_date(breaks = seq(1960, 2100, 2) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-10, 100, 5),
labels = percent_format(accuracy = 1))
Italy, Sweden, Poland
Code
RAI |>
filter(DD_ECON_CONCEPT == "SVLHPHH",
REF_AREA %in% c("PL", "IT", "SE")) |>
month_to_date() %>%
select_if(~n_distinct(.) > 1) |>
left_join(colors, by = c("Ref_area" = "country")) |>
mutate(OBS_VALUE = OBS_VALUE/100) |>
ggplot() + theme_minimal() + xlab("") + ylab("Share of variable rate, households (%)") +
geom_line(aes(x = date, y = OBS_VALUE, color = color)) +
add_flags(3) + scale_color_identity() +
scale_x_date(breaks = seq(1960, 2100, 2) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-10, 100, 5),
labels = percent_format(accuracy = 1))
Netherlands, Germany, Belgium
Code
RAI |>
filter(DD_ECON_CONCEPT == "SVLHPHH",
REF_AREA %in% c("NL", "DE", "BE")) |>
month_to_date() %>%
select_if(~n_distinct(.) > 1) |>
left_join(colors, by = c("Ref_area" = "country")) |>
mutate(OBS_VALUE = OBS_VALUE/100) |>
ggplot() + theme_minimal() + xlab("") + ylab("Share of variable rate, households (%)") +
geom_line(aes(x = date, y = OBS_VALUE, color = color)) +
add_flags(3) + scale_color_identity() +
scale_x_date(breaks = seq(1960, 2100, 2) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-10, 100, 5),
labels = percent_format(accuracy = 1))
SVLHHNFC - Share of floating rates, Households, and Corporations
Table
Code
RAI |>
filter(DD_ECON_CONCEPT == "SVLHHNFC",
TIME_PERIOD %in% c(last_time, "2020-01", "2015-01", "2010-01", "2005-01")) |>
select_if(~n_distinct(.) > 1) |>
select(REF_AREA, Ref_area, TIME_PERIOD, OBS_VALUE) |>
mutate(OBS_VALUE = round(OBS_VALUE, 1)) |>
spread(TIME_PERIOD, OBS_VALUE) |>
print_table_conditional()
| AT |
Austria |
91.7 |
92.3 |
89.7 |
70.1 |
64.6 |
| BE |
Belgium |
90.7 |
90.4 |
76.4 |
73.3 |
76.4 |
| BG |
Bulgaria |
NA |
98.7 |
95.8 |
95.8 |
96.9 |
| CY |
Cyprus |
NA |
85.4 |
96.1 |
94.2 |
69.1 |
| CZ |
Czech Republic |
80.8 |
76.5 |
51.7 |
48.7 |
46.1 |
| DE |
Germany |
61.5 |
72.6 |
59.4 |
61.3 |
66.2 |
| DK |
Denmark |
76.4 |
64.5 |
43.6 |
50.2 |
68.1 |
| EE |
Estonia |
92.0 |
71.1 |
80.4 |
83.6 |
95.7 |
| ES |
Spain |
91.5 |
91.4 |
88.1 |
70.8 |
70.4 |
| FI |
Finland |
94.3 |
NA |
NA |
94.8 |
91.6 |
| FR |
France |
64.8 |
45.3 |
39.8 |
32.3 |
39.6 |
| GR |
Greece |
82.9 |
86.1 |
97.7 |
91.6 |
83.8 |
| HR |
Croatia |
NA |
NA |
88.8 |
57.8 |
50.0 |
| HU |
Hungary |
95.3 |
94.5 |
75.0 |
52.4 |
37.6 |
| IE |
Ireland |
83.0 |
87.3 |
82.3 |
67.3 |
48.8 |
| IT |
Italy |
90.4 |
93.9 |
92.4 |
73.4 |
77.0 |
| LT |
Lithuania |
93.6 |
88.3 |
93.9 |
89.1 |
83.8 |
| LU |
Luxembourg |
98.4 |
99.1 |
95.0 |
91.3 |
89.1 |
| LV |
Latvia |
72.6 |
82.3 |
80.1 |
95.3 |
NA |
| MT |
Malta |
NA |
98.7 |
89.4 |
59.6 |
79.5 |
| NL |
Netherlands |
71.1 |
73.5 |
57.2 |
45.0 |
58.4 |
| PL |
Poland |
94.5 |
93.6 |
86.6 |
90.2 |
60.5 |
| PT |
Portugal |
95.7 |
95.9 |
90.9 |
74.8 |
50.0 |
| RO |
Romania |
NA |
96.6 |
85.9 |
67.3 |
59.3 |
| SE |
Sweden |
NA |
89.2 |
90.6 |
78.7 |
89.8 |
| SI |
Slovenia |
89.5 |
93.5 |
91.5 |
78.9 |
55.5 |
| SK |
Slovakia |
83.2 |
78.9 |
66.7 |
23.4 |
38.2 |
| U2 |
Euro area (changing composition) |
79.2 |
81.5 |
69.9 |
60.5 |
65.3 |
France, Spain, Portugal
Code
RAI |>
filter(DD_ECON_CONCEPT == "SVLHHNFC",
REF_AREA %in% c("FR", "ES", "PT")) |>
month_to_date() %>%
select_if(~n_distinct(.) > 1) |>
left_join(colors, by = c("Ref_area" = "country")) |>
mutate(OBS_VALUE = OBS_VALUE/100) |>
ggplot() + theme_minimal() + xlab("") + ylab("Share of variable rate, households and firms (%)") +
geom_line(aes(x = date, y = OBS_VALUE, color = color)) +
add_flags(3) + scale_color_identity() +
scale_x_date(breaks = seq(1960, 2100, 2) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-10, 100, 5),
labels = percent_format(accuracy = 1))
Italy, Sweden, Poland
Code
RAI |>
filter(DD_ECON_CONCEPT == "SVLHHNFC",
REF_AREA %in% c("PL", "IT", "SE")) |>
month_to_date() %>%
select_if(~n_distinct(.) > 1) |>
left_join(colors, by = c("Ref_area" = "country")) |>
mutate(OBS_VALUE = OBS_VALUE/100) |>
ggplot() + theme_minimal() + xlab("") + ylab("Share of variable rate, households and firms (%)") +
geom_line(aes(x = date, y = OBS_VALUE, color = color)) +
add_flags(3) + scale_color_identity() +
scale_x_date(breaks = seq(1960, 2100, 2) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-10, 100, 5),
labels = percent_format(accuracy = 1))
Netherlands, Germany, Belgium
Code
RAI |>
filter(DD_ECON_CONCEPT == "SVLHHNFC",
REF_AREA %in% c("NL", "DE", "BE")) |>
month_to_date() %>%
select_if(~n_distinct(.) > 1) |>
left_join(colors, by = c("Ref_area" = "country")) |>
mutate(OBS_VALUE = OBS_VALUE/100) |>
ggplot() + theme_minimal() + xlab("") + ylab("Share of variable rate, households and firms (%)") +
geom_line(aes(x = date, y = OBS_VALUE, color = color)) +
add_flags(3) + scale_color_identity() +
scale_x_date(breaks = seq(1960, 2100, 2) |> paste0("-01-01") |> as.Date(),
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-10, 100, 5),
labels = percent_format(accuracy = 1))