Daily Liquidity
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 monetary policy
source | dataset | .html | .RData |
---|---|---|---|
2024-07-26 | 2024-06-18 | ||
2024-07-26 | 2024-07-01 | ||
2024-07-26 | 2024-07-01 | ||
2024-08-09 | 2024-09-15 | ||
2024-10-08 | 2024-09-16 | ||
2024-10-08 | 2024-10-08 | ||
2024-10-08 | 2024-10-08 | ||
2024-10-08 | 2024-10-08 | ||
2024-10-08 | 2024-09-10 | ||
2024-09-18 | 2024-09-11 | ||
2024-06-19 | 2024-10-08 | ||
2024-09-19 | 2024-10-08 | ||
2024-09-19 | 2024-10-08 | ||
2024-09-19 | 2024-09-16 | ||
2024-09-19 | 2024-10-08 | ||
2024-09-30 | 2024-09-15 | ||
2024-09-30 | 2024-10-08 | ||
2024-09-18 | 2024-09-18 | ||
2024-04-16 | 2024-06-30 | ||
2024-09-15 | 2024-05-21 |
LAST_COMPILE
LAST_COMPILE |
---|
2024-10-09 |
variable
Code
%>%
liq_daily left_join(variable, by = "variable") %>%
group_by(variable, Variable) %>%
summarise(Nobs = n()) %>%
arrange(variable) %>%
print_table_conditional
variable | Variable | Nobs |
---|---|---|
ABSPP | ABSPP - ABS purchase programme | 519 |
CBPP1 | CBPP1 - Covered bond purchase programme | 2632 |
CBPP2 | CBPP2 - Covered bond purchase programme 2 | 1902 |
CBPP3 | CBPP3 - Covered bond purchase programme 3 | 519 |
CSPP | CSPP - Corporate sector purchase programme | 434 |
DF | Deposit facility | 8784 |
MLF | Marginal lending facility | 8784 |
OMO | Open market operations excl. MonPol portfolios | 8784 |
PEPP | PEPP - Pandemic emergency purchase programme | 233 |
PSPP | PSPP - Public sector purchase programm | 498 |
SMP | SMP - Securities Markets programme | 560 |
current_accounts | Current accounts | 8818 |
excess_liquidity | Excess liquidity | 1303 |
net_autonomous_monpol | Net liquidity effect from Autonomous Factors and MonPol portfolios | 8818 |
reserve_requirements | Reserve requirements | 8818 |
duplicates
Same + different values
Code
%>%
liq_daily group_by(variable, date) %>%
filter(n()>1) %>%
arrange(date, variable) %>%
print_table_conditional
Different values
Code
%>%
liq_daily %>%
unique group_by(variable, date) %>%
filter(n()>1) %>%
arrange(date, variable) %>%
print_table_conditional
date | variable | value |
---|---|---|
2008-01-01 | OMO | 535514 |
2008-01-01 | OMO | 535503 |
2008-01-01 | net_autonomous_monpol | 256501 |
2008-01-01 | net_autonomous_monpol | 256490 |
2008-01-02 | OMO | 468454 |
2008-01-02 | OMO | 468443 |
2008-01-02 | net_autonomous_monpol | 262467 |
2008-01-02 | net_autonomous_monpol | 262456 |
2008-01-03 | OMO | 437094 |
2008-01-03 | OMO | 437083 |
2008-01-03 | net_autonomous_monpol | 269250 |
2008-01-03 | net_autonomous_monpol | 269239 |
2008-01-15 | current_accounts | 168183 |
2008-01-15 | current_accounts | 168187 |
2008-01-15 | net_autonomous_monpol | 232059 |
2008-01-15 | net_autonomous_monpol | 232055 |
Data on liquidity
Last date
Code
%>%
liq_daily filter(date == max(date)) %>%
print_table_conditional
date | variable | value |
---|---|---|
2024-09-09 | OMO | 88060 |
2024-09-09 | MLF | 2 |
2024-09-09 | DF | 3061972 |
2024-09-09 | net_autonomous_monpol | -3134848 |
2024-09-09 | current_accounts | 160938 |
2024-09-09 | reserve_requirements | 162202 |
2024-09-09 | excess_liquidity | 3060707 |
Last date by variable
Code
%>%
liq_daily group_by(variable) %>%
filter(date == max(date)) %>%
print_table_conditional
date | variable | value |
---|---|---|
2024-09-09 | OMO | 88060 |
2024-09-09 | MLF | 2 |
2024-09-09 | DF | 3061972 |
2024-09-09 | net_autonomous_monpol | -3134848 |
2024-09-09 | current_accounts | 160938 |
2024-09-09 | reserve_requirements | 162202 |
2024-09-06 | CBPP1 | 0 |
2024-09-06 | CBPP2 | 0 |
2024-09-06 | SMP | 1325 |
2024-09-06 | CBPP3 | 261157 |
2024-09-06 | ABSPP | 8371 |
2024-09-06 | PSPP | 2211616 |
2024-09-06 | CSPP | 302649 |
2024-09-09 | excess_liquidity | 3060707 |
2024-09-06 | PEPP | 1642800 |
Asset purchase program
CBPP1, CBPP2, CBPP3, SMP, ABSPP, PSPP, CSPP, PEPP
All
Code
%>%
liq_daily left_join(variable, by = "variable") %>%
filter(variable %in% c("CBPP1", "CBPP2", "CBPP3", "SMP", "ABSPP", "PSPP", "CSPP", "PEPP")) %>%
+ geom_line(aes(x = date, y = value/10^3, color = Variable)) +
ggplot xlab("") + ylab("") + theme_minimal() +
scale_x_date(breaks = as.Date(paste0(seq(1940, 2030, 2), "-01-01")),
labels = date_format("%Y")) +
theme(legend.position = c(0.3, 0.7),
legend.title = element_blank()) +
scale_y_continuous(breaks = 1000*seq(-100, 90, .5),
labels = scales::dollar_format(acc = 1, su = " Bn€", pre = ""))
2020-
Code
%>%
liq_daily left_join(variable, by = "variable") %>%
filter(date >= as.Date("2020-01-01")) %>%
filter(variable %in% c("CBPP1", "CBPP2", "CBPP3", "SMP", "ABSPP", "PSPP", "CSPP", "PEPP")) %>%
+ geom_line(aes(x = date, y = value/10^3, color = Variable)) +
ggplot xlab("") + ylab("") + theme_minimal() +
scale_x_date(breaks = seq(from = as.Date("2020-01-01"), Sys.Date(), by = "6 months"),
labels = date_format("%b %Y")) +
theme(legend.position = c(0.5, 0.5),
legend.title = element_blank()) +
scale_y_continuous(breaks = 1000*seq(-100, 90, .5),
labels = scales::dollar_format(acc = 1, su = " Bn€", pre = ""))
2022-
Code
%>%
liq_daily left_join(variable, by = "variable") %>%
filter(date >= as.Date("2022-01-01")) %>%
filter(variable %in% c("CBPP1", "CBPP2", "CBPP3", "SMP", "ABSPP", "PSPP", "CSPP", "PEPP")) %>%
+ geom_line(aes(x = date, y = value/10^3, color = Variable)) +
ggplot xlab("") + ylab("") + theme_minimal() +
scale_x_date(breaks = seq(from = as.Date("2022-01-01"), as.Date("2026-01-01"), by = "2 months"),
labels = date_format("%b %Y")) +
theme(legend.position = c(0.45, 0.5),
legend.title = element_blank(),
axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) +
scale_y_continuous(breaks = 1000*seq(-100, 90, .5),
labels = scales::dollar_format(acc = 1, su = " Bn€", pre = ""))
Excess Liquidity
Code
%>%
liq_daily left_join(variable, by = "variable") %>%
filter(Variable == "Excess liquidity") %>%
+ geom_line(aes(x = date, y = value/10^3)) +
ggplot xlab("") + ylab("") + theme_minimal() +
scale_x_date(breaks = as.Date(paste0(seq(1940, 2030, 1), "-01-01")),
labels = date_format("%Y")) +
theme(legend.position = c(0.4, 0.9),
legend.title = element_blank()) +
scale_y_continuous(breaks = 1000*seq(-100, 90, .5),
labels = scales::dollar_format(acc = 1, su = " Bn€", pre = ""))
Excess Liquidity & Deposit Facility
Code
%>%
liq_daily left_join(variable, by = "variable") %>%
filter(Variable %in% c("Excess liquidity", "Deposit facility")) %>%
+ geom_line(aes(x = date, y = value/10^3, color = Variable)) +
ggplot xlab("") + ylab("") + theme_minimal() +
scale_x_date(breaks = as.Date(paste0(seq(1940, 2030, 2), "-01-01")),
labels = date_format("%Y")) +
theme(legend.position = c(0.4, 0.9),
legend.title = element_blank()) +
scale_y_continuous(breaks = 1000*seq(-100, 90, .5),
labels = scales::dollar_format(acc = 1, su = " Bn€", pre = ""))
Synthesis excess liquidity
All
Code
%>%
liq_daily filter(variable %in% c("excess_liquidity", "reserve_requirements", "current_accounts", "DF", "MLF")) %>%
group_by(date, variable) %>%
filter(row_number(value) == 1) %>%
spread(variable, value) %>%
transmute(date, `Excess Liquidity (ECB)` = excess_liquidity,
`Excess Liquidity (own)` = current_accounts-reserve_requirements+DF-MLF) %>%
gather(Variable, value, -date) %>%
+ geom_line(aes(x = date, y = value/10^3, color = Variable, linetype = Variable)) +
ggplot xlab("") + ylab("") + theme_minimal() +
scale_color_manual(values = c("red", "black")) +
scale_x_date(breaks = as.Date(paste0(seq(1940, 2030, 2), "-01-01")),
labels = date_format("%Y")) +
theme(legend.position = c(0.3, 0.9),
legend.title = element_blank()) +
scale_y_continuous(breaks = 1000*seq(-100, 90, .5),
labels = scales::dollar_format(acc = 1, su = " Bn€", pre = ""))
2022
Code
%>%
liq_daily filter(variable %in% c("excess_liquidity", "reserve_requirements", "current_accounts", "DF", "MLF")) %>%
group_by(date, variable) %>%
filter(row_number(value) == 1) %>%
spread(variable, value) %>%
transmute(date, `Excess Liquidity (ECB)` = excess_liquidity,
`Excess Liquidity (own)` = current_accounts-reserve_requirements+DF-MLF) %>%
gather(Variable, value, -date) %>%
filter(date >= as.Date("2022-01-01")) %>%
+ geom_line(aes(x = date, y = value/10^3, color = Variable)) +
ggplot xlab("") + ylab("") + theme_minimal() +
scale_x_date(breaks = seq(from = as.Date("2022-01-01"), as.Date("2026-01-01"), by = "2 months"),
labels = date_format("%b %Y")) +
theme(legend.position = c(0.8, 0.9),
legend.title = element_blank(),
axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) +
scale_y_continuous(breaks = 1000*seq(-100, 90, .5),
labels = scales::dollar_format(acc = 1, su = " Bn€", pre = ""))
Excess Liquidity
Code
%>%
liq_daily filter(variable %in% c("excess_liquidity", "reserve_requirements", "current_accounts", "DF", "MLF")) %>%
group_by(date, variable) %>%
filter(row_number(value) == 1) %>%
spread(variable, value) %>%
transmute(date, value = current_accounts-reserve_requirements+DF-MLF) %>%
+ geom_line(aes(x = date, y = value/10^3)) +
ggplot xlab("") + ylab("Excess liquidity") + theme_minimal() +
scale_x_date(breaks = as.Date(paste0(seq(1940, 2030, 2), "-01-01")),
labels = date_format("%Y")) +
theme(legend.position = c(0.4, 0.9),
legend.title = element_blank()) +
scale_y_continuous(breaks = 1000*seq(-100, 90, .5),
labels = scales::dollar_format(acc = 1, su = " Bn€", pre = ""))
Excess Liquidity & Deposit Facility & Current accounts
All
Code
%>%
liq_daily left_join(variable, by = "variable") %>%
filter(Variable %in% c("Excess liquidity", "Deposit facility", "Current accounts")) %>%
+ geom_line(aes(x = date, y = value/10^3, color = Variable)) +
ggplot xlab("") + ylab("") + theme_minimal() +
scale_x_date(breaks = as.Date(paste0(seq(1940, 2030, 2), "-01-01")),
labels = date_format("%Y")) +
theme(legend.position = c(0.4, 0.9),
legend.title = element_blank()) +
scale_y_continuous(breaks = 1000*seq(-100, 90, .5),
labels = scales::dollar_format(acc = 1, su = " Bn€", pre = ""))
2020-
Code
%>%
liq_daily left_join(variable, by = "variable") %>%
filter(date >= as.Date("2020-01-01")) %>%
filter(Variable %in% c("Excess liquidity", "Deposit facility", "Current accounts")) %>%
+ geom_line(aes(x = date, y = value/10^3, color = Variable)) +
ggplot xlab("") + ylab("") + theme_minimal() +
scale_x_date(breaks = seq(from = as.Date("2020-01-01"), Sys.Date(), by = "6 months"),
labels = date_format("%b %Y")) +
theme(legend.position = c(0.2, 0.9),
legend.title = element_blank()) +
scale_y_continuous(breaks = 1000*seq(-100, 90, .5),
labels = scales::dollar_format(acc = 1, su = " Bn€", pre = ""))
2022-
Code
%>%
liq_daily left_join(variable, by = "variable") %>%
filter(date >= as.Date("2022-01-01")) %>%
filter(Variable %in% c("Excess liquidity", "Deposit facility", "Current accounts")) %>%
+ geom_line(aes(x = date, y = value/10^3, color = Variable)) +
ggplot xlab("") + ylab("") + theme_minimal() +
scale_x_date(breaks = seq(from = as.Date("2022-01-01"), as.Date("2026-01-01"), by = "2 months"),
labels = date_format("%b %Y")) +
theme(legend.position = c(0.15, 0.5),
legend.title = element_blank(),
axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) +
scale_y_continuous(breaks = 1000*seq(-100, 90, .5),
labels = scales::dollar_format(acc = 1, su = " Bn€", pre = ""))
Excess Liquidity & Deposit Facility & Current accounts
All
Code
%>%
liq_daily left_join(variable, by = "variable") %>%
filter(Variable %in% c("Excess liquidity", "Deposit facility", "Current accounts", "Marginal lending facility", "Reserve requirements")) %>%
mutate(Variable = factor(Variable, levels = c("Current accounts", "Reserve requirements", "Deposit facility", "Marginal lending facility", "Excess liquidity"))) %>%
+ geom_line(aes(x = date, y = value/10^3, color = Variable)) +
ggplot xlab("") + ylab("") + theme_minimal() +
scale_x_date(breaks = as.Date(paste0(seq(1940, 2030, 2), "-01-01")),
labels = date_format("%Y")) +
theme(legend.position = c(0.2, 0.8),
legend.title = element_blank()) +
scale_y_continuous(breaks = 1000*seq(-100, 90, .5),
labels = scales::dollar_format(acc = 1, su = " Bn€", pre = ""))
2020-
Code
%>%
liq_daily left_join(variable, by = "variable") %>%
filter(date >= as.Date("2020-01-01")) %>%
filter(Variable %in% c("Excess liquidity", "Deposit facility", "Current accounts", "Marginal lending facility", "Reserve requirements")) %>%
mutate(Variable = factor(Variable, levels = c("Current accounts", "Reserve requirements", "Deposit facility", "Marginal lending facility", "Excess liquidity"))) %>%
+ geom_line(aes(x = date, y = value/10^3, color = Variable)) +
ggplot xlab("") + ylab("") + theme_minimal() +
scale_x_date(breaks = seq(from = as.Date("2020-01-01"), Sys.Date(), by = "6 months"),
labels = date_format("%b %Y")) +
theme(legend.position = c(0.5, 0.5),
legend.title = element_blank()) +
scale_y_continuous(breaks = 1000*seq(-100, 90, .5),
labels = scales::dollar_format(acc = 1, su = " Bn€", pre = ""))
2022-
Code
%>%
liq_daily left_join(variable, by = "variable") %>%
filter(date >= as.Date("2022-01-01")) %>%
filter(Variable %in% c("Excess liquidity", "Deposit facility", "Current accounts", "Marginal lending facility", "Reserve requirements")) %>%
mutate(Variable = factor(Variable, levels = c("Current accounts", "Reserve requirements", "Deposit facility", "Marginal lending facility", "Excess liquidity"))) %>%
+ geom_line(aes(x = date, y = value/10^3, color = Variable)) +
ggplot xlab("") + ylab("") + theme_minimal() +
scale_x_date(breaks = seq(from = as.Date("2022-01-01"), as.Date("2026-01-01"), by = "2 months"),
labels = date_format("%b %Y")) +
theme(legend.position = c(0.15, 0.5),
legend.title = element_blank(),
axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) +
scale_y_continuous(breaks = 1000*seq(-100, 90, .5),
labels = scales::dollar_format(acc = 1, su = " Bn€", pre = ""))
July 2022- Novembre 2022
Code
%>%
liq_daily left_join(variable, by = "variable") %>%
filter(date >= as.Date("2022-09-05"),
<= as.Date("2022-09-20")) %>%
date filter(Variable %in% c("Excess liquidity", "Deposit facility", "Current accounts", "Marginal lending facility", "Reserve requirements")) %>%
mutate(Variable = factor(Variable, levels = c("Current accounts", "Reserve requirements", "Deposit facility", "Marginal lending facility", "Excess liquidity"))) %>%
+ geom_line(aes(x = date, y = value/10^3, color = Variable)) +
ggplot xlab("") + ylab("") + theme_minimal() +
scale_x_date(breaks = seq(from = as.Date("2022-01-01"), as.Date("2026-01-01"), by = "1 day"),
labels = date_format("%d %b %Y")) +
theme(legend.position = c(0.15, 0.5),
legend.title = element_blank(),
axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) +
scale_y_continuous(breaks = 1000*seq(-100, 90, .5),
labels = scales::dollar_format(acc = 1, su = " Bn€", pre = ""))