Monthly Monetary and Financial Statistics (MEI)

Data - OECD

Info

source dataset .html .RData

oecd

MEI_FIN

2024-09-11 2024-05-21

Data on interest rates

source dataset .html .RData

bdf

FM

2024-07-26 2024-06-18

bdf

MIR

2024-07-26 2024-07-01

bdf

MIR1

2024-07-26 2024-07-01

bis

CBPOL_D

2024-09-13 2024-05-10

bis

CBPOL_M

2024-08-09 2024-04-19

ecb

FM

2024-09-14 2024-09-14

ecb

MIR

2024-06-19 2024-09-14

eurostat

ei_mfir_m

2024-09-14 2024-09-14

eurostat

irt_lt_mcby_d

2024-09-14 2024-08-28

eurostat

irt_st_m

2024-09-14 2024-09-14

fred

r

2024-09-14 2024-09-14

oecd

MEI

2024-04-16 2024-06-30

oecd

MEI_FIN

2024-09-11 2024-05-21

wdi

FR.INR.RINR

2024-08-28 2024-09-15

LAST_COMPILE

LAST_COMPILE
2024-09-15

Last

obsTime Nobs
2024-01 214

Nobs - Javascript

Code
MEI_FIN %>%
  left_join(MEI_FIN_var$SUBJECT, by = "SUBJECT") %>%
  {if (!is_html_output()) mutate(., Subject = substr(Subject, 1, 87)) else .} %>%
  group_by(SUBJECT, Subject, FREQUENCY) %>%
  filter(!is.na(obsValue)) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

Relative consumer price indices - CCRETT01

FRA, DEU, ITA, USA - Monthly

Code
MEI_FIN %>%
  left_join(MEI_FIN_var$LOCATION, by = "LOCATION") %>%
  filter(SUBJECT == "CCRETT01",
         FREQUENCY == "M",
         LOCATION %in% c("FRA", "DEU", "ITA", "USA")) %>%
  month_to_date %>%
  left_join(colors, by = c("Location" = "country")) %>%
  mutate(color = ifelse(LOCATION == "USA", color2, color)) %>%
  ggplot(.) + geom_line(aes(x = date, y = obsValue, color = color)) + 
  theme_minimal() + xlab("") + ylab("Relative consumer price indices") +
  scale_x_date(breaks = seq(1950, 2020, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  add_4flags + scale_color_identity() +
  scale_y_continuous(breaks = seq(-10, 300, 10),
                     labels = dollar_format(accuracy = 1, prefix = ""))

All Countries

Code
MEI_FIN %>%
  left_join(MEI_FIN_var$LOCATION, by = "LOCATION") %>%
  filter(SUBJECT == "CCRETT01") %>%
  group_by(LOCATION, Location, FREQUENCY) %>%
  summarise(Nobs = n(),
            obsTime1 = first(obsTime),
            obsTime2 = last(obsTime)) %>%
  arrange(-Nobs) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

LT Interest Rates

France, Germany, Japan

Code
MEI_FIN %>%
  filter(LOCATION %in% c("FRA", "DEU", "JPN"),
         SUBJECT == "IRLT",
         FREQUENCY == "M") %>%
  month_to_date %>%
  filter(date >= as.Date("2010-01-01")) %>%
  left_join(MEI_FIN_var$LOCATION, by = "LOCATION") %>%
  left_join(colors, by = c("Location" = "country")) %>%
  mutate(obsValue = obsValue / 100) %>%
  ggplot(.) + geom_line(aes(x = date, y = obsValue, color = color)) + 
  scale_color_identity() +
  theme_minimal() + xlab("") + ylab("Long-Term Interest Rates (%)") +
  add_3flags +
  scale_x_date(breaks = seq(1960, 2024, 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 = "none") +
  geom_hline(yintercept = 0, linetype = "dashed")

2019-2021

Code
MEI_FIN %>%
  filter(LOCATION %in% c("FRA", "DEU", "JPN"),
         SUBJECT == "IRLT",
         FREQUENCY == "M") %>%
  month_to_date %>%
  filter(date >= as.Date("2014-02-01")) %>%
  left_join(MEI_FIN_var$LOCATION, by = "LOCATION") %>%
  group_by(LOCATION) %>%
  mutate(obsValue = obsValue / 100) %>%
  ggplot(.) + geom_line(aes(x = date, y = obsValue, color = Location)) + 
  theme_minimal() + xlab("") + ylab("Taux Nominal sur la Dette, 10 ans (%)") +
  add_3flags +
  scale_x_date(breaks = "1 year",
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-10, 50, .2),
                     labels = percent_format(accuracy = .1)) +
  scale_color_manual(values = c("#002395", "#000000", "#BC002D")) +
  theme(legend.position = "none") +
  geom_hline(yintercept = 0, linetype = "dashed")

France, United States, Germany, Japan

All

Code
MEI_FIN %>%
  filter(LOCATION %in% c("FRA", "USA", "DEU", "JPN"),
         SUBJECT == "IRLT",
         FREQUENCY == "M") %>%
  month_to_date %>%
  left_join(MEI_FIN_var$LOCATION, by = "LOCATION") %>%
  left_join(colors, by = c("Location" = "country")) %>%
  group_by(LOCATION) %>%
  mutate(obsValue = obsValue / 100) %>%
  ggplot(.) + geom_line(aes(x = date, y = obsValue, color = color)) + 
  add_4flags +
  theme_minimal() + xlab("") + ylab("Long-Term Interest Rates (%)") +
  scale_x_date(breaks = seq(1960, 2020, 5) %>% 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.80),
        legend.title = element_blank()) +
  scale_color_identity()

1990-

Code
MEI_FIN %>%
  filter(LOCATION %in% c("FRA", "USA", "DEU", "JPN"),
         SUBJECT == "IRLT",
         FREQUENCY == "M") %>%
  month_to_date %>%
  filter(date >= as.Date("1990-01-01")) %>%
  left_join(MEI_FIN_var$LOCATION, by = "LOCATION") %>%
  left_join(colors, by = c("Location" = "country")) %>%
  group_by(LOCATION) %>%
  mutate(obsValue = obsValue / 100) %>%
  ggplot(.) + geom_line(aes(x = date, y = obsValue, color = color)) + 
  scale_color_identity() + add_4flags +
  theme_minimal() + xlab("") + ylab("Long-Term Interest Rates (%)") +
  scale_x_date(breaks = seq(1960, 2020, 5) %>% 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.80),
        legend.title = element_blank())

2010-

Code
MEI_FIN %>%
  filter(LOCATION %in% c("FRA", "USA", "DEU", "JPN"),
         SUBJECT == "IRLT",
         FREQUENCY == "M") %>%
  month_to_date %>%
  filter(date >= as.Date("2010-01-01")) %>%
  left_join(MEI_FIN_var$LOCATION, by = "LOCATION") %>%
  left_join(colors, by = c("Location" = "country")) %>%
  group_by(LOCATION) %>%
  ggplot(.) + geom_line(aes(x = date, y = obsValue / 100, color = color)) + 
  theme_minimal() + xlab("") + ylab("Long-Term Interest Rates (%)") +
  geom_image(data = . %>%
               filter(date == as.Date("2014-01-01")) %>%
               mutate(image = paste0("../../icon/flag/round/", str_to_lower(gsub(" ", "-", Location)), ".png")),
             aes(x = date, y = obsValue / 100, image = image), asp = 1.5) +
  scale_x_date(breaks = seq(1960, 2024, 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 = "none") +
  scale_color_identity()

Last 10 years

Code
MEI_FIN %>%
  filter(LOCATION %in% c("FRA", "USA", "DEU", "JPN"),
         SUBJECT == "IRLT",
         FREQUENCY == "M") %>%
  month_to_date %>%
  filter(date >= Sys.Date() - years(10)) %>%
  left_join(MEI_FIN_var$LOCATION, by = "LOCATION") %>%
  left_join(colors, by = c("Location" = "country")) %>%
  group_by(LOCATION) %>%
  ggplot(.) + geom_line(aes(x = date, y = obsValue / 100, color = color)) + 
  theme_minimal() + xlab("") + ylab("Long-Term Interest Rates (%)") +
  geom_image(data = . %>%
               filter(date == as.Date("2014-01-01")) %>%
               mutate(image = paste0("../../icon/flag/round/", str_to_lower(gsub(" ", "-", Location)), ".png")),
             aes(x = date, y = obsValue / 100, image = image), asp = 1.5) +
  scale_x_date(breaks = seq(1960, 2024, 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 = "none") +
  scale_color_identity()

Short-term Rates

France, United States, Germany, Japan

All

Code
MEI_FIN %>%
  filter(LOCATION %in% c("FRA", "USA", "DEU", "JPN"),
         SUBJECT == "IR3TIB",
         FREQUENCY == "M") %>%
  month_to_date %>%
  left_join(MEI_FIN_var$LOCATION, by = "LOCATION") %>%
  left_join(colors, by = c("Location" = "country")) %>%
  group_by(LOCATION) %>%
  mutate(obsValue = obsValue / 100) %>%
  ggplot(.) + geom_line(aes(x = date, y = obsValue, color = color)) + 
  add_4flags +
  theme_minimal() + xlab("") + ylab("Short-Term Interest Rates (%)") +
  scale_x_date(breaks = seq(1960, 2020, 5) %>% 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.80),
        legend.title = element_blank()) +
  scale_color_identity()

1990-

Code
MEI_FIN %>%
  filter(LOCATION %in% c("FRA", "USA", "DEU", "JPN"),
         SUBJECT == "IR3TIB",
         FREQUENCY == "M") %>%
  month_to_date %>%
  filter(date >= as.Date("1990-01-01")) %>%
  left_join(MEI_FIN_var$LOCATION, by = "LOCATION") %>%
  left_join(colors, by = c("Location" = "country")) %>%
  group_by(LOCATION) %>%
  mutate(obsValue = obsValue / 100) %>%
  ggplot(.) + geom_line(aes(x = date, y = obsValue, color = color)) + 
  scale_color_identity() + add_4flags +
  theme_minimal() + xlab("") + ylab("Long-Term Interest Rates (%)") +
  scale_x_date(breaks = seq(1960, 2020, 5) %>% 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.80),
        legend.title = element_blank())

2010-

Code
MEI_FIN %>%
  filter(LOCATION %in% c("FRA", "USA", "DEU", "JPN"),
         SUBJECT == "IR3TIB",
         FREQUENCY == "M") %>%
  month_to_date %>%
  filter(date >= as.Date("2010-01-01")) %>%
  left_join(MEI_FIN_var$LOCATION, by = "LOCATION") %>%
  left_join(colors, by = c("Location" = "country")) %>%
  group_by(LOCATION) %>%
  ggplot(.) + geom_line(aes(x = date, y = obsValue / 100, color = color)) + 
  theme_minimal() + xlab("") + ylab("Short-Term Interest Rates (%)") +
  geom_image(data = . %>%
               filter(date == as.Date("2014-01-01")) %>%
               mutate(image = paste0("../../icon/flag/round/", str_to_lower(gsub(" ", "-", Location)), ".png")),
             aes(x = date, y = obsValue / 100, image = image), asp = 1.5) +
  scale_x_date(breaks = seq(1960, 2024, 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 = "none") +
  scale_color_identity()

Last 10 years

Code
MEI_FIN %>%
  filter(LOCATION %in% c("FRA", "USA", "DEU", "JPN"),
         SUBJECT == "IR3TIB",
         FREQUENCY == "M") %>%
  month_to_date %>%
  filter(date >= Sys.Date() - years(10)) %>%
  left_join(MEI_FIN_var$LOCATION, by = "LOCATION") %>%
  left_join(colors, by = c("Location" = "country")) %>%
  group_by(LOCATION) %>%
  mutate(obsValue = obsValue / 100) %>%
  ggplot(.) + geom_line(aes(x = date, y = obsValue, color = color)) + 
  theme_minimal() + xlab("") + ylab("Short-Term Interest Rates (%)") + add_3flags +
  scale_x_date(breaks = seq(1960, 2024, 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 = "none") +
  scale_color_identity()