Policy Rates, Monthly

Data - BIS

Info

source dataset Title .html .rData
bis CBPOL_M Policy Rates, Monthly 2026-08-11 2026-07-25

Data on interest rates

source dataset Title .html .rData
bis CBPOL_M Policy Rates, Monthly 2026-08-11 2026-07-25
bdf FM Marché financier, taux 2026-08-11 2026-08-10
bdf MIR Taux d'intérêt - Zone euro 2026-08-11 2026-08-10
bdf MIR1 Taux d'intérêt - France 2026-08-11 2026-08-10
bis CBPOL_D Policy Rates, Daily 2026-08-11 2026-08-01
ecb FM Financial market data 2026-08-12 2026-08-11
ecb MIR MFI Interest Rate Statistics 2026-08-12 2026-08-11
eurostat ei_mfir_m Interest rates - monthly data 2026-08-11 2026-08-11
eurostat irt_lt_mcby_d EMU convergence criterion series - daily data 2026-08-11 2026-08-02
eurostat irt_st_m Money market interest rates - monthly data 2026-08-11 2026-08-11
fred r Interest Rates 2026-08-11 2026-08-11
oecd MEI Main Economic Indicators 2026-08-11 2026-08-02
oecd MEI_FIN Monthly Monetary and Financial Statistics (MEI) 2026-08-11 2026-08-02
wdi FR.INR.DPST Deposit interest rate (%) 2026-08-11 2026-08-11
wdi FR.INR.LEND Lending interest rate (%) 2026-08-11 2026-08-11
wdi FR.INR.RINR Real interest rate (%) 2026-08-11 2026-08-11

Data on monetary policy

source dataset Title .html .rData
bdf FM Marché financier, taux 2026-08-11 2026-08-10
bdf MIR Taux d'intérêt - Zone euro 2026-08-11 2026-08-10
bdf MIR1 Taux d'intérêt - France 2026-08-11 2026-08-10
bis CBPOL Policy Rates, Daily 2026-08-11 2026-07-25
ecb BSI Balance Sheet Items 2026-08-12 2026-08-11
ecb BSI_PUB Balance Sheet Items - Published series 2026-08-12 2026-08-11
ecb FM Financial market data 2026-08-12 2026-08-11
ecb ILM Internal Liquidity Management 2026-08-12 2026-08-11
ecb ILM_PUB Internal Liquidity Management - Published series 2026-08-12 2026-08-11
ecb MIR MFI Interest Rate Statistics 2026-08-12 2026-08-11
ecb RAI Risk Assessment Indicators 2026-08-12 2026-08-11
ecb SUP Supervisory Banking Statistics 2026-08-12 2026-08-12
ecb YC Financial market data - yield curve 2026-08-12 2026-08-12
ecb YC_PUB Financial market data - yield curve - Published series 2026-08-12 2026-08-12
ecb liq_daily Daily Liquidity 2026-08-12 2026-08-12
eurostat ei_mfir_m Interest rates - monthly data 2026-08-11 2026-08-11
eurostat irt_st_m Money market interest rates - monthly data 2026-08-11 2026-08-11
fred r Interest Rates 2026-08-11 2026-08-11
oecd MEI Main Economic Indicators 2026-08-11 2026-08-02
oecd MEI_FIN Monthly Monetary and Financial Statistics (MEI) 2026-08-11 2026-08-02

LAST_COMPILE

LAST_COMPILE
2026-08-12

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, 2100, 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, 2100, 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())