MFI Interest Rate Statistics
Data - ECB
Info
Info
Monetary financial institutions in the euro area are legally obliged to report data to their National Central Banks, which in turn report to the ECB.
Data on interest rates
source | dataset | .html | .RData |
---|---|---|---|
2024-06-19 | 2024-06-18 | ||
2024-06-19 | 2024-06-18 | ||
2024-06-19 | 2024-06-18 | ||
2024-06-19 | 2024-05-10 | ||
2024-06-19 | 2024-04-19 | ||
2024-06-19 | 2024-06-15 | ||
2024-06-19 | 2024-06-08 | ||
2024-06-19 | 2024-06-08 | ||
2024-06-18 | 2024-06-08 | ||
2024-06-18 | 2024-06-18 | ||
2024-06-18 | 2024-06-07 | ||
2024-04-16 | 2024-04-15 | ||
2024-06-19 | 2024-05-21 | ||
2024-01-06 | 2024-04-14 |
Data on monetary policy
source | dataset | .html | .RData |
---|---|---|---|
2024-06-19 | 2024-06-18 | ||
2024-06-19 | 2024-06-18 | ||
2024-06-19 | 2024-06-18 | ||
2024-06-19 | 2024-06-07 | ||
2024-06-19 | 2024-05-21 | ||
2024-06-19 | 2024-06-15 | ||
2024-06-19 | 2024-06-15 | ||
2024-06-19 | 2024-06-15 | ||
2024-06-19 | 2024-01-25 | ||
2024-06-19 | 2024-05-21 | ||
2024-06-19 | 2024-06-08 | ||
2024-06-07 | 2024-06-07 | ||
2024-06-17 | 2024-06-07 | ||
2024-06-17 | 2024-05-21 | ||
2024-06-17 | 2024-06-07 | ||
2024-06-19 | 2024-06-08 | ||
2024-06-18 | 2024-06-18 | ||
2024-06-18 | 2024-06-07 | ||
2024-04-16 | 2024-04-15 | ||
2024-06-19 | 2024-05-21 |
LAST_COMPILE
LAST_COMPILE |
---|
2024-06-20 |
Last
Code
%>%
MIR group_by(TIME_PERIOD) %>%
summarise(Nobs = n()) %>%
arrange(desc(TIME_PERIOD)) %>%
head(2) %>%
print_table_conditional()
TIME_PERIOD | Nobs |
---|---|
2024-04 | 7206 |
2024-03 | 7202 |
BS_ITEM
Javascript
Code
%>%
MIR left_join(BS_ITEM , by = "BS_ITEM") %>%
group_by(BS_ITEM, Bs_item) %>%
summarise(Nobs = n()) %>%
arrange(-Nobs) %>%
print_table_conditional_10()
Flat
Code
%>%
MIR left_join(BS_ITEM , by = "BS_ITEM") %>%
group_by(BS_ITEM, Bs_item) %>%
summarise(Nobs = n()) %>%
arrange(-Nobs) %>%
print_table_conditional()
BS_ITEM | Bs_item | Nobs |
---|---|---|
A2A | Loans other than revolving loans and overdrafts, convenience and extended credit card debt | 389048 |
A2AC | Loans other than revolving loans and overdrafts, convenience and extended credit card debt with collateral and/or guarantees | 257192 |
L22 | Deposits with agreed maturity | 225015 |
A2D | Other lending excluding revolving loans and overdrafts, convenience and extended credit card debt | 95711 |
A20 | Loans | 87883 |
A2C | Lending for house purchase excluding revolving loans and overdrafts, convenience and extended credit card debt | 85727 |
A2B | Loans for consumption excluding revolving loans and overdrafts, convenience and extended credit card debt | 69210 |
A2CC | Lending for house purchase excluding revolving loans and overdrafts, convenience and extended credit card debt with collateral and/or guarantees | 39769 |
A22 | Lending for house purchase | 39458 |
A25 | Credit for consumption and other lending | 39166 |
A2BC | Loans for consumption excluding revolving loans and overdrafts, convenience and extended credit card debt with collateral and/or guarantees | 31555 |
L21 | Overnight deposits | 24832 |
L23 | Deposits redeemable at notice | 23142 |
A2Z | Revolving loans and overdrafts, convenience and extended credit card debt | 22499 |
L24 | Repurchase agreements | 21004 |
A2Z1 | Revolving loans and overdrafts | 12800 |
A2Z3 | Extended credit | 12192 |
A2J | Loans to households for house purchase and to non-financial corporations (defined for cost of borrowing purposes, sum of A2C (households), A2A and A2Z (both related to non-financial corporations)) | 9315 |
A2I | Loans (defined for cost of borrowing purposes, sum of A2A and A2Z (both related to non-financial corporations)) | 4660 |
A2L | Loans to households for house purchase and to non-financial corporations | 150 |
MATURITY_NOT_IRATE
Code
%>%
MIR left_join(MATURITY_NOT_IRATE, by = "MATURITY_NOT_IRATE") %>%
group_by(MATURITY_NOT_IRATE, Maturity_not_irate) %>%
summarise(Nobs = n()) %>%
arrange(-Nobs) %>%
print_table_conditional()
MATURITY_NOT_IRATE | Maturity_not_irate | Nobs |
---|---|---|
A | Total | 384009 |
F | Up to 1 year | 172472 |
K | Over 1 year | 135222 |
I | Over 1 and up to 5 years | 105090 |
J | Over 5 years | 87288 |
P | Over 10 years | 70135 |
O | Over 5 and up to 10 years | 69495 |
D | Up to 3 months | 65581 |
H | Over 2 years | 58191 |
Y | Period of initial rate fixation below 1 year and original maturity over 1 year | 55227 |
Q | Over 3 months and up to 1 year | 54563 |
S | Over 3 and up to 5 years | 52158 |
R | Over 1 and up to 3 years | 51834 |
L | Up to two years | 45446 |
G | Over 1 and up to 2 years | 28322 |
AM | Total calculated by weighting the volumes with a moving average (defined for cost of borrowing purposes) | 9316 |
E | Over 3 months | 7879 |
KF | Original maturity over 1 year and remaining maturity up to 1 year | 7278 |
HL | Original maturity over 2 years and remaining maturity up to 2 years | 7277 |
HHL | Original maturity over 2 years, remaining maturity over 2 years and interest rate reset within the next 24 months | 7115 |
KKF | Original maturity over 1 year, remaining maturity over 1 year and interest rate reset within the next 12 months | 7115 |
KM | Over 1 year calculated by weighting the volumes with a moving average (defined for cost of borrowing purposes) | 4659 |
FM | Up to 1 year calculated by weighting the volumes with a moving average (defined for cost of borrowing purposes) | 4656 |
DATA_TYPE_MIR
Code
%>%
MIR left_join(DATA_TYPE_MIR, by = "DATA_TYPE_MIR") %>%
group_by(DATA_TYPE_MIR, Data_type_mir) %>%
summarise(Nobs = n()) %>%
arrange(-Nobs) %>%
print_table_conditional()
DATA_TYPE_MIR | Data_type_mir | Nobs |
---|---|---|
R | Annualised agreed rate (AAR) / Narrowly defined effective rate (NDER) | 985030 |
B | Business volume (outstanding amount / new business) | 207616 |
I | Interest rate component of euro area month-to-month level change (Bennet binary index on interest rates) | 47150 |
J | Weight component of euro area month-to-month level change (Bennet binary index on weights) | 47150 |
M | Index on interest rates (Bennet chain index) | 47150 |
N | Index on weights (Bennet chain index) | 47150 |
O | Accumulated changes on interest rates | 47150 |
V | Coefficient of variation | 47150 |
C | Annual percentage rate of charge (APRC) | 14782 |
AMOUNT_CAT
Code
%>%
MIR left_join(AMOUNT_CAT, by = "AMOUNT_CAT") %>%
group_by(AMOUNT_CAT, Amount_cat) %>%
summarise(Nobs = n()) %>%
arrange(-Nobs) %>%
print_table_conditional()
AMOUNT_CAT | Amount_cat | Nobs |
---|---|---|
A | Total | 993914 |
1 | Over EUR 1 million | 167680 |
2 | Up to and including EUR 0.25 million | 136889 |
3 | Over EUR 0.25 million and up to EUR 1 million | 135462 |
0 | Up to and including EUR 1 million | 56383 |
BS_COUNT_SECTOR
Code
%>%
MIR mutate(BS_COUNT_SECTOR = paste0(BS_COUNT_SECTOR)) %>%
left_join(BS_COUNT_SECTOR , by = "BS_COUNT_SECTOR") %>%
group_by(BS_COUNT_SECTOR, Bs_count_sector) %>%
summarise(Nobs = n()) %>%
arrange(-Nobs) %>%
print_table_conditional()
BS_COUNT_SECTOR | Bs_count_sector | Nobs |
---|---|---|
2240 | Non-Financial corporations (S.11) | 813003 |
2250 | Households and non-profit institutions serving households (S.14 and S.15) | 544850 |
2230 | Non-Financial corporations and Households (S.11 and S.14 and S.15) | 96739 |
2253 | Households of which sole proprietors and unincorporated partnerships (SP/UP) | 35736 |
CURRENCY_TRANS
Code
%>%
MIR left_join(CURRENCY_TRANS , by = "CURRENCY_TRANS") %>%
group_by(CURRENCY_TRANS, Currency_trans) %>%
summarise(Nobs = n()) %>%
arrange(-Nobs) %>%
print_table_conditional()
CURRENCY_TRANS | Currency_trans | Nobs |
---|---|---|
EUR | Euro | 1206053 |
CZK | Czech koruna | 39009 |
HUF | Hungarian forint | 38337 |
RON | Romanian leu | 37798 |
SEK | Swedish krona | 37381 |
DKK | Danish krone | 34086 |
PLN | Polish zloty | 29143 |
HRK | Croatian kuna | 27066 |
BGN | Bulgarian lev | 21487 |
LVL | Latvian lats | 7752 |
LTL | Lithuanian litas | 4581 |
EEK | Estonian kroon | 3281 |
SKK | Slovak koruna | 2700 |
SIT | Slovenian tolar | 1404 |
MTL | Maltese lira | 250 |
IR_BUS_COV
Code
%>%
MIR left_join(IR_BUS_COV, by = "IR_BUS_COV") %>%
group_by(IR_BUS_COV, Ir_bus_cov) %>%
summarise(Nobs = n()) %>%
arrange(-Nobs) %>%
print_table_conditional()
IR_BUS_COV | Ir_bus_cov | Nobs |
---|---|---|
N | New business | 1195590 |
O | Outstanding amount | 241113 |
R | Renegotiation | 29933 |
P | Pure new loans | 23692 |
COLLECTION
Code
%>%
MIR left_join(COLLECTION , by = "COLLECTION") %>%
group_by(COLLECTION, Collection) %>%
summarise(Nobs = n()) %>%
arrange(-Nobs) %>%
print_table_conditional()
COLLECTION | Collection | Nobs |
---|---|---|
A | Average of observations through period | 1274617 |
S | Summed through period | 207616 |
E | End of period | 8095 |
SOURCE_AGENCY
Code
%>%
MIR left_join(SOURCE_AGENCY, by = "SOURCE_AGENCY") %>%
group_by(SOURCE_AGENCY, Source_agency) %>%
summarise(Nobs = n()) %>%
arrange(-Nobs) %>%
print_table_conditional()
SOURCE_AGENCY | Source_agency | Nobs |
---|---|---|
4F0 | European Central Bank (ECB) | 370957 |
HR2 | Croatian National Bank | 59393 |
LV2 | Bank of Latvia | 49950 |
SI2 | Bank of Slovenia | 48781 |
SK2 | National Bank of Slovakia | 47966 |
DE2 | Deutsche Bundesbank (Germany) | 46004 |
LT2 | Bank of Lithuania | 45902 |
IT2 | Banca d` Italia (Italy) | 45761 |
LU2 | Banque centrale du Luxembourg | 45743 |
ES2 | Banco de Espana (Spain) | 45662 |
AT2 | Oesterreichische Nationalbank (Austria) | 45604 |
GR2 | Bank of Greece (Greece) | 45017 |
FR2 | Banque de France (France) | 44796 |
EE2 | Bank of Estonia | 44071 |
MT2 | Central Bank of Malta | 43408 |
FI2 | Bank of Finland (Finland) | 43238 |
NL2 | De Nederlandsche Bank (Netherlands) | 41020 |
BE2 | Banque Nationale de Belgique (Belgium) | 39859 |
PT2 | Banco de Portugal (Portugal) | 39182 |
CZ2 | Czech National Bank | 39009 |
HU2 | National Bank of Hungary | 38337 |
RO2 | National Bank of Romania | 38006 |
SE2 | Sveriges Riksbank (Sweden) | 37381 |
DK2 | Danmarks Nationalbank (Denmark) | 34086 |
CY2 | Central Bank of Cyprus | 30554 |
IE2 | Central Bank of Ireland (Ireland) | 29599 |
PL2 | Bank of Poland | 29347 |
BG2 | Bulgarian National Bank | 21695 |
REF_AREA
Code
%>%
MIR left_join(REF_AREA , by = "REF_AREA") %>%
group_by(REF_AREA, Ref_area) %>%
summarise(Nobs = n()) %>%
arrange(-Nobs) %>%
print_table_conditional()
REF_AREA | Ref_area | Nobs |
---|---|---|
U2 | Euro area (Member States and Institutions of the Euro Area) changing composition | 370957 |
HR | Croatia | 59393 |
LV | Latvia | 49950 |
SI | Slovenia | 48781 |
SK | Slovakia | 47966 |
DE | Germany | 46004 |
LT | Lithuania | 45902 |
IT | Italy | 45761 |
LU | Luxembourg | 45743 |
ES | Spain | 45662 |
AT | Austria | 45604 |
GR | Greece | 45017 |
FR | France | 44796 |
EE | Estonia | 44071 |
MT | Malta | 43408 |
FI | Finland | 43238 |
NL | Netherlands | 41020 |
BE | Belgium | 39859 |
PT | Portugal | 39182 |
CZ | Czech Republic | 39009 |
HU | Hungary | 38337 |
RO | Romania | 38006 |
SE | Sweden | 37381 |
DK | Denmark | 34086 |
CY | Cyprus | 30554 |
IE | Ireland | 29599 |
PL | Poland | 29347 |
BG | Bulgaria | 21695 |
TIME_PERIOD
Code
%>%
MIR group_by(TIME_PERIOD) %>%
summarise(Nobs = n()) %>%
arrange(desc(TIME_PERIOD)) %>%
print_table_conditional()
Structure
BS_ITEM, MATURITY_ORIG, AMOUNT_CAT
Code
%>%
MIR left_join(BS_ITEM, by = "BS_ITEM") %>%
left_join(MATURITY_NOT_IRATE, by = "MATURITY_NOT_IRATE") %>%
left_join(AMOUNT_CAT, by = "AMOUNT_CAT") %>%
group_by(BS_ITEM, Bs_item, MATURITY_NOT_IRATE, Maturity_not_irate, AMOUNT_CAT, Amount_cat) %>%
summarise(Nobs = n()) %>%
arrange(-Nobs) %>%
print_table_conditional()
BS_ITEM, MATURITY_ORIG
Code
%>%
MIR left_join(BS_ITEM, by = "BS_ITEM") %>%
left_join(MATURITY_NOT_IRATE, by = "MATURITY_NOT_IRATE") %>%
group_by(BS_ITEM, Bs_item, MATURITY_NOT_IRATE, Maturity_not_irate) %>%
summarise(Nobs = n()) %>%
arrange(-Nobs) %>%
print_table_conditional()
France
Table - All
Code
%>%
MIR filter(REF_AREA == "FR",
# A2A: Loans oth. than revolving loans and overdrafts, convenience and ext. CC debt
# A: Total
== "2021-04") %>%
TIME_PERIOD %>%
month_to_date select_if(~n_distinct(.) > 1) %>%
select(-TITLE_COMPL, -TITLE, -KEY) %>%
mutate(BS_COUNT_SECTOR = paste0(BS_COUNT_SECTOR)) %>%
left_join(BS_COUNT_SECTOR, by = "BS_COUNT_SECTOR") %>%
left_join(AMOUNT_CAT, by = "AMOUNT_CAT") %>%
left_join(IR_BUS_COV, by = "IR_BUS_COV") %>%
left_join(MATURITY_NOT_IRATE, by = "MATURITY_NOT_IRATE") %>%
left_join(BS_ITEM , by = "BS_ITEM") %>%
arrange(OBS_VALUE) %>%
select(OBS_VALUE, Bs_count_sector, Bs_item, Amount_cat, Ir_bus_cov, Maturity_not_irate, everything()) %>%
print_table_conditional()
Table - MATURITY_NOT_IRATE == “A”, DATA_TYPE_MIR == “R”
Code
%>%
MIR filter(REF_AREA == "FR",
# A2A: Loans oth. than revolving loans and overdrafts, convenience and ext. CC debt
# A: Total
== "A",
MATURITY_NOT_IRATE # R: Rate
== "R",
DATA_TYPE_MIR == "2021-04") %>%
TIME_PERIOD %>%
month_to_date select_if(~n_distinct(.) > 1) %>%
select(-TITLE_COMPL, -TITLE, -KEY) %>%
mutate(BS_COUNT_SECTOR = paste0(BS_COUNT_SECTOR)) %>%
left_join(BS_COUNT_SECTOR, by = "BS_COUNT_SECTOR") %>%
left_join(AMOUNT_CAT, by = "AMOUNT_CAT") %>%
left_join(IR_BUS_COV, by = "IR_BUS_COV") %>%
left_join(BS_ITEM , by = "BS_ITEM") %>%
print_table_conditional()
Loans oth. than revolving loans and overdrafts - A2A
Table
Code
%>%
MIR filter(REF_AREA == "FR",
# A2A: Loans oth. than revolving loans and overdrafts, convenience and ext. CC debt
== "A2A",
BS_ITEM # A: Total
== "A",
MATURITY_NOT_IRATE # R: Rate
== "R",
DATA_TYPE_MIR == "2021-04") %>%
TIME_PERIOD %>%
month_to_date select_if(~n_distinct(.) > 1) %>%
select(-TITLE_COMPL, -TITLE, -KEY) %>%
mutate(BS_COUNT_SECTOR = paste0(BS_COUNT_SECTOR)) %>%
left_join(BS_COUNT_SECTOR, by = "BS_COUNT_SECTOR") %>%
left_join(AMOUNT_CAT, by = "AMOUNT_CAT") %>%
left_join(IR_BUS_COV, by = "IR_BUS_COV") %>%
print_table_conditional()
AMOUNT_CAT | BS_COUNT_SECTOR | IR_BUS_COV | OBS_VALUE | Bs_count_sector | Amount_cat | Ir_bus_cov |
---|---|---|---|---|---|---|
0 | 2240 | N | 1.31 | Non-Financial corporations (S.11) | Up to and including EUR 1 million | New business |
1 | 2240 | N | 1.39 | Non-Financial corporations (S.11) | Over EUR 1 million | New business |
2 | 2240 | N | 1.44 | Non-Financial corporations (S.11) | Up to and including EUR 0.25 million | New business |
3 | 2240 | N | 1.14 | Non-Financial corporations (S.11) | Over EUR 0.25 million and up to EUR 1 million | New business |
A | 2240 | N | 1.36 | Non-Financial corporations (S.11) | Total | New business |
A | 2240 | P | 1.35 | Non-Financial corporations (S.11) | Total | Pure new loans |
A | 2240 | R | 1.42 | Non-Financial corporations (S.11) | Total | Renegotiation |
A | 2250 | P | 1.63 | Households and non-profit institutions serving households (S.14 and S.15) | Total | Pure new loans |
A | 2250 | R | 1.65 | Households and non-profit institutions serving households (S.14 and S.15) | Total | Renegotiation |
Graph
All
Code
%>%
MIR filter(REF_AREA == "FR",
# A2A: Loans oth. than revolving loans and overdrafts, convenience and ext. CC debt
== "A2A",
BS_ITEM # A: Total
== "A",
MATURITY_NOT_IRATE # R: Rate
== "R") %>%
DATA_TYPE_MIR left_join(AMOUNT_CAT, by = "AMOUNT_CAT") %>%
%>%
month_to_date ggplot(.) +
geom_line(aes(x = date, y = OBS_VALUE / 100, color = TITLE)) +
theme_minimal() + xlab("") + ylab("France Interest Rates (%)") +
scale_x_date(breaks = seq(1960, 2030, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-10, 50, 1),
labels = percent_format(accuracy = 1)) +
theme(legend.position = c(0.65, 0.8),
legend.title = element_blank(),
legend.text = element_text(size = 8),
legend.key.size = unit(0.9, 'lines'))
IR_BUS_COV == “N”
Code
%>%
MIR filter(REF_AREA == "FR",
# A2A: Loans oth. than revolving loans and overdrafts, convenience and ext. CC debt
== "A2A",
BS_ITEM == "N",
IR_BUS_COV # A: Total
== "A",
MATURITY_NOT_IRATE # R: Rate
== "R") %>%
DATA_TYPE_MIR %>%
month_to_date left_join(AMOUNT_CAT, by = "AMOUNT_CAT") %>%
ggplot(.) +
geom_line(aes(x = date, y = OBS_VALUE / 100, color = TITLE)) +
theme_minimal() + xlab("") + ylab("France Interest Rates (%)") +
scale_x_date(breaks = seq(1960, 2030, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-10, 50, 1),
labels = percent_format(accuracy = 1),
limits = c(0.005, 0.08)) +
theme(legend.position = c(0.5, 0.9),
legend.title = element_blank(),
legend.text = element_text(size = 8),
legend.key.size = unit(0.9, 'lines'))
A2AC - Loans other than revolving loans and overdrafts, convenience and extended credit card debt with collateral and/or guarantees
A20 - Loans
Table
Code
%>%
MIR filter(REF_AREA == "FR",
# A2A: Loans oth. than revolving loans and overdrafts, convenience and ext. CC debt
== "A20",
BS_ITEM # A: Total
== "A",
MATURITY_NOT_IRATE # R: Rate
== "R",
DATA_TYPE_MIR == "2021-04") %>%
TIME_PERIOD %>%
month_to_date select_if(~n_distinct(.) > 1) %>%
select(-TITLE_COMPL, -TITLE, -KEY) %>%
mutate(BS_COUNT_SECTOR = paste0(BS_COUNT_SECTOR)) %>%
left_join(BS_COUNT_SECTOR, by = "BS_COUNT_SECTOR") %>%
print_table_conditional()
BS_COUNT_SECTOR | OBS_VALUE | Bs_count_sector |
---|---|---|
2240 | 1.37 | Non-Financial corporations (S.11) |
2250 | 1.89 | Households and non-profit institutions serving households (S.14 and S.15) |
Graph
Code
%>%
MIR filter(REF_AREA == "FR",
# A20: Loans
== "A20",
BS_ITEM # A: Total
== "A",
MATURITY_NOT_IRATE # R: Rate
== "R") %>%
DATA_TYPE_MIR %>%
month_to_date mutate(BS_COUNT_SECTOR = paste0(BS_COUNT_SECTOR)) %>%
left_join(BS_COUNT_SECTOR, by = "BS_COUNT_SECTOR") %>%
ggplot(.) +
geom_line(aes(x = date, y = OBS_VALUE / 100, color = Bs_count_sector)) +
theme_minimal() + xlab("") + ylab("France Interest Rates (%)") +
scale_x_date(breaks = seq(1960, 2024, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-10, 50, 0.5),
labels = percent_format(accuracy = .1)) +
theme(legend.position = c(0.6, 0.9),
legend.title = element_blank())
Europe
Loans oth. than revolving loans and overdrafts
Table
Code
%>%
MIR filter(REF_AREA == "U2",
# A2A: Loans oth. than revolving loans and overdrafts, convenience and ext. CC debt
== "A2A",
BS_ITEM # A: Total
== "A",
MATURITY_NOT_IRATE # R: Rate
== "R",
DATA_TYPE_MIR == "2021-04") %>%
TIME_PERIOD %>%
month_to_date select_if(~n_distinct(.) > 1) %>%
select(-TITLE_COMPL) %>%
print_table_conditional()
KEY | AMOUNT_CAT | BS_COUNT_SECTOR | IR_BUS_COV | OBS_VALUE | OBS_STATUS | TITLE |
---|---|---|---|---|---|---|
MIR.M.U2.B.A2A.A.R.0.2240.EUR.N | 0 | 2240 | N | 1.79 | A | Bank interest rates - loans to corporations of up to EUR 1M (new business) - euro area |
MIR.M.U2.B.A2A.A.R.1.2240.EUR.N | 1 | 2240 | N | 1.33 | A | Bank interest rates - loans to corporations of over EUR 1M (new business) - euro area |
MIR.M.U2.B.A2A.A.R.2.2240.EUR.N | 2 | 2240 | N | 2.00 | A | Bank interest rates - loans to corporations of up to EUR 0.25M (new business) - euro area |
MIR.M.U2.B.A2A.A.R.3.2240.EUR.N | 3 | 2240 | N | 1.48 | A | Bank interest rates - loans to corporations of over EUR .25M & up to EUR 1M (new business) - euro area |
MIR.M.U2.B.A2A.A.R.A.2240.EUR.N | A | 2240 | N | 1.47 | A | Bank interest rates - loans to corporations (new business) - euro area |
MIR.M.U2.B.A2A.A.R.A.2240.EUR.P | A | 2240 | P | 1.43 | A | Bank interest rates - loans to corporations (pure new loans)- euro area |
MIR.M.U2.B.A2A.A.R.A.2240.EUR.R | A | 2240 | R | 1.64 | E | Bank interest rates - loans to corporations (renegotiations)- euro area |
MIR.M.U2.B.A2A.A.R.A.2250.EUR.P | A | 2250 | P | 2.14 | A | Bank interest rates - loans to households (pure new loans)- euro area |
Graph
All
Code
%>%
MIR filter(REF_AREA == "U2",
# A2A: Loans oth. than revolving loans and overdrafts, convenience and ext. CC debt
== "A2A",
BS_ITEM # A: Total
== "A",
MATURITY_NOT_IRATE # R: Rate
== "R") %>%
DATA_TYPE_MIR mutate(TITLE = gsub("Bank interest rates - loans to", "", TITLE),
TITLE = gsub("- Germany", "", TITLE)) %>%
%>%
month_to_date ggplot(.) +
geom_line(aes(x = date, y = OBS_VALUE / 100, color = TITLE)) +
theme_minimal() + xlab("") + ylab("Euro Area Interest Rates (%)") +
scale_x_date(breaks = seq(1960, 2030, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-10, 50, 1),
labels = percent_format(accuracy = 1)) +
theme(legend.position = c(0.65, 0.8),
legend.title = element_blank(),
legend.text = element_text(size = 8),
legend.key.size = unit(0.9, 'lines'))
2010-
Code
%>%
MIR filter(REF_AREA == "U2",
# A2A: Loans oth. than revolving loans and overdrafts, convenience and ext. CC debt
== "A2A",
BS_ITEM # A: Total
== "A",
MATURITY_NOT_IRATE # R: Rate
== "R") %>%
DATA_TYPE_MIR mutate(TITLE = gsub("Bank interest rates - loans to", "", TITLE),
TITLE = gsub("- Germany", "", TITLE)) %>%
%>%
month_to_date filter(date >= as.Date("2010-01-01")) %>%
ggplot(.) +
geom_line(aes(x = date, y = OBS_VALUE / 100, color = TITLE)) +
theme_minimal() + xlab("") + ylab("Germany Interest Rates (%)") +
scale_x_date(breaks = seq(1960, 2030, 1) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-10, 50, 1),
labels = percent_format(accuracy = 1)) +
theme(legend.position = c(0.65, 0.8),
legend.title = element_blank(),
legend.text = element_text(size = 8),
legend.key.size = unit(0.9, 'lines'))
2015-
Code
%>%
MIR filter(REF_AREA == "U2",
# A2A: Loans oth. than revolving loans and overdrafts, convenience and ext. CC debt
== "A2A",
BS_ITEM # A: Total
== "A",
MATURITY_NOT_IRATE # R: Rate
== "R") %>%
DATA_TYPE_MIR mutate(TITLE = gsub("Bank interest rates - loans to", "", TITLE),
TITLE = gsub("- Germany", "", TITLE)) %>%
%>%
month_to_date filter(date >= as.Date("2015-01-01")) %>%
ggplot(.) +
geom_line(aes(x = date, y = OBS_VALUE / 100, color = TITLE)) +
theme_minimal() + xlab("") + ylab("Germany Interest Rates (%)") +
scale_x_date(breaks = seq(1960, 2026, 1) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-10, 50, .5),
labels = percent_format(accuracy = .1)) +
theme(legend.position = c(0.65, 0.8),
legend.title = element_blank(),
legend.text = element_text(size = 8),
legend.key.size = unit(0.9, 'lines'))
Germany
Loans oth. than revolving loans and overdrafts
Table
Code
%>%
MIR filter(REF_AREA == "DE",
# A2A: Loans oth. than revolving loans and overdrafts, convenience and ext. CC debt
== "A2A",
BS_ITEM # A: Total
== "A",
MATURITY_NOT_IRATE # R: Rate
== "R",
DATA_TYPE_MIR == "2021-04") %>%
TIME_PERIOD %>%
month_to_date select_if(~n_distinct(.) > 1) %>%
select(-TITLE_COMPL) %>%
print_table_conditional()
KEY | AMOUNT_CAT | BS_COUNT_SECTOR | IR_BUS_COV | OBS_VALUE | TITLE |
---|---|---|---|---|---|
MIR.M.DE.B.A2A.A.R.0.2240.EUR.N | 0 | 2240 | N | 1.90 | Bank interest rates - loans to corporations of up to EUR 1M (new business) - Germany |
MIR.M.DE.B.A2A.A.R.1.2240.EUR.N | 1 | 2240 | N | 1.41 | Bank interest rates - loans to corporations of over EUR 1M (new business) - Germany |
MIR.M.DE.B.A2A.A.R.2.2240.EUR.N | 2 | 2240 | N | 2.05 | Bank interest rates - loans to corporations of up to EUR 0.25M (new business) - Germany |
MIR.M.DE.B.A2A.A.R.3.2240.EUR.N | 3 | 2240 | N | 1.65 | Bank interest rates - loans to corporations of over EUR .25M & up to EUR 1M (new business) - Germany |
MIR.M.DE.B.A2A.A.R.A.2240.EUR.N | A | 2240 | N | 1.52 | Bank interest rates - loans to corporations (new business) - Germany |
MIR.M.DE.B.A2A.A.R.A.2240.EUR.P | A | 2240 | P | 1.50 | Bank interest rates - loans to corporations (pure new loans)- Germany |
MIR.M.DE.B.A2A.A.R.A.2240.EUR.R | A | 2240 | R | 1.55 | Bank interest rates - loans to corporations (renegotiations)- Germany |
MIR.M.DE.B.A2A.A.R.A.2250.EUR.P | A | 2250 | P | 2.11 | Bank interest rates - loans to households (pure new loans)- Germany |
MIR.M.DE.B.A2A.A.R.A.2250.EUR.R | A | 2250 | R | 2.44 | Bank interest rates - loans to households (renegotiations)- Germany |
Graph
All
Code
%>%
MIR filter(REF_AREA == "DE",
# A2A: Loans oth. than revolving loans and overdrafts, convenience and ext. CC debt
== "A2A",
BS_ITEM # A: Total
== "A",
MATURITY_NOT_IRATE # R: Rate
== "R") %>%
DATA_TYPE_MIR mutate(TITLE = gsub("Bank interest rates - loans to", "", TITLE),
TITLE = gsub("- Germany", "", TITLE)) %>%
%>%
month_to_date ggplot(.) +
geom_line(aes(x = date, y = OBS_VALUE / 100, color = TITLE)) +
theme_minimal() + xlab("") + ylab("Germany Interest Rates (%)") +
scale_x_date(breaks = seq(1960, 2030, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-10, 50, 1),
labels = percent_format(accuracy = 1)) +
theme(legend.position = c(0.65, 0.8),
legend.title = element_blank(),
legend.text = element_text(size = 8),
legend.key.size = unit(0.9, 'lines'))
2010-
Code
%>%
MIR filter(REF_AREA == "DE",
# A2A: Loans oth. than revolving loans and overdrafts, convenience and ext. CC debt
== "A2A",
BS_ITEM # A: Total
== "A",
MATURITY_NOT_IRATE # R: Rate
== "R") %>%
DATA_TYPE_MIR mutate(TITLE = gsub("Bank interest rates - loans to", "", TITLE),
TITLE = gsub("- Germany", "", TITLE)) %>%
%>%
month_to_date filter(date >= as.Date("2010-01-01")) %>%
ggplot(.) +
geom_line(aes(x = date, y = OBS_VALUE / 100, color = TITLE)) +
theme_minimal() + xlab("") + ylab("Germany Interest Rates (%)") +
scale_x_date(breaks = seq(1960, 2030, 1) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-10, 50, 1),
labels = percent_format(accuracy = 1)) +
theme(legend.position = c(0.65, 0.8),
legend.title = element_blank(),
legend.text = element_text(size = 8),
legend.key.size = unit(0.9, 'lines'))
2015-
Code
%>%
MIR filter(REF_AREA == "DE",
# A2A: Loans oth. than revolving loans and overdrafts, convenience and ext. CC debt
== "A2A",
BS_ITEM # A: Total
== "A",
MATURITY_NOT_IRATE # R: Rate
== "R") %>%
DATA_TYPE_MIR mutate(TITLE = gsub("Bank interest rates - loans to", "", TITLE),
TITLE = gsub("- Germany", "", TITLE)) %>%
%>%
month_to_date filter(date >= as.Date("2015-01-01")) %>%
ggplot(.) +
geom_line(aes(x = date, y = OBS_VALUE / 100, color = TITLE)) +
theme_minimal() + xlab("") + ylab("Germany Interest Rates (%)") +
scale_x_date(breaks = seq(1960, 2026, 1) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-10, 50, .5),
labels = percent_format(accuracy = .1)) +
theme(legend.position = c(0.65, 0.8),
legend.title = element_blank(),
legend.text = element_text(size = 8),
legend.key.size = unit(0.9, 'lines'))
France
2015-
Code
%>%
MIR filter(REF_AREA %in% c("FR"),
# A2C: Lending for house purchase excluding revolving loans and overdrafts, convenience and extended credit card debt
%in% c("A2C", "A20"),
BS_ITEM # A: Total
== "A",
MATURITY_NOT_IRATE # R: Rate
== "R",
DATA_TYPE_MIR == "2250") %>%
BS_COUNT_SECTOR left_join(BS_ITEM, by = "BS_ITEM") %>%
left_join(IR_BUS_COV, by = "IR_BUS_COV") %>%
%>%
month_to_date filter(date >= as.Date("2015-01-01")) %>%
mutate(OBS_VALUE = OBS_VALUE/100) %>%
ggplot(.) + theme_minimal() + xlab("") + ylab("Lending for house purchase excluding revolving (%)") +
geom_line(aes(x = date, y = OBS_VALUE, color = paste0(BS_ITEM, " - ", Bs_item, "\n", Ir_bus_cov))) +
scale_x_date(breaks = seq(1960, 2030, 1) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-10, 50, .5),
labels = percent_format(accuracy = .1)) +
theme(legend.position = c(0.5, 0.85),
legend.title = element_blank())
France, Germany, Italy
A2C / A20
All
Code
%>%
MIR filter(REF_AREA %in% c("FR", "DE", "IT"),
# A2C: Lending for house purchase excluding revolving loans and overdrafts, convenience and extended credit card debt
%in% c("A2C", "A20"),
BS_ITEM # A: Total
== "A",
MATURITY_NOT_IRATE # R: Rate
== "R",
DATA_TYPE_MIR == "2250") %>%
BS_COUNT_SECTOR left_join(REF_AREA, by = "REF_AREA") %>%
left_join(BS_ITEM, by = "BS_ITEM") %>%
%>%
month_to_date arrange(desc(date)) %>%
left_join(colors, by = c("Ref_area" = "country")) %>%
mutate(OBS_VALUE = OBS_VALUE/100) %>%
ggplot(.) + theme_minimal() + xlab("") + ylab("Lending for house purchase excluding revolving (%)") +
geom_line(aes(x = date, y = OBS_VALUE, color = color, linetype = paste0(Bs_item, IR_BUS_COV))) +
add_flags(6) + scale_color_identity() +
scale_x_date(breaks = seq(1960, 2030, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-10, 50, 1),
labels = percent_format(accuracy = 1)) +
theme(legend.position = c(0.8, 0.2),
legend.title = element_blank())
2010
Code
%>%
MIR filter(REF_AREA %in% c("FR", "DE", "IT"),
# A2C: Lending for house purchase excluding revolving loans and overdrafts, convenience and extended credit card debt
%in% c("A2C", "A20"),
BS_ITEM # A: Total
== "A",
MATURITY_NOT_IRATE # R: Rate
== "R",
DATA_TYPE_MIR == "2250") %>%
BS_COUNT_SECTOR left_join(REF_AREA, by = "REF_AREA") %>%
left_join(BS_ITEM, by = "BS_ITEM") %>%
left_join(IR_BUS_COV, by = "IR_BUS_COV") %>%
%>%
month_to_date filter(date >= as.Date("2010-01-01")) %>%
left_join(colors, by = c("Ref_area" = "country")) %>%
mutate(OBS_VALUE = OBS_VALUE/100) %>%
ggplot(.) + theme_minimal() + xlab("") + ylab("Lending for house purchase excluding revolving (%)") +
geom_line(aes(x = date, y = OBS_VALUE, color = color, linetype = paste0(BS_ITEM, " - ", Ir_bus_cov))) +
add_flags(6) + scale_color_identity() +
scale_x_date(breaks = seq(1960, 2030, 1) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-10, 50, .5),
labels = percent_format(accuracy = .1)) +
theme(legend.position = c(0.2, 0.2),
legend.title = element_blank())
2015-
Code
%>%
MIR filter(REF_AREA %in% c("FR", "DE", "IT"),
# A2C: Lending for house purchase excluding revolving loans and overdrafts, convenience and extended credit card debt
%in% c("A2C", "A20"),
BS_ITEM # A: Total
== "A",
MATURITY_NOT_IRATE # R: Rate
== "R",
DATA_TYPE_MIR == "2250") %>%
BS_COUNT_SECTOR left_join(REF_AREA, by = "REF_AREA") %>%
left_join(BS_ITEM, by = "BS_ITEM") %>%
left_join(IR_BUS_COV, by = "IR_BUS_COV") %>%
%>%
month_to_date filter(date >= as.Date("2015-01-01")) %>%
left_join(colors, by = c("Ref_area" = "country")) %>%
mutate(OBS_VALUE = OBS_VALUE/100) %>%
ggplot(.) + theme_minimal() + xlab("") + ylab("Lending for house purchase excluding revolving (%)") +
geom_line(aes(x = date, y = OBS_VALUE, color = color, linetype = paste0(BS_ITEM, " - ", Ir_bus_cov))) +
add_flags(6) + scale_color_identity() +
scale_x_date(breaks = seq(1960, 2030, 1) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-10, 50, .5),
labels = percent_format(accuracy = .1)) +
theme(legend.position = c(0.5, 0.85),
legend.title = element_blank())
A20 - Loans
Loans to Corporations (2240 = Corporations)
Code
%>%
MIR filter(REF_AREA %in% c("FR", "DE", "IT"),
# A20 - Loans
== "A20",
BS_ITEM # A: Total
== "A",
MATURITY_NOT_IRATE # R: Rate
== "R",
DATA_TYPE_MIR == "2240") %>%
BS_COUNT_SECTOR left_join(REF_AREA, by = "REF_AREA") %>%
%>%
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("Loans to corporations (%)") +
geom_line(aes(x = date, y = OBS_VALUE, color = color)) +
add_flags(3) + scale_color_identity() +
scale_x_date(breaks = seq(1960, 2030, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-10, 50, 1),
labels = percent_format(accuracy = 1))
Loans to Households (2250)
Code
%>%
MIR filter(REF_AREA %in% c("FR", "DE", "IT"),
# A2C: Lending for house purchase excluding revolving loans and overdrafts, convenience and extended credit card debt
== "A20",
BS_ITEM # A: Total
== "A",
MATURITY_NOT_IRATE # R: Rate
== "R",
DATA_TYPE_MIR == "2250") %>%
BS_COUNT_SECTOR left_join(REF_AREA, by = "REF_AREA") %>%
%>%
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("Loans to households (%)") +
geom_line(aes(x = date, y = OBS_VALUE, color = color)) +
add_flags(3) + scale_color_identity() +
scale_x_date(breaks = seq(1960, 2030, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-10, 50, 1),
labels = percent_format(accuracy = 1))
A2C - Lending for house purchase excluding revolving
All
Code
%>%
MIR filter(REF_AREA %in% c("FR", "DE", "IT"),
# A2C: Lending for house purchase excluding revolving loans and overdrafts, convenience and extended credit card debt
== "A2C",
BS_ITEM # A: Total
== "A",
MATURITY_NOT_IRATE # R: Rate
== "R",
DATA_TYPE_MIR # N: New business
== "N") %>%
IR_BUS_COV left_join(REF_AREA, by = "REF_AREA") %>%
%>%
month_to_date arrange(date) %>%
left_join(colors, by = c("Ref_area" = "country")) %>%
mutate(OBS_VALUE = OBS_VALUE/100) %>%
ggplot(.) + theme_minimal() + xlab("") + ylab("Lending for house purchase excluding revolving (%)") +
geom_line(aes(x = date, y = OBS_VALUE, color = color)) +
add_flags(3) + scale_color_identity() +
scale_x_date(breaks = seq(1960, 2030, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-10, 50, 1),
labels = percent_format(accuracy = 1))
2010
Code
%>%
MIR filter(REF_AREA %in% c("FR", "DE", "IT"),
# A2A: Loans oth. than revolving loans and overdrafts, convenience and ext. CC debt
== "A2C",
BS_ITEM # A: Total
== "A",
MATURITY_NOT_IRATE # R: Rate
== "R",
DATA_TYPE_MIR # N: New business
== "N") %>%
IR_BUS_COV left_join(REF_AREA, by = "REF_AREA") %>%
%>%
month_to_date filter(date >= as.Date("2010-01-01")) %>%
left_join(colors, by = c("Ref_area" = "country")) %>%
mutate(OBS_VALUE = OBS_VALUE/100) %>%
ggplot(.) + theme_minimal() + xlab("") + ylab("Lending for house purchase excluding revolving (%)") +
geom_line(aes(x = date, y = OBS_VALUE, color = color)) +
add_flags(3) + scale_color_identity() +
scale_x_date(breaks = seq(1960, 2030, 1) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-10, 50, .5),
labels = percent_format(accuracy = .1))
A22 - Lending for house purchase
Table
Code
%>%
MIR filter(BS_ITEM == "A22",
# A: Total
== "A",
MATURITY_NOT_IRATE # R: Rate
== "R") %>%
DATA_TYPE_MIR left_join(REF_AREA, by = "REF_AREA") %>%
group_by(REF_AREA, Ref_area) %>%
filter(TIME_PERIOD == max(TIME_PERIOD) | TIME_PERIOD == "2022-01") %>%
select(REF_AREA, Ref_area, TIME_PERIOD, OBS_VALUE) %>%
spread(TIME_PERIOD, OBS_VALUE) %>%
%>%
ungroup mutate(change = .[[4]] - .[[3]]) %>%
arrange(-change) %>%
print_table_conditional
REF_AREA | Ref_area | 2022-01 | 2024-04 | change |
---|---|---|---|---|
LT | Lithuania | 1.94 | 5.90 | 3.96 |
EE | Estonia | 2.01 | 5.97 | 3.96 |
PL | Poland | 3.74 | 7.62 | 3.88 |
PT | Portugal | 0.82 | 4.66 | 3.84 |
LV | Latvia | 2.30 | 6.13 | 3.83 |
FI | Finland | 0.79 | 4.08 | 3.29 |
SE | Sweden | 1.47 | 4.66 | 3.19 |
ES | Spain | 1.10 | 3.69 | 2.59 |
CY | Cyprus | 2.03 | 4.60 | 2.57 |
DK | Denmark | 1.64 | 3.75 | 2.11 |
AT | Austria | 1.37 | 3.24 | 1.87 |
SI | Slovenia | 2.02 | 3.57 | 1.55 |
IT | Italy | 1.59 | 3.12 | 1.53 |
LU | Luxembourg | 1.56 | 2.96 | 1.40 |
IE | Ireland | 2.47 | 3.70 | 1.23 |
HU | Hungary | 4.63 | 5.80 | 1.17 |
SK | Slovakia | 1.30 | 2.22 | 0.92 |
U2 | Euro area (Member States and Institutions of the Euro Area) changing composition | 1.61 | 2.45 | 0.84 |
BE | Belgium | 1.73 | 2.15 | 0.42 |
FR | France | 1.43 | 1.70 | 0.27 |
NL | Netherlands | 2.32 | 2.59 | 0.27 |
DE | Germany | 1.73 | 1.98 | 0.25 |
HR | Croatia | 3.09 | 2.96 | -0.13 |
MT | Malta | 2.80 | 2.66 | -0.14 |
BG | Bulgaria | 2.98 | 2.80 | -0.18 |
CZ | Czech Republic | NA | NA | NA |
GR | Greece | NA | NA | NA |
RO | Romania | 4.66 | NA | NA |
Estonia, Lithuania, Portugal, Latvia
Code
%>%
MIR filter(REF_AREA %in% c("EE", "LT", "LV", "PT"),
# A22: Lending for house purchase
== "A22",
BS_ITEM # A: Total
== "A",
MATURITY_NOT_IRATE # R: Rate
== "R") %>%
DATA_TYPE_MIR left_join(REF_AREA, by = "REF_AREA") %>%
%>%
month_to_date filter(date >= as.Date("2018-01-01")) %>%
arrange(date) %>%
left_join(colors, by = c("Ref_area" = "country")) %>%
mutate(OBS_VALUE = OBS_VALUE/100,
color = ifelse(REF_AREA == "FR", color2, color)) %>%
ggplot(.) + theme_minimal() + xlab("") + ylab("Lending for house purchase, Old loans (%)") +
geom_line(aes(x = date, y = OBS_VALUE, color = color)) +
add_flags(4) + scale_color_identity() +
scale_x_date(breaks = seq(1960, 2030, 1) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-10, 50, .5),
labels = percent_format(accuracy = .1))
France, Europe, Belgium, Germany, Netherlands
Code
%>%
MIR filter(REF_AREA %in% c("FR", "BE", "DE", "NL"),
# A22: Lending for house purchase
== "A22",
BS_ITEM # A: Total
== "A",
MATURITY_NOT_IRATE # R: Rate
== "R") %>%
DATA_TYPE_MIR left_join(REF_AREA, by = "REF_AREA") %>%
mutate(Ref_area = ifelse(REF_AREA == "U2", "Europe", Ref_area)) %>%
%>%
month_to_date filter(date >= as.Date("2018-01-01")) %>%
arrange(date) %>%
left_join(colors, by = c("Ref_area" = "country")) %>%
mutate(OBS_VALUE = OBS_VALUE/100) %>%
ggplot(.) + theme_minimal() + xlab("") + ylab("Lending for house purchase, Old loans (%)") +
geom_line(aes(x = date, y = OBS_VALUE, color = color)) +
add_flags(4) + scale_color_identity() +
scale_x_date(breaks = seq(1960, 2030, 1) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-10, 50, .2),
labels = percent_format(accuracy = .1))
France, Germany, Italy, Spain, Netherlands
All
Code
%>%
MIR filter(REF_AREA %in% c("FR", "DE", "IT", "ES", "NL"),
# A22: Lending for house purchase
== "A22",
BS_ITEM # A: Total
== "A",
MATURITY_NOT_IRATE # R: Rate
== "R") %>%
DATA_TYPE_MIR left_join(REF_AREA, by = "REF_AREA") %>%
%>%
month_to_date arrange(date) %>%
left_join(colors, by = c("Ref_area" = "country")) %>%
mutate(OBS_VALUE = OBS_VALUE/100,
color = ifelse(REF_AREA == "FR", color2, color)) %>%
ggplot(.) + theme_minimal() + xlab("") + ylab("Lending for house purchase, Old loans (%)") +
geom_line(aes(x = date, y = OBS_VALUE, color = color)) +
add_flags(5) + scale_color_identity() +
scale_x_date(breaks = seq(1960, 2030, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-10, 50, 1),
labels = percent_format(accuracy = 1))
2018-
Code
%>%
MIR filter(REF_AREA %in% c("FR", "DE", "IT", "ES", "NL"),
# A22: Lending for house purchase
== "A22",
BS_ITEM # A: Total
== "A",
MATURITY_NOT_IRATE # R: Rate
== "R") %>%
DATA_TYPE_MIR left_join(REF_AREA, by = "REF_AREA") %>%
%>%
month_to_date filter(date >= as.Date("2018-01-01")) %>%
arrange(date) %>%
left_join(colors, by = c("Ref_area" = "country")) %>%
mutate(OBS_VALUE = OBS_VALUE/100,
color = ifelse(REF_AREA == "FR", color2, color)) %>%
ggplot(.) + theme_minimal() + xlab("") + ylab("Lending for house purchase, Old loans (%)") +
geom_line(aes(x = date, y = OBS_VALUE, color = color)) +
add_flags(5) + scale_color_identity() +
scale_x_date(breaks = seq(1960, 2030, 1) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-10, 50, .5),
labels = percent_format(accuracy = .1))
Estonia, Lithuania, Portugal, Finland, Spain
Code
%>%
MIR filter(REF_AREA %in% c("EE", "LT", "LV", "PT", "FI", "ES"),
# A22: Lending for house purchase
== "A22",
BS_ITEM # A: Total
== "A",
MATURITY_NOT_IRATE # R: Rate
== "R") %>%
DATA_TYPE_MIR left_join(REF_AREA, by = "REF_AREA") %>%
%>%
month_to_date filter(date >= as.Date("2018-01-01")) %>%
arrange(date) %>%
left_join(colors, by = c("Ref_area" = "country")) %>%
mutate(OBS_VALUE = OBS_VALUE/100,
color = ifelse(REF_AREA == "FR", color2, color)) %>%
ggplot(.) + theme_minimal() + xlab("") + ylab("Lending for house purchase, Old loans (%)") +
geom_line(aes(x = date, y = OBS_VALUE, color = color)) +
add_flags(6) + scale_color_identity() +
scale_x_date(breaks = seq(1960, 2030, 1) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-10, 50, .5),
labels = percent_format(accuracy = .1))
France, Europe, Belgium, Germany, Netherlands
Code
%>%
MIR filter(REF_AREA %in% c("FR", "U2", "BE", "DE", "NL"),
# A22: Lending for house purchase
== "A22",
BS_ITEM # A: Total
== "A",
MATURITY_NOT_IRATE # R: Rate
== "R") %>%
DATA_TYPE_MIR left_join(REF_AREA, by = "REF_AREA") %>%
mutate(Ref_area = ifelse(REF_AREA == "U2", "Europe", Ref_area)) %>%
%>%
month_to_date filter(date >= as.Date("2018-01-01")) %>%
arrange(date) %>%
left_join(colors, by = c("Ref_area" = "country")) %>%
mutate(OBS_VALUE = OBS_VALUE/100) %>%
ggplot(.) + theme_minimal() + xlab("") + ylab("Lending for house purchase, Old loans (%)") +
geom_line(aes(x = date, y = OBS_VALUE, color = color)) +
add_flags(5) + scale_color_identity() +
scale_x_date(breaks = seq(1960, 2030, 1) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-10, 50, .2),
labels = percent_format(accuracy = .1))
Credit for consumption and other lending - A25
All
Code
%>%
MIR filter(REF_AREA %in% c("FR", "DE", "IT"),
# A2A: Loans oth. than revolving loans and overdrafts, convenience and ext. CC debt
== "A25",
BS_ITEM # A: Total
== "A",
MATURITY_NOT_IRATE # R: Rate
== "R") %>%
DATA_TYPE_MIR left_join(REF_AREA, by = "REF_AREA") %>%
%>%
month_to_date arrange(date) %>%
left_join(colors, by = c("Ref_area" = "country")) %>%
mutate(OBS_VALUE = OBS_VALUE/100) %>%
ggplot(.) + theme_minimal() + xlab("") + ylab("Credit for consumption and other lending (%)") +
geom_line(aes(x = date, y = OBS_VALUE, color = color)) +
add_flags(3) + scale_color_identity() +
scale_x_date(breaks = seq(1960, 2030, 2) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-10, 50, 1),
labels = percent_format(accuracy = 1))
2017-
Code
%>%
MIR filter(REF_AREA %in% c("FR", "DE", "IT"),
# A2A: Loans oth. than revolving loans and overdrafts, convenience and ext. CC debt
== "A25",
BS_ITEM # A: Total
== "A",
MATURITY_NOT_IRATE # R: Rate
== "R") %>%
DATA_TYPE_MIR left_join(REF_AREA, by = "REF_AREA") %>%
%>%
month_to_date arrange(date) %>%
left_join(colors, by = c("Ref_area" = "country")) %>%
mutate(OBS_VALUE = OBS_VALUE/100) %>%
filter(date >= as.Date("2017-01-01")) %>%
ggplot(.) + theme_minimal() + xlab("") + ylab("Credit for consumption and other lending (%)") +
geom_line(aes(x = date, y = OBS_VALUE, color = color)) +
add_flags(3) + scale_color_identity() +
scale_x_date(breaks = seq(1960, 2030, 1) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-10, 50, 1),
labels = percent_format(accuracy = 1))