Policy Rates, Monthly

Data - BIS

Info

source dataset Title .html .rData
bis CBPOL_M Policy Rates, Monthly 2026-04-14 2024-04-19

Data on interest rates

source dataset Title .html .rData
bis CBPOL_M Policy Rates, Monthly 2026-04-14 2024-04-19
bdf FM NA NA NA
bdf MIR NA NA NA
bdf MIR1 NA NA NA
bis CBPOL_D Policy Rates, Daily 2026-04-07 2025-08-20
ecb FM Financial market data 2026-03-25 2026-04-14
ecb MIR NA NA NA
eurostat ei_mfir_m Interest rates - monthly data 2026-04-14 2026-04-14
eurostat irt_lt_mcby_d EMU convergence criterion series - daily data 2026-04-14 2025-07-24
eurostat irt_st_m Money market interest rates - monthly data 2026-04-14 2026-04-14
fred r Interest Rates 2026-04-14 2026-04-12
oecd MEI Main Economic Indicators 2024-04-16 2025-07-24
oecd MEI_FIN Monthly Monetary and Financial Statistics (MEI) 2024-09-15 2025-07-24
wdi FR.INR.DPST Deposit interest rate (%) 2022-09-27 2026-04-14
wdi FR.INR.LEND Lending interest rate (%) 2026-03-24 2026-04-14
wdi FR.INR.RINR NA NA NA

Data on monetary policy

source dataset Title .html .rData
bdf FM NA NA NA
bdf MIR NA NA NA
bdf MIR1 NA NA NA
bis CBPOL Policy Rates, Daily 2026-04-08 2026-04-14
ecb BSI NA NA NA
ecb BSI_PUB NA NA NA
ecb FM Financial market data 2026-03-25 2026-04-14
ecb ILM NA NA NA
ecb ILM_PUB NA NA NA
ecb MIR NA NA NA
ecb RAI NA NA NA
ecb SUP NA NA NA
ecb YC NA NA NA
ecb YC_PUB NA NA NA
ecb liq_daily NA NA NA
eurostat ei_mfir_m Interest rates - monthly data 2026-04-14 2026-04-14
eurostat irt_st_m Money market interest rates - monthly data 2026-04-14 2026-04-14
fred r Interest Rates 2026-04-14 2026-04-12
oecd MEI Main Economic Indicators 2024-04-16 2025-07-24
oecd MEI_FIN Monthly Monetary and Financial Statistics (MEI) 2024-09-15 2025-07-24

LAST_COMPILE

LAST_COMPILE
2026-04-15

Last

date Nobs
2024-03-01 34

REF_AREA

Code
CBPOL_M %>%
  left_join(REF_AREA, by = "REF_AREA") %>%
  group_by(REF_AREA, Ref_area) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  mutate(Flag = gsub(" ", "-", str_to_lower(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 .}

FREQ

Code
CBPOL_M %>%
  left_join(FREQ, by = "FREQ") %>%
  group_by(FREQ, Freq) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  {if (is_html_output()) print_table(.) else .}
FREQ Freq Nobs
M Monthly 22535

Individual Countries

Hungary

1990-

Code
CBPOL_M %>%
  filter(REF_AREA %in% c("HU"),
         date >= as.Date("2000-01-01")) %>%
  ggplot(.) + geom_line(aes(x = date, y = OBS_VALUE/100)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 10000, 1),
                labels = percent_format(accuracy = 1)) +
  scale_color_manual(values = viridis(4)[1:3]) +
  theme(legend.position = c(0.8, 0.80),
        legend.title = element_blank())

2010-

Code
CBPOL_M %>%
  filter(REF_AREA %in% c("HU"),
         date >= as.Date("2010-01-01")) %>%
  ggplot(.) + geom_line(aes(x = date, y = OBS_VALUE/100)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 10000, 1),
                labels = percent_format(accuracy = 1)) +
  scale_color_manual(values = viridis(4)[1:3]) +
  theme(legend.position = c(0.8, 0.80),
        legend.title = element_blank())

Poland

1990-

Code
CBPOL_M %>%
  filter(REF_AREA %in% c("PL"),
         date >= as.Date("2000-01-01")) %>%
  ggplot(.) + geom_line(aes(x = date, y = OBS_VALUE/100)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 10000, 1),
                labels = percent_format(accuracy = 1)) +
  scale_color_manual(values = viridis(4)[1:3]) +
  theme(legend.position = c(0.8, 0.80),
        legend.title = element_blank())

2010-

Code
CBPOL_M %>%
  filter(REF_AREA %in% c("PL"),
         date >= as.Date("2010-01-01")) %>%
  ggplot(.) + geom_line(aes(x = date, y = OBS_VALUE/100)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 10000, 1),
                labels = percent_format(accuracy = 1)) +
  scale_color_manual(values = viridis(4)[1:3]) +
  theme(legend.position = c(0.8, 0.80),
        legend.title = element_blank())

Brazil

1990-

Code
CBPOL_M %>%
  filter(REF_AREA %in% c("BR"),
         date >= as.Date("2000-01-01")) %>%
  ggplot(.) + geom_line(aes(x = date, y = OBS_VALUE/100)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 10000, 1),
                labels = percent_format(accuracy = 1)) +
  scale_color_manual(values = viridis(4)[1:3]) +
  theme(legend.position = c(0.8, 0.80),
        legend.title = element_blank())

2010-

Code
CBPOL_M %>%
  filter(REF_AREA %in% c("BR"),
         date >= as.Date("2010-01-01")) %>%
  ggplot(.) + geom_line(aes(x = date, y = OBS_VALUE/100)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 10000, 1),
                labels = percent_format(accuracy = 1)) +
  scale_color_manual(values = viridis(4)[1:3]) +
  theme(legend.position = c(0.8, 0.80),
        legend.title = element_blank())

Iceland

All

Code
CBPOL_M %>%
  filter(REF_AREA %in% c("IS")) %>%
  ggplot(.) + geom_line(aes(x = date, y = OBS_VALUE/100)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 10000, 1),
                labels = percent_format(accuracy = 1)) +
  scale_color_manual(values = viridis(4)[1:3]) +
  theme(legend.position = c(0.8, 0.80),
        legend.title = element_blank())

2014-

Code
CBPOL_M %>%
  filter(REF_AREA %in% c("IS"),
         date >= as.Date("2014-01-01")) %>%
  ggplot(.) + geom_line(aes(x = date, y = OBS_VALUE/100)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 10000, 1),
                labels = percent_format(accuracy = 1)) +
  scale_color_manual(values = viridis(4)[1:3]) +
  theme(legend.position = c(0.8, 0.80),
        legend.title = element_blank())

New Zealand

All

Code
CBPOL_M %>%
  filter(REF_AREA %in% c("NZ")) %>%
  ggplot(.) + geom_line(aes(x = date, y = OBS_VALUE/100)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 10000, 1),
                labels = percent_format(accuracy = 1)) +
  scale_color_manual(values = viridis(4)[1:3]) +
  theme(legend.position = c(0.8, 0.80),
        legend.title = element_blank())

1980-2000

Code
CBPOL_M %>%
  filter(REF_AREA %in% c("NZ"),
         date >= as.Date("1980-01-01"),
         date <= as.Date("2000-01-01")) %>%
  ggplot(.) + geom_line(aes(x = date, y = OBS_VALUE/100)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 10000, 1),
                labels = percent_format(accuracy = 1)) +
  scale_color_manual(values = viridis(4)[1:3]) +
  theme(legend.position = c(0.8, 0.80),
        legend.title = element_blank())

2014-

Code
CBPOL_M %>%
  filter(REF_AREA %in% c("NZ"),
         date >= as.Date("2014-01-01")) %>%
  ggplot(.) + geom_line(aes(x = date, y = OBS_VALUE/100)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 10000, 1),
                labels = percent_format(accuracy = 1)) +
  scale_color_manual(values = viridis(4)[1:3]) +
  theme(legend.position = c(0.8, 0.80),
        legend.title = element_blank())

Israel

All

Code
CBPOL_M %>%
  filter(REF_AREA %in% c("IL")) %>%
  ggplot(.) + geom_line(aes(x = date, y = OBS_VALUE/100)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 10000, 1),
                labels = percent_format(accuracy = 1)) +
  scale_color_manual(values = viridis(4)[1:3]) +
  theme(legend.position = c(0.8, 0.80),
        legend.title = element_blank())

All - Stanley Fischer

Code
CBPOL_M %>%
  filter(REF_AREA %in% c("IL")) %>%
  ggplot(.) + geom_line(aes(x = date, y = OBS_VALUE/100)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 10000, 1),
                labels = percent_format(accuracy = 1)) +
  scale_color_manual(values = viridis(4)[1:3]) +
  theme(legend.position = c(0.8, 0.80),
        legend.title = element_blank()) + 
    geom_rect(data = data_frame(start = as.Date("2005-05-01"), 
                                end = as.Date("2013-06-30")), 
              aes(xmin = start, xmax = end, ymin = -Inf, ymax = +Inf), 
              fill = viridis(4)[4], alpha = 0.2)

2004-

Code
CBPOL_M %>%
  filter(REF_AREA %in% c("IL"),
         date >= as.Date("2004-01-01")) %>%
  ggplot(.) + geom_line(aes(x = date, y = OBS_VALUE/100)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2020, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 10000, 1),
                labels = percent_format(accuracy = 1)) +
  scale_color_manual(values = viridis(4)[1:3]) +
  theme(legend.position = c(0.8, 0.80),
        legend.title = element_blank())

2004- Stanley Fischer

Code
CBPOL_M %>%
  filter(REF_AREA %in% c("IL"),
         date >= as.Date("2004-01-01")) %>%
  ggplot(.) + geom_line(aes(x = date, y = OBS_VALUE/100)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2020, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 10000, 1),
                labels = percent_format(accuracy = 1)) +
  scale_color_manual(values = viridis(4)[1:3]) +
  theme(legend.position = c(0.8, 0.80),
        legend.title = element_blank()) + 
    geom_rect(data = data_frame(start = as.Date("2005-05-01"), 
                                end = as.Date("2013-06-30")), 
              aes(xmin = start, xmax = end, ymin = -Inf, ymax = +Inf), 
              fill = viridis(4)[4], alpha = 0.2)

3 Countries

United States, Japan, Euro Area (1980-)

1980-

Code
CBPOL_M %>%
  filter(REF_AREA %in% c("US", "JP", "XM"),
         date >= as.Date("1980-01-01")) %>%
  left_join(REF_AREA, by = "REF_AREA") %>%
  mutate(Ref_area = ifelse(REF_AREA == "XM", "Europe", Ref_area)) %>%
  left_join(colors, by = c("Ref_area" = "country")) %>%
  ggplot(.) + theme_minimal() + xlab("") + ylab("Policy Rates (%)") +
  geom_line(aes(x = date, y = OBS_VALUE/100, color = color)) + 
  scale_color_identity() + add_flags +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-5, 30, 1),
                labels = percent_format(accuracy = 1)) +
  theme(legend.position = c(0.8, 0.80),
        legend.title = element_blank())

1985-

Code
CBPOL_M %>%
  filter(REF_AREA %in% c("US", "JP", "XM"),
         date >= as.Date("1985-01-01")) %>%
  left_join(REF_AREA, by = "REF_AREA") %>%
  mutate(Ref_area = ifelse(REF_AREA == "XM", "Europe", Ref_area)) %>%
  left_join(colors, by = c("Ref_area" = "country")) %>%
  ggplot(.) + theme_minimal() + xlab("") + ylab("Policy Rates (%)") +
  geom_line(aes(x = date, y = OBS_VALUE/100, color = color)) + 
  scale_color_identity() + add_flags +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-5, 30, 1),
                labels = percent_format(accuracy = 1)) +
  theme(legend.position = c(0.8, 0.80),
        legend.title = element_blank())

Switzerland, Denmark, United Kingdom

Code
CBPOL_M %>%
  filter(REF_AREA %in% c("CH", "DK", "GB")) %>%
  left_join(REF_AREA, by = "REF_AREA") %>%
  left_join(colors, by = c("Ref_area" = "country")) %>%
  ggplot(.) + theme_minimal() + xlab("") + ylab("Policy Rates (%)") +
  geom_line(aes(x = date, y = OBS_VALUE/100, color = color)) + 
  scale_color_identity() + add_flags +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-5, 30, 1),
                labels = percent_format(accuracy = 1)) +
  theme(legend.position = c(0.8, 0.80),
        legend.title = element_blank())

India

All

Code
CBPOL_M %>%
  filter(REF_AREA %in% c("IN")) %>%
  left_join(REF_AREA, by = "REF_AREA") %>%
  left_join(colors, by = c("Ref_area" = "country")) %>%
  ggplot(.) + theme_minimal() + xlab("") + ylab("Policy Rates (%)") +
  geom_line(aes(x = date, y = OBS_VALUE/100, color = color)) + 
  scale_color_identity() + add_flags +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-5, 30, 1),
                labels = percent_format(accuracy = 1)) +
  theme(legend.position = c(0.8, 0.80),
        legend.title = element_blank())

Sweden, India, United States

All

Code
CBPOL_M %>%
  filter(REF_AREA %in% c("SE", "IN", "US")) %>%
  left_join(REF_AREA, by = "REF_AREA") %>%
  left_join(colors, by = c("Ref_area" = "country")) %>%
  ggplot(.) + theme_minimal() + xlab("") + ylab("Policy Rates (%)") +
  geom_line(aes(x = date, y = OBS_VALUE/100, color = color)) + 
  scale_color_identity() + add_flags +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-5, 30, 1),
                labels = percent_format(accuracy = 1)) +
  theme(legend.position = c(0.8, 0.80),
        legend.title = element_blank())

1993-

Code
CBPOL_M %>%
  filter(REF_AREA %in% c("SE", "IN", "US"),
         date >= as.Date("1993-01-01")) %>%
  left_join(REF_AREA, by = "REF_AREA") %>%
  left_join(colors, by = c("Ref_area" = "country")) %>%
  ggplot(.) + theme_minimal() + xlab("") + ylab("Policy Rates (%)") +
  geom_line(aes(x = date, y = OBS_VALUE/100, color = color)) + 
  scale_color_identity() + add_flags +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-5, 30, 1),
                labels = percent_format(accuracy = 1)) +
  theme(legend.position = c(0.8, 0.80),
        legend.title = element_blank())

Japan, Canada, Australia

Code
CBPOL_M %>%
  filter(REF_AREA %in% c("JP", "CA", "AU")) %>%
  left_join(REF_AREA, by = "REF_AREA") %>%
  left_join(colors, by = c("Ref_area" = "country")) %>%
  ggplot(.) + theme_minimal() + xlab("") + ylab("Policy Rates (%)") +
  geom_line(aes(x = date, y = OBS_VALUE/100, color = color)) + 
  scale_color_identity() + add_flags +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-5, 100, 5),
                labels = percent_format(accuracy = 1)) +
  theme(legend.position = c(0.8, 0.80),
        legend.title = element_blank())

South Africa, New Zealand, Norway

Code
CBPOL_M %>%
  filter(REF_AREA %in% c("ZA", "NZ", "NO")) %>%
  left_join(REF_AREA, by = "REF_AREA") %>%
  left_join(colors, by = c("Ref_area" = "country")) %>%
  ggplot(.) + theme_minimal() + xlab("") + ylab("Policy Rates (%)") +
  geom_line(aes(x = date, y = OBS_VALUE/100, color = color)) + 
  scale_color_identity() + add_flags +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-5, 100, 5),
                labels = percent_format(accuracy = 1)) +
  theme(legend.position = c(0.8, 0.80),
        legend.title = element_blank())

Brazil, Philippines, Hungary

All

Code
CBPOL_M %>%
  filter(REF_AREA %in% c("BR", "PH", "HU")) %>%
  left_join(REF_AREA, by = "REF_AREA") %>%
  left_join(colors, by = c("Ref_area" = "country")) %>%
  ggplot(.) + theme_minimal() + xlab("") + ylab("Policy Rates (%)") +
  geom_line(aes(x = date, y = OBS_VALUE/100, color = color)) + 
  scale_color_identity() + add_flags +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-5, 100, 5),
                labels = percent_format(accuracy = 1),
                limits = c(-0.05, 0.40)) +
  theme(legend.position = c(0.8, 0.80),
        legend.title = element_blank())

2000

Code
CBPOL_M %>%
  filter(REF_AREA %in% c("BR", "PH", "HU"),
         date >= as.Date("1998-01-01")) %>%
  left_join(REF_AREA, by = "REF_AREA") %>%
  left_join(colors, by = c("Ref_area" = "country")) %>%
  ggplot(.) + theme_minimal() + xlab("") + ylab("Policy Rates (%)") +
  geom_line(aes(x = date, y = OBS_VALUE/100, color = color)) + 
  scale_color_identity() + add_flags +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-5, 100, 5),
                labels = percent_format(accuracy = 1),
                limits = c(-0.05, 0.40)) +
  theme(legend.position = c(0.8, 0.80),
        legend.title = element_blank())

Russia, Poland, Argentina

Code
CBPOL_M %>%
  filter(REF_AREA %in% c("RU", "PL", "AR")) %>%
  left_join(REF_AREA, by = "REF_AREA") %>%
  left_join(colors, by = c("Ref_area" = "country")) %>%
  ggplot(.) + theme_minimal() + xlab("") + ylab("Policy Rates (%)") +
  geom_line(aes(x = date, y = OBS_VALUE/100, color = color)) + 
  scale_color_identity() + add_flags +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 10000, 50),
                labels = percent_format(accuracy = 1)) +
  theme(legend.position = c(0.8, 0.80),
        legend.title = element_blank())

Israel, Colombia, Croatia

Code
CBPOL_M %>%
  filter(REF_AREA %in% c("IL", "CO", "HR")) %>%
  left_join(REF_AREA, by = "REF_AREA") %>%
  left_join(colors, by = c("Ref_area" = "country")) %>%
  ggplot(.) + theme_minimal() + xlab("") + ylab("Policy Rates (%)") +
  geom_line(aes(x = date, y = OBS_VALUE/100, color = color)) + 
  scale_color_identity() + add_flags +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 10000, 50),
                labels = percent_format(accuracy = 1)) +
  theme(legend.position = c(0.8, 0.80),
        legend.title = element_blank())

Malaysia, Czech Republic, China

Code
CBPOL_M %>%
  filter(REF_AREA %in% c("MY", "CZ", "CN")) %>%
  left_join(REF_AREA, by = "REF_AREA") %>%
  left_join(colors, by = c("Ref_area" = "country")) %>%
  ggplot(.) + theme_minimal() + xlab("") + ylab("Policy Rates (%)") +
  geom_line(aes(x = date, y = OBS_VALUE/100, color = color)) + 
  scale_color_identity() + add_flags +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 10000, 1),
                labels = percent_format(accuracy = 1)) +
  theme(legend.position = c(0.8, 0.80),
        legend.title = element_blank())

Serbia, Chile, Iceland

Code
CBPOL_M %>%
  filter(REF_AREA %in% c("RS", "CL", "IS")) %>%
  left_join(REF_AREA, by = "REF_AREA") %>%
  left_join(colors, by = c("Ref_area" = "country")) %>%
  ggplot(.) + theme_minimal() + xlab("") + ylab("Policy Rates (%)") +
  geom_line(aes(x = date, y = OBS_VALUE/100, color = color)) + 
  scale_color_identity() + add_flags +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 10000, 5),
                labels = percent_format(accuracy = 1)) +
  theme(legend.position = c(0.8, 0.80),
        legend.title = element_blank())

Hong Kong, Mexico, Euro Area

Code
CBPOL_M %>%
  filter(REF_AREA %in% c("HK", "MX", "XM")) %>%
  left_join(REF_AREA, by = "REF_AREA") %>%
  mutate(Ref_area = ifelse(REF_AREA == "XM", "Europe", Ref_area)) %>%
  mutate(Ref_area = ifelse(REF_AREA == "HK", "Hong Kong", Ref_area)) %>%
  left_join(colors, by = c("Ref_area" = "country")) %>%
  ggplot(.) + theme_minimal() + xlab("") + ylab("Policy Rates (%)") +
  geom_line(aes(x = date, y = OBS_VALUE/100, color = color)) + 
  scale_color_identity() + add_flags +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 10000, 5),
                labels = percent_format(accuracy = 1)) +
  theme(legend.position = c(0.8, 0.80),
        legend.title = element_blank())

South Korea, North Macedonia, Saudi Arabia

Code
CBPOL_M %>%
  filter(REF_AREA %in% c("KR", "MK", "SA")) %>%
  left_join(REF_AREA, by = "REF_AREA") %>%
  left_join(colors, by = c("Ref_area" = "country")) %>%
  ggplot(.) + theme_minimal() + xlab("") + ylab("Policy Rates (%)") +
  geom_line(aes(x = date, y = OBS_VALUE/100, color = color)) + 
  scale_color_identity() + add_flags +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 10000, 5),
                labels = percent_format(accuracy = 1)) +
  theme(legend.position = c(0.8, 0.80),
        legend.title = element_blank())