Main aggregates

Data - ECB

Error in readChar(con, 5L, useBytes = TRUE) : 
  impossible d'ouvrir la connexion
Error in readChar(con, 5L, useBytes = TRUE) : 
  impossible d'ouvrir la connexion

Info

source dataset .html .qmd .RData
ecb MNA [2025-08-29] https://fgee olf.com/data

Data on monetary policy

source dataset Title Download Compile
bdf FM Marché financier, taux 2025-08-28 [2025-08-28]
bdf MIR Taux d'intérêt - Zone euro 2025-08-04 [2025-08-28]
bdf MIR1 Taux d'intérêt - France 2025-08-04 [2025-08-28]
bis CBPOL Policy Rates, Daily 2025-10-09 [2025-08-28]
ecb BSI Balance Sheet Items NA [2025-10-09]
ecb BSI_PUB Balance Sheet Items - Published series NA [2025-10-09]
ecb FM Financial market data NA [2025-10-09]
ecb ILM Internal Liquidity Management NA [2025-10-09]
ecb ILM_PUB Internal Liquidity Management - Published series 2024-09-10 [2025-08-29]
ecb MIR MFI Interest Rate Statistics 2025-08-28 [2025-10-09]
ecb RAI Risk Assessment Indicators 2025-08-28 [2025-08-29]
ecb SUP Supervisory Banking Statistics 2025-08-28 [2025-08-29]
ecb YC Financial market data - yield curve NA [2025-08-29]
ecb YC_PUB Financial market data - yield curve - Published series NA [2025-08-29]
ecb liq_daily Daily Liquidity 2025-06-06 [2025-10-09]
eurostat ei_mfir_m Interest rates - monthly data 2025-09-26 [2025-10-01]
eurostat irt_st_m Money market interest rates - monthly data 2025-09-26 [2025-10-01]
fred r Interest Rates 2025-10-09 [2025-10-09]
oecd MEI Main Economic Indicators 2025-07-24 [2024-04-16]
oecd MEI_FIN Monthly Monetary and Financial Statistics (MEI) 2025-07-24 [2024-09-15]

LAST_COMPILE

LAST_COMPILE
2025-10-09

Last

Code
MNA %>%
  group_by(TIME_PERIOD) %>%
  summarise(Nobs = n()) %>%
  arrange(desc(TIME_PERIOD)) %>%
  head(1) %>%
  print_table_conditional()
TIME_PERIOD Nobs
2025-Q2 3200

STO

Code
MNA %>%
  left_join(STO, by = "STO") %>%
  group_by(STO, Sto) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

PRICES

Code
MNA %>%
  left_join(PRICES, by = "PRICES") %>%
  group_by(PRICES, Prices) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  {if (is_html_output()) print_table(.) else .}
PRICES Prices Nobs
V Current prices 1181635
LR Chain linked volume (rebased) 788152
D Deflator (index) 371422
_Z Not applicable 190066
Y Previous year prices 176327

ADJUSTMENT

Code
MNA %>%
  left_join(ADJUSTMENT, by = "ADJUSTMENT") %>%
  group_by(ADJUSTMENT, Adjustment) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  {if (is_html_output()) print_table(.) else .}
ADJUSTMENT Adjustment Nobs
N Neither seasonally nor working day adjusted 1357603
Y Working day and seasonally adjusted 1139841
S Seasonally adjusted, not working day adjusted 143486
W Working day adjusted, not seasonally adjusted 66672

FREQ

Code
MNA %>%
  left_join(FREQ,  by = "FREQ") %>%
  group_by(FREQ, Freq) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  {if (is_html_output()) print_table(.) else .}
FREQ Freq Nobs
Q Quarterly 2422163
A Annual 285439

REF_AREA

Code
MNA %>%
  left_join(REF_AREA,  by = "REF_AREA") %>%
  group_by(REF_AREA, Ref_area) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

COUNTERPART_AREA

Code
MNA %>%
  left_join(COUNTERPART_AREA,  by = "COUNTERPART_AREA") %>%
  group_by(COUNTERPART_AREA, Counterpart_area) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  {if (is_html_output()) print_table(.) else .}
COUNTERPART_AREA Counterpart_area Nobs
W2 Intra-Euro area not allocated 1797199
W0 Intra-EU (changing composition) not allocated 819020
W1 Gaza and Jericho 91383

TITLE

Code
MNA %>%
  group_by(TITLE) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

MNA_B1GQ - GDP in Europe

Quarterly

All

Code
B1GQ %>%
  ggplot + geom_line(aes(x = date, y = B1GQ)) +
  theme_minimal() + xlab("") + ylab("") +
  scale_y_log10(breaks = seq(0, 20000, 500),
                labels = dollar_format(acc = 1, pre = "", su = "Bn€")) +
  scale_x_date(breaks = as.Date(paste0(seq(1940, 2030, 2), "-01-01")),
               labels = date_format("%Y"))

1999-

Code
B1GQ %>%
  filter(date >= as.Date("1999-01-01")) %>%
  ggplot + geom_line(aes(x = date, y = B1GQ)) +
  theme_minimal() + xlab("") + ylab("") +
  scale_y_log10(breaks = seq(0, 20000, 1000),
                labels = dollar_format(acc = 1, pre = "", su = "Bn€")) +
  scale_x_date(breaks = as.Date(paste0(seq(1940, 2030, 2), "-01-01")),
               labels = date_format("%Y"))

Monthly

All

Code
tibble(date = seq.Date(from = as.Date("1995-01-01"), to = Sys.Date(), "1 month")) %>%
  left_join(B1GQ %>% mutate(date = date + months(3)), by = "date") %>%
  mutate(B1GQ_i = spline(x = date, y = B1GQ, xout = date)$y) %>%
  gather(variable, value, -date) %>%
  filter(!is.na(value)) %>%
  ggplot + geom_line(aes(x = date, y = value, color = variable)) +
  theme_minimal() + xlab("") + ylab("") +
  theme(legend.position = c(0.25, 0.9),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(0, 20000, 500),
                labels = dollar_format(acc = 1, pre = "", su = "Bn€")) +
  scale_x_date(breaks = as.Date(paste0(seq(1940, 2030, 2), "-01-01")),
               labels = date_format("%Y"))

2010-

Code
tibble(date = seq.Date(from = as.Date("1995-01-01"), to = Sys.Date(), "1 month")) %>%
  left_join(B1GQ %>% mutate(date = date + months(3)), by = "date") %>%
  mutate(B1GQ_i = spline(x = date, y = B1GQ, xout = date)$y) %>%
  gather(variable, value, -date) %>%
  filter(date >= as.Date("2010-01-01"),
         !is.na(value)) %>%
  ggplot + geom_line(aes(x = date, y = value, color = variable)) +
  theme_minimal() + xlab("") + ylab("") +
  scale_y_log10(breaks = seq(0, 20000, 500),
                labels = dollar_format(acc = 1, pre = "", su = "Bn€")) +
  theme(legend.position = c(0.25, 0.9),
        legend.title = element_blank()) +
  scale_x_date(breaks = as.Date(paste0(seq(1940, 2030, 2), "-01-01")),
               labels = date_format("%Y"))

2019-

Code
tibble(date = seq.Date(from = as.Date("1995-01-01"), to = Sys.Date(), "1 month")) %>%
  left_join(B1GQ %>% mutate(date = date + months(3)), by = "date") %>%
  mutate(B1GQ_i = spline(x = date, y = B1GQ, xout = date)$y) %>%
  gather(variable, value, -date) %>%
  filter(date >= as.Date("2019-01-01"),
         !is.na(value)) %>%
  ggplot + geom_line(aes(x = date, y = value, color = variable)) +
  theme_minimal() + xlab("") + ylab("") +
  scale_y_log10(breaks = seq(0, 20000, 500),
                labels = dollar_format(acc = 1, pre = "", su = "Bn€")) +
  theme(legend.position = c(0.25, 0.9),
        legend.title = element_blank()) +
  scale_x_date(breaks = as.Date(paste0(seq(1940, 2030, 1), "-01-01")),
               labels = date_format("%Y"))

Import / Export Prices

All (1994-)

Code
MNA %>%
  filter(ADJUSTMENT == "Y",
         REF_AREA == "I8",
         STO %in% c("P7", "P6"),
         # D: Deflator (index)
         PRICES == "D") %>%
  quarter_to_date() %>%
  ggplot() + theme_minimal() + ylab("") + xlab("") +
  geom_line(aes(x = date, y = OBS_VALUE/100, color = TITLE)) + 
  
  scale_x_date(breaks = seq(1920, 2025, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  theme(legend.position = c(0.25, 0.9),
        legend.title = element_blank()) +
  scale_y_log10(breaks = 0.01*seq(0, 200, 5))

2000-

Code
MNA %>%
  filter(ADJUSTMENT == "Y",
         REF_AREA == "I8",
         STO %in% c("P7", "P6"),
         # D: Deflator (index)
         PRICES == "D") %>%
  quarter_to_date() %>%
  filter(date >= as.Date("2000-01-01")) %>%
  ggplot() + theme_minimal() + ylab("") + xlab("") +
  geom_line(aes(x = date, y = OBS_VALUE/100, color = TITLE)) + 
  
  scale_x_date(breaks = seq(1920, 2025, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  theme(legend.position = c(0.25, 0.9),
        legend.title = element_blank()) +
  scale_y_log10(breaks = 0.01*seq(0, 200, 5))

2009-2015

Code
MNA %>%
  filter(ADJUSTMENT == "Y",
         REF_AREA == "I8",
         STO %in% c("P7", "P6"),
         # D: Deflator (index)
         PRICES == "D") %>%
  quarter_to_date() %>%
  filter(date >= as.Date("2009-01-01"),
         date <= as.Date("2014-12-31")) %>%
  group_by(TITLE) %>%
  ggplot() + theme_minimal() + ylab("") + xlab("") +
  geom_line(aes(x = date, y = OBS_VALUE, color = TITLE)) + 
  
  scale_x_date(breaks = seq(1920, 2025, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  theme(legend.position = c(0.25, 0.9),
        legend.title = element_blank()) +
  scale_y_log10(breaks = seq(0, 200, 5))

Import / Export Inflation

All (1994-)

Code
MNA %>%
  filter(ADJUSTMENT == "Y",
         REF_AREA == "I8",
         STO %in% c("P7", "P6"),
         # D: Deflator (index)
         PRICES == "D") %>%
  quarter_to_date() %>%
  group_by(TITLE) %>%
  mutate(OBS_VALUE = lead(log(OBS_VALUE), 4) - lag(log(OBS_VALUE), 4)) %>%
  filter(date >= as.Date("1997-01-01")) %>%
  ggplot() + theme_minimal() + ylab("") + xlab("") +
  geom_line(aes(x = date, y = OBS_VALUE, color = TITLE)) + 
  
  scale_x_date(breaks = seq(1920, 2025, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  theme(legend.position = c(0.35, 0.9),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(-100, 200, 2),
                     labels = percent_format(acc = 1))

2000-

Code
MNA %>%
  filter(ADJUSTMENT == "Y",
         REF_AREA == "I8",
         STO %in% c("P7", "P6"),
         # D: Deflator (index)
         PRICES == "D") %>%
  quarter_to_date() %>%
  group_by(TITLE) %>%
  mutate(OBS_VALUE = lead(log(OBS_VALUE), 4) - lag(log(OBS_VALUE), 4)) %>%
  filter(date >= as.Date("2000-01-01")) %>%
  ggplot() + theme_minimal() + ylab("") + xlab("") +
  geom_line(aes(x = date, y = OBS_VALUE, color = TITLE)) + 
  
  scale_x_date(breaks = seq(1920, 2025, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  theme(legend.position = c(0.25, 0.9),
        legend.title = element_blank()) +
  scale_y_continuous(breaks = 0.01*seq(-100, 200, 1),
                     labels = percent_format(acc = 1))

2009-2015

Code
MNA %>%
  filter(ADJUSTMENT == "Y",
         REF_AREA == "I8",
         STO %in% c("P7", "P6"),
         # D: Deflator (index)
         PRICES == "D") %>%
  quarter_to_date() %>%
  group_by(TITLE) %>%
  mutate(OBS_VALUE = lead(log(OBS_VALUE), 4) - lag(log(OBS_VALUE), 4)) %>%
  filter(date >= as.Date("2009-01-01"),
         date <= as.Date("2014-12-31")) %>%
  ggplot() + theme_minimal() + ylab("") + xlab("") +
  geom_line(aes(x = date, y = OBS_VALUE, color = TITLE)) + 
  
  scale_x_date(breaks = seq(1920, 2025, 1) %>% 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(-100, 200, 1),
                     labels = percent_format(acc = 1))