Main Economic Indicators

Data - OECD

Info

source dataset Title .html .rData
oecd MEI Main Economic Indicators 2026-08-11 2026-08-02

Data on interest rates

source dataset Title .html .rData
oecd MEI Main Economic Indicators 2026-08-11 2026-08-02
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
bis CBPOL_M Policy Rates, Monthly 2026-08-11 2026-07-25
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_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

LAST_COMPILE

LAST_COMPILE
2026-08-13

Last

obsTime Nobs
2018-Q4 38735

Nobs - Javascript

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

SUBJECT

Code
MEI |>
  left_join(MEI_var$SUBJECT, by = c("SUBJECT")) |>
  group_by(SUBJECT, Subject) |>
  summarise(Nobs = n()) |>
  arrange(-Nobs) |>
  print_table_conditional()

MEASURE

Code
MEI |>
  left_join(MEI_var$MEASURE, by = c("MEASURE")) |>
  group_by(MEASURE, Measure) |>
  summarise(Nobs = n()) |>
  arrange(-Nobs) |>
  print_table_conditional()
MEASURE Measure Nobs
STSA Level, rate or national currency, s.a. 2425828
ST Level, rate or national currency 1920477
IXOB Index 2015=100 1419412
GP Growth rate previous period 1100173
GY Growth rate same period previous year 968026
GPSA Growth rate previous period, s.a. 497797
IXOBSA Index 2015=100, s.a. 486702
CXCU US Dollars, sum over component sub-periods 475488
GYSA Growth rate same period previous year, s.a. 361270
NCCU National currency, sum over component sub-periods 351193
IXNB Index source base 268651
IXEB Index Eurostat base 150748
CXML US Dollars, monthly level 118403
CXMLSA US Dollars, monthly level, s.a. 115902
NCMLSA National currency, monthly level, s.a. 112166
NCML National currency, monthly level 111499
CXCUSA US Dollars, sum over component sub-periods, s.a. 109750
AL Annual Level 109541
CTGY Contribution to annual inflation 91154
NCCUSA National currency, sum over component sub-periods s.a 79410
MLSA Monthly level, s.a. 52317
ML Monthly level 47781
IXNSA Normalised, seasonally adjusted (normal = 100) 42272
IXEBSA Index Eurostat base, s.a. 29473
IXNBSA Index source base, s.a. 6051
QLSA Quarterly level, s.a. 3275
QL Quarterly level 3246
IXPY Index same period previous year = 100 344
CXQLSA NA 152

FREQUENCY

Code
MEI |>
  left_join(MEI_var$FREQUENCY, by = c("FREQUENCY")) |>
  group_by(FREQUENCY, Frequency) |>
  summarise(Nobs = n()) |>
  arrange(-Nobs) |>
  print_table_conditional()
FREQUENCY Frequency Nobs
M Monthly 6300299
Q Quarterly 3862177
A Annual 1296025

LOCATION

Code
MEI |>
  left_join(MEI_var$LOCATION, by = c("LOCATION")) |>
  group_by(LOCATION, Location) |>
  summarise(Nobs = n()) |>
  arrange(-Nobs) |>
  mutate(Flag = gsub(" ", "-", str_to_lower(gsub(" ", "-", Location))),
         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 .}

Monetary Base

M1

All

Code
MEI |>
  filter(LOCATION %in% c("FRA", "USA", "JPN", "DEU"),
         SUBJECT == "MANMM101",
         MEASURE == "IXOB",
         FREQUENCY == "M") |>
  month_to_date() |>
  #filter(date >= as.Date("1990-01-01")) %>%
  left_join(MEI_var$LOCATION, by = "LOCATION") |>
  left_join(colors, by = c("Location" = "country")) |>
  group_by(LOCATION) |>
  mutate(obsValue = obsValue/obsValue[1]) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) + 
  scale_color_identity() + add_2flags + theme_minimal() + xlab("") + ylab("M1") +
  scale_x_date(breaks = seq(1960, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(seq(1, 50, 1), 100, 150, 200, 500, 1000))

1990-

Code
MEI |>
  filter(LOCATION %in% c("FRA", "USA", "JPN", "DEU"),
         SUBJECT == "MANMM101",
         MEASURE == "IXOB",
         FREQUENCY == "M") |>
  month_to_date() |>
  filter(date >= as.Date("1990-01-01")) |>
  left_join(MEI_var$LOCATION, by = "LOCATION") |>
  left_join(colors, by = c("Location" = "country")) |>
  group_by(LOCATION) |>
  mutate(obsValue = obsValue/obsValue[1]) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) + 
  scale_color_identity() + add_2flags + theme_minimal() + xlab("") + ylab("M1") +
  scale_x_date(breaks = seq(1960, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(seq(1, 50, 1), 100, 150, 200, 500, 1000))

M3

All

Code
MEI |>
  filter(LOCATION %in% c("FRA", "USA", "JPN", "DEU"),
         SUBJECT == "MABMM301",
         MEASURE == "IXOB",
         FREQUENCY == "M") |>
  month_to_date() |>
  left_join(MEI_var$LOCATION, by = "LOCATION") |>
  left_join(colors, by = c("Location" = "country")) |>
  group_by(LOCATION) |>
  mutate(obsValue = obsValue/obsValue[1]) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) + 
  scale_color_identity() + add_2flags + theme_minimal() + xlab("") + ylab("M3") +
  scale_x_date(breaks = seq(1960, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(seq(1, 50, 1), 100, 150, 200, 500, 1000))

1990-

Code
MEI |>
  filter(LOCATION %in% c("FRA", "USA", "JPN", "DEU"),
         SUBJECT == "MABMM301",
         MEASURE == "IXOB",
         FREQUENCY == "M") |>
  month_to_date() |>
  filter(date >= as.Date("1990-01-01")) |>
  left_join(MEI_var$LOCATION, by = "LOCATION") |>
  left_join(colors, by = c("Location" = "country")) |>
  group_by(LOCATION) |>
  mutate(obsValue = obsValue/obsValue[1]) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) + 
  scale_color_identity() + add_2flags + theme_minimal() + xlab("") + ylab("M3") +
  scale_x_date(breaks = seq(1960, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(seq(1, 50, 1), 100, 150, 200, 500, 1000))

M1 and M3

LT Interest Rates

France, Germany, Japan

Code
MEI |>
  filter(LOCATION %in% c("FRA", "DEU", "JPN"),
         SUBJECT == "IRLTLT01",
         FREQUENCY == "M") |>
  month_to_date() |>
  filter(date >= as.Date("2010-01-01")) |>
  left_join(MEI_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, 2100, 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 |>
  filter(LOCATION %in% c("FRA", "DEU", "JPN"),
         SUBJECT == "IRLTLT01",
         FREQUENCY == "M") |>
  month_to_date() |>
  filter(date >= as.Date("2014-02-01")) |>
  left_join(MEI_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 |>
  filter(LOCATION %in% c("FRA", "USA", "DEU", "JPN"),
         SUBJECT == "IRLTLT01",
         FREQUENCY == "M") |>
  month_to_date() |>
  left_join(MEI_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, 2100, 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 |>
  filter(LOCATION %in% c("FRA", "USA", "DEU", "JPN"),
         SUBJECT == "IRLTLT01",
         FREQUENCY == "M") |>
  month_to_date() |>
  filter(date >= as.Date("1990-01-01")) |>
  left_join(MEI_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, 2100, 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 |>
  filter(LOCATION %in% c("FRA", "USA", "DEU", "JPN"),
         SUBJECT == "IRLTLT01",
         FREQUENCY == "M") |>
  month_to_date() |>
  filter(date >= as.Date("2010-01-01")) |>
  left_join(MEI_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, 2100, 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()

Employment Rates

United States

2000-

Code
MEI |>
  filter(LOCATION %in% c("USA"),
         SUBJECT %in% c("LREM24TT", "LREM55TT", "LREM25TT", "LREM64TT", "LREMTTTT"),
         FREQUENCY == "Q",
         MEASURE == "STSA") |>
  quarter_to_date() |>
  left_join(MEI_var$LOCATION, by = "LOCATION") |>
  left_join(MEI_var$SUBJECT, by = "SUBJECT") |>
  mutate(obsValue = obsValue / 100,
         Subject = gsub("Labour Force Survey - quarterly rates > Employment rate > Aged ", "", Subject),
         Subject = gsub(" > All persons", "", Subject)) |>
  filter(date >= as.Date("2000-01-01")) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = Subject)) + 
  scale_y_continuous(breaks = 0.01*seq(-10, 100, 5),
                     labels = percent_format(accuracy = 1)) +
  theme_minimal() + xlab("") + ylab("Employment Rates (%)") +
  scale_x_date(breaks = seq(1960, 2100, 1) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.4, 0.80),
        legend.title = element_blank(),
        legend.direction = "horizontal")

2007-

Code
MEI |>
  filter(LOCATION %in% c("USA"),
         SUBJECT %in% c("LREM24TT", "LREM55TT", "LREM25TT", "LREM64TT", "LREMTTTT"),
         FREQUENCY == "Q",
         MEASURE == "STSA") |>
  quarter_to_date() |>
  left_join(MEI_var$LOCATION, by = "LOCATION") |>
  left_join(MEI_var$SUBJECT, by = "SUBJECT") |>
  mutate(obsValue = obsValue / 100,
         Subject = gsub("Labour Force Survey - quarterly rates > Employment rate > Aged ", "", Subject),
         Subject = gsub(" > All persons", "", Subject)) |>
  filter(date >= as.Date("2007-01-01")) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = Subject)) + 
  scale_y_continuous(breaks = 0.01*seq(-10, 100, 5),
                     labels = percent_format(accuracy = 1)) +
  theme_minimal() + xlab("") + ylab("Employment Rates (%)") +
  scale_x_date(breaks = seq(1960, 2100, 1) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.4, 0.80),
        legend.title = element_blank(),
        legend.direction = "horizontal")

France

All

Code
MEI |>
  filter(LOCATION %in% c("FRA"),
         SUBJECT %in% c("LREM24TT", "LREM55TT", "LREM25TT", "LREM64TT", "LREMTTTT"),
         FREQUENCY == "Q",
         MEASURE == "STSA") |>
  quarter_to_date() |>
  left_join(MEI_var$LOCATION, by = "LOCATION") |>
  left_join(MEI_var$SUBJECT, by = "SUBJECT") |>
  mutate(obsValue = obsValue / 100,
         Subject = gsub("Labour Force Survey - quarterly rates > Employment rate > Aged ", "", Subject),
         Subject = gsub(" > All persons", "", Subject)) |>
  filter(date >= as.Date("2007-01-01")) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = Subject)) + 
  scale_y_continuous(breaks = 0.01*seq(-10, 100, 5),
                     labels = percent_format(accuracy = 1)) +
  theme_minimal() + xlab("") + ylab("Employment Rates (%)") +
  scale_x_date(breaks = seq(1960, 2100, 1) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.4, 0.80),
        legend.title = element_blank(),
        legend.direction = "horizontal")

Males

Code
MEI |>
  filter(LOCATION %in% c("FRA"),
         SUBJECT %in% c("LREM24MA", "LREM55MA", "LREM25MA", "LREM64MA", "LREMTTMA"),
         FREQUENCY == "Q",
         MEASURE == "STSA") |>
  quarter_to_date() |>
  left_join(MEI_var$LOCATION, by = "LOCATION") |>
  left_join(MEI_var$SUBJECT, by = "SUBJECT") |>
  mutate(obsValue = obsValue / 100,
         Subject = gsub("Labour Force Survey - quarterly rates > Employment rate > Aged ", "", Subject),
         Subject = gsub(" > Males", "", Subject)) |>
  filter(date >= as.Date("2007-01-01")) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = Subject)) + 
  scale_y_continuous(breaks = 0.01*seq(-10, 100, 5),
                     labels = percent_format(accuracy = 1)) +
  theme_minimal() + xlab("") + ylab("Male Employment Rates (%)") +
  scale_x_date(breaks = seq(1960, 2100, 1) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.4, 0.80),
        legend.title = element_blank(),
        legend.direction = "horizontal")

Females

Code
MEI |>
  filter(LOCATION %in% c("FRA"),
         SUBJECT %in% c("LREM24FE", "LREM55FE", "LREM25FE", "LREM64FE", "LREMTTFE"),
         FREQUENCY == "Q",
         MEASURE == "STSA") |>
  quarter_to_date() |>
  left_join(MEI_var$LOCATION, by = "LOCATION") |>
  left_join(MEI_var$SUBJECT, by = "SUBJECT") |>
  mutate(obsValue = obsValue / 100,
         Subject = gsub("Labour Force Survey - quarterly rates > Employment rate > Aged ", "", Subject),
         Subject = gsub(" > Females", "", Subject)) |>
  filter(date >= as.Date("2007-01-01")) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = Subject)) + 
  scale_y_continuous(breaks = 0.01*seq(-10, 100, 5),
                     labels = percent_format(accuracy = 1)) +
  theme_minimal() + xlab("") + ylab("Female Employment Rates (%)") +
  scale_x_date(breaks = seq(1960, 2100, 1) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.4, 0.80),
        legend.title = element_blank(),
        legend.direction = "horizontal")

Females, Males

France

Code
MEI |>
  filter(LOCATION %in% c("FRA"),
         SUBJECT %in% c("LREM24FE", "LREM55FE", "LREM25FE", "LREM64FE", "LREMTTFE",
                        "LREM24MA", "LREM55MA", "LREM25MA", "LREM64MA", "LREMTTMA"),
         FREQUENCY == "Q",
         MEASURE == "STSA") |>
  quarter_to_date() |>
  left_join(MEI_var$LOCATION, by = "LOCATION") |>
  left_join(MEI_var$SUBJECT, by = "SUBJECT") |>
  mutate(Gender = ifelse(grepl("Males", Subject), "Males", "Females")) |>
  mutate(obsValue = obsValue / 100,
         Subject = gsub("Labour Force Survey - quarterly rates > Employment rate > Aged ", "", Subject),
         Subject = gsub(" > Females", "", Subject),
         Subject = gsub(" > Males", "", Subject)) |>
  filter(date >= as.Date("2007-01-01")) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = Subject, linetype = Gender)) + 
  scale_y_continuous(breaks = 0.01*seq(-10, 100, 5),
                     labels = percent_format(accuracy = 1)) +
  theme_minimal() + xlab("") + ylab("Female Employment Rates (%)") +
  scale_x_date(breaks = seq(1960, 2100, 1) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.4, 0.75),
        legend.title = element_blank(),
        legend.direction = "horizontal")

Germany

Code
MEI |>
  filter(LOCATION %in% c("DEU"),
         SUBJECT %in% c("LREM24FE", "LREM55FE", "LREM25FE", "LREM64FE", "LREMTTFE",
                        "LREM24MA", "LREM55MA", "LREM25MA", "LREM64MA", "LREMTTMA"),
         FREQUENCY == "Q",
         MEASURE == "STSA") |>
  quarter_to_date() |>
  left_join(MEI_var$LOCATION, by = "LOCATION") |>
  left_join(MEI_var$SUBJECT, by = "SUBJECT") |>
  mutate(Gender = ifelse(grepl("Males", Subject), "Males", "Females")) |>
  mutate(obsValue = obsValue / 100,
         Subject = gsub("Labour Force Survey - quarterly rates > Employment rate > Aged ", "", Subject),
         Subject = gsub(" > Females", "", Subject),
         Subject = gsub(" > Males", "", Subject)) |>
  filter(date >= as.Date("2007-01-01")) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = Subject, linetype = Gender)) + 
  scale_y_continuous(breaks = 0.01*seq(-10, 100, 5),
                     labels = percent_format(accuracy = 1)) +
  theme_minimal() + xlab("") + ylab("Male, Female Employment Rates in Germany (%)") +
  scale_x_date(breaks = seq(1960, 2100, 1) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.4, 0.75),
        legend.title = element_blank(),
        legend.direction = "horizontal")

LREM24TT - 15-24

Code
MEI |>
  filter(LOCATION %in% c("FRA", "DEU", "JPN", "USA", "ITA", "ESP", "CHE"),
         SUBJECT == "LREM24TT",
         FREQUENCY == "Q",
         MEASURE == "STSA") |>
  quarter_to_date() |>
  left_join(MEI_var$LOCATION, by = "LOCATION") |>
  left_join(MEI_var$SUBJECT, by = "SUBJECT") |>
  left_join(colors, by = c("Location" = "country")) |>
  mutate(obsValue = obsValue / 100) |>
  filter(date >= as.Date("2007-01-01")) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) + 
  scale_color_identity() + add_7flags +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, 2),
                     labels = percent_format(accuracy = 1)) +
  theme_minimal() + xlab("") + ylab("Employment Rates 15-24 (%)") +
  scale_x_date(breaks = seq(1960, 2100, 1) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = "none")

LREM55TT - 55-64

2000-

Code
MEI |>
  filter(LOCATION %in% c("FRA", "DEU", "JPN", "USA", "ITA", "ESP", "CHE"),
         SUBJECT == "LREM55TT",
         FREQUENCY == "Q",
         MEASURE == "STSA") |>
  quarter_to_date() |>
  left_join(MEI_var$LOCATION, by = "LOCATION") |>
  left_join(MEI_var$SUBJECT, by = "SUBJECT") |>
  left_join(colors, by = c("Location" = "country")) |>
  mutate(obsValue = obsValue / 100) |>
  #filter(date >= as.Date("2000-01-01")) %>%
  ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) + 
  scale_color_identity() + add_7flags +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, 2),
                     labels = percent_format(accuracy = 1)) +
  theme_minimal() + xlab("") + ylab("Employment Rates 55-64 (%)") +
  scale_x_date(breaks = seq(1960, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = "none")

2007-

Code
MEI |>
  filter(LOCATION %in% c("FRA", "DEU", "JPN", "USA", "ITA", "ESP", "CHE"),
         SUBJECT == "LREM55TT",
         FREQUENCY == "Q",
         MEASURE == "STSA") |>
  quarter_to_date() |>
  left_join(MEI_var$LOCATION, by = "LOCATION") |>
  left_join(MEI_var$SUBJECT, by = "SUBJECT") |>
  left_join(colors, by = c("Location" = "country")) |>
  mutate(obsValue = obsValue / 100) |>
  filter(date >= as.Date("2007-01-01")) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) + 
  scale_color_identity() + add_7flags +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, 2),
                     labels = percent_format(accuracy = 1)) +
  theme_minimal() + xlab("") + ylab("Employment Rates 55-64 (%)") +
  scale_x_date(breaks = seq(1960, 2100, 1) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = "none")

LREM25TT - 25-54

Code
MEI |>
  filter(LOCATION %in% c("FRA", "DEU", "JPN", "USA", "ITA"),
         SUBJECT == "LREM25TT",
         FREQUENCY == "Q",
         MEASURE == "STSA") |>
  quarter_to_date() |>
  left_join(MEI_var$LOCATION, by = "LOCATION") |>
  left_join(MEI_var$SUBJECT, by = "SUBJECT") |>
  left_join(colors, by = c("Location" = "country")) |>
  mutate(obsValue = obsValue / 100) |>
  filter(date >= as.Date("2007-01-01")) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) + 
  scale_color_identity() + add_5flags +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, 2),
                     labels = percent_format(accuracy = 1)) +
  theme_minimal() + xlab("") + ylab("Employment Rates 55-64 (%)") +
  scale_x_date(breaks = seq(1960, 2100, 1) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = "none")

LREM64TT - 15-64

Code
MEI |>
  filter(LOCATION %in% c("FRA", "DEU", "JPN", "USA", "ITA", "ESP", "CHE"),
         SUBJECT == "LREM64TT",
         FREQUENCY == "Q",
         MEASURE == "STSA") |>
  quarter_to_date() |>
  left_join(MEI_var$LOCATION, by = "LOCATION") |>
  left_join(MEI_var$SUBJECT, by = "SUBJECT") |>
  left_join(colors, by = c("Location" = "country")) |>
  mutate(obsValue = obsValue / 100) |>
  filter(date >= as.Date("2007-01-01")) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) + 
  scale_color_identity() + add_7flags +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, 2),
                     labels = percent_format(accuracy = 1)) +
  theme_minimal() + xlab("") + ylab("Employment Rates 15-64 (%)") +
  scale_x_date(breaks = seq(1960, 2100, 1) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = "none")

LREMTTTT - 15+

Code
MEI |>
  filter(LOCATION %in% c("FRA", "DEU", "JPN", "USA", "ITA"),
         SUBJECT == "LREMTTTT",
         FREQUENCY == "Q",
         MEASURE == "STSA") |>
  quarter_to_date() |>
  left_join(MEI_var$LOCATION, by = "LOCATION") |>
  left_join(MEI_var$SUBJECT, by = "SUBJECT") |>
  left_join(colors, by = c("Location" = "country")) |>
  mutate(obsValue = obsValue / 100) |>
  filter(date >= as.Date("2007-01-01")) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) + 
  scale_color_identity() + add_5flags +
  scale_y_continuous(breaks = 0.01*seq(-10, 100, 2),
                     labels = percent_format(accuracy = 1)) +
  theme_minimal() + xlab("") + ylab("Employment Rates 15+ (%)") +
  scale_x_date(breaks = seq(1960, 2100, 1) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  theme(legend.position = "none")

Inflation - CPHPTT01

Table - Countries

Code
MEI |>
  filter(SUBJECT == "CPALTT01",
         FREQUENCY == "M",
         MEASURE == "GY") |>
  left_join(MEI_var$LOCATION, by = "LOCATION") |>
  group_by(LOCATION, Location) |>
  summarise(Nobs = n()) |>
  print_table_conditional()

Table - Countries - EA

Code
MEI |>
  filter(SUBJECT == "CPALTT01",
         FREQUENCY == "M",
         MEASURE == "GY",
         LOCATION %in% c("EA19", "EA20", "EU27_2020", "EU28")) |>
  month_to_date() |>
  left_join(MEI_var$LOCATION, by = "LOCATION") |>
  #filter(date >= as.Date("2019-01-01")) %>%
  ggplot() + geom_line(aes(x = date, y = obsValue, color = Location)) + 
  theme_minimal() + xlab("") + ylab("Consumer Price Index, All items") +
  scale_x_date(breaks = seq(1960, 2100, 1) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-10, 200, 1),
                     labels = percent_format(accuracy = 1)) +
  theme(legend.position = c(0.2, 0.80),
        legend.title = element_blank())

All items

(ref:CPALTT01) Consumer Price Index, All items

Code
MEI |>
  filter(LOCATION %in% c("FRA", "USA", "DEU", "JPN", "EA19"),
         SUBJECT == "CPALTT01",
         FREQUENCY == "M",
         MEASURE == "GY") |>
  month_to_date() |>
  left_join(MEI_var$LOCATION, by = "LOCATION") |>
  left_join(colors, by = c("Location" = "country")) |>
  filter(date >= as.Date("2019-01-01")) |>
  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("Consumer Price Index, All items") +
  scale_x_date(breaks = seq(1960, 2100, 1) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-10, 200, 1),
                     labels = percent_format(accuracy = 1)) +
  theme(legend.position = c(0.2, 0.80),
        legend.title = element_blank())

OECD descriptor ID: CPHPTT01 OECD unit ID: GY OECD country ID: EA17

Share Prices - SPASTT01

Nobs

Code
MEI |>
  filter(SUBJECT == "SPASTT01",
         MEASURE == "IXOB",
         FREQUENCY == "M") |>
  left_join(MEI_var$LOCATION, by = c("LOCATION")) |>
  group_by(LOCATION, Location) |>
  summarise(Nobs = n(),
            start = first(obsTime),
            end = last(obsTime)) |>
  arrange(-Nobs) |>
  mutate(Flag = gsub(" ", "-", str_to_lower(gsub(" ", "-", Location))),
         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 .}

France, United States, Japan

All

Code
MEI |>
  filter(LOCATION %in% c("FRA", "USA", "JPN"),
         SUBJECT == "SPASTT01",
         MEASURE == "IXOB",
         FREQUENCY == "M") |>
  month_to_date() |>
  left_join(MEI_var$LOCATION, by = "LOCATION") |>
  left_join(colors, by = c("Location" = "country")) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) + 
  scale_color_identity() + add_3flags + theme_minimal() + xlab("") + ylab("Share Prices") +
  scale_x_date(breaks = seq(1960, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(1, 2, 5, seq(10, 50, 10), 100, 150, 200, 500, 1000))

1990-

Code
MEI |>
  filter(LOCATION %in% c("FRA", "USA", "JPN"),
         SUBJECT == "SPASTT01",
         MEASURE == "IXOB",
         FREQUENCY == "M") |>
  month_to_date() |>
  filter(date >= as.Date("1990-01-01")) |>
  left_join(MEI_var$LOCATION, by = "LOCATION") |>
  left_join(colors, by = c("Location" = "country")) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) + 
  scale_color_identity() + add_3flags + theme_minimal() + xlab("") + ylab("Share Prices") +
  scale_x_date(breaks = seq(1960, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(1, 2, 5, seq(10, 50, 10), 100, 150, 200, 500, 1000))

1990-, Base = 100

Code
MEI |>
  filter(LOCATION %in% c("FRA", "USA", "JPN"),
         SUBJECT == "SPASTT01",
         MEASURE == "IXOB",
         FREQUENCY == "M") |>
  month_to_date() |>
  filter(date >= as.Date("1990-01-01")) |>
  left_join(MEI_var$LOCATION, by = "LOCATION") |>
  left_join(colors, by = c("Location" = "country")) |>
  group_by(LOCATION) |>
  mutate(obsValue = obsValue/obsValue[1]) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) + 
  scale_color_identity() + add_3flags + theme_minimal() + xlab("") + ylab("Share Prices") +
  scale_x_date(breaks = seq(1960, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(1, 2, 5, seq(10, 50, 10), 100, 150, 200, 500, 1000))

Australia, Austria, Canada

Code
MEI |>
  filter(LOCATION %in% c("AUS", "AUT", "CAN"),
         SUBJECT == "SPASTT01",
         MEASURE == "IXOB",
         FREQUENCY == "M") |>
  month_to_date() |>
  left_join(MEI_var$LOCATION, by = "LOCATION") |>
  left_join(colors, by = c("Location" = "country")) |>
  group_by(LOCATION) |>
  mutate(obsValue = obsValue/obsValue[1]) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) + 
  scale_color_identity() + add_3flags + theme_minimal() + xlab("") + ylab("Share Prices") +
  scale_x_date(breaks = seq(1960, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(1, 2, 5, seq(10, 50, 10), 100, 150, 200, 500, 1000))

Switzerland, Germany, Finland

Code
MEI |>
  filter(LOCATION %in% c("CHE", "DEU", "FIN"),
         SUBJECT == "SPASTT01",
         MEASURE == "IXOB",
         FREQUENCY == "M") |>
  month_to_date() |>
  left_join(MEI_var$LOCATION, by = "LOCATION") |>
  left_join(colors, by = c("Location" = "country")) |>
  group_by(LOCATION) |>
  mutate(obsValue = obsValue/obsValue[1]) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) + 
  scale_color_identity() + add_3flags + theme_minimal() + xlab("") + ylab("Share Prices") +
  scale_x_date(breaks = seq(1960, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(1, 2, 5, seq(10, 50, 10), 100, 150, 200, 500, 1000))

France, United Kingdom, India

Code
MEI |>
  filter(LOCATION %in% c("FRA", "GBR", "IND"),
         SUBJECT == "SPASTT01",
         MEASURE == "IXOB",
         FREQUENCY == "M") |>
  month_to_date() |>
  left_join(MEI_var$LOCATION, by = "LOCATION") |>
  left_join(colors, by = c("Location" = "country")) |>
  group_by(LOCATION) |>
  mutate(obsValue = obsValue/obsValue[1]) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) + 
  scale_color_identity() + add_3flags + theme_minimal() + xlab("") + ylab("Share Prices") +
  scale_x_date(breaks = seq(1960, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(1, 2, 5, seq(10, 50, 10), 100, 150, 200, 500, 1000))

Ireland, Italy, Japan

Code
MEI |>
  filter(LOCATION %in% c("IRL", "ITA", "JPN"),
         SUBJECT == "SPASTT01",
         MEASURE == "IXOB",
         FREQUENCY == "M") |>
  month_to_date() |>
  left_join(MEI_var$LOCATION, by = "LOCATION") |>
  left_join(colors, by = c("Location" = "country")) |>
  group_by(LOCATION) |>
  mutate(obsValue = obsValue/obsValue[1]) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) + 
  scale_color_identity() + add_3flags + theme_minimal() + xlab("") + ylab("Share Prices") +
  scale_x_date(breaks = seq(1960, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(1, 2, 5, seq(10, 50, 10), 100, 150, 200, 500, 1000))

Netherlands, Sweden, United States

Code
MEI |>
  filter(LOCATION %in% c("NLD", "SWE", "USA"),
         SUBJECT == "SPASTT01",
         MEASURE == "IXOB",
         FREQUENCY == "M") |>
  month_to_date() |>
  left_join(MEI_var$LOCATION, by = "LOCATION") |>
  left_join(colors, by = c("Location" = "country")) |>
  group_by(LOCATION) |>
  mutate(obsValue = obsValue/obsValue[1]) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) + 
  scale_color_identity() + add_3flags + theme_minimal() + xlab("") + ylab("Share Prices") +
  scale_x_date(breaks = seq(1960, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(1, 2, 5, seq(10, 50, 10), 100, 150, 200, 500, 1000))

South Africa, New Zealand, Mexico

Code
MEI |>
  filter(LOCATION %in% c("ZAF", "NZL", "MEX"),
         SUBJECT == "SPASTT01",
         MEASURE == "IXOB",
         FREQUENCY == "M") |>
  month_to_date() |>
  left_join(MEI_var$LOCATION, by = "LOCATION") |>
  left_join(colors, by = c("Location" = "country")) |>
  group_by(LOCATION) |>
  mutate(obsValue = obsValue/obsValue[1]) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) + 
  scale_color_identity() + add_3flags + theme_minimal() + xlab("") + ylab("Share Prices") +
  scale_x_date(breaks = seq(1960, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(1, 2, 5, seq(10, 50, 10), 100, 150, 200, 500, 1000))

Netherlands, Sweden, United States

Code
MEI |>
  filter(LOCATION %in% c("BRA", "ISR", "KOR"),
         SUBJECT == "SPASTT01",
         MEASURE == "IXOB",
         FREQUENCY == "M") |>
  month_to_date() |>
  left_join(MEI_var$LOCATION, by = "LOCATION") |>
  left_join(colors, by = c("Location" = "country")) |>
  group_by(LOCATION) |>
  mutate(obsValue = obsValue/obsValue[1]) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) + 
  scale_color_identity() + add_3flags + theme_minimal() + xlab("") + ylab("Share Prices") +
  scale_x_date(breaks = seq(1960, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(1, 2, 5, seq(10, 50, 10), 100, 150, 200, 500, 1000))

CA Balance

Code
MEI |>
  filter(LOCATION %in% c("FRA", "USA", "DEU", "JPN"),
         SUBJECT == "B6BLTT02",
         FREQUENCY == "Q") |>
  quarter_to_date() |>
  left_join(MEI_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)) + 
  scale_color_identity() + add_3flags +
  theme_minimal() + xlab("") + ylab("Total CA Balance, % of GDP") +
  scale_x_date(breaks = seq(1960, 2100, 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.2, 0.80),
        legend.title = element_blank())

Housing excl imputed rentals for housing

(ref:CPGRHO02) Housing excluding imputed rentals for housing

Code
MEI |>
  filter(LOCATION %in% c("FRA", "USA", "DEU", "JPN"),
         SUBJECT == "CPGRHO02",
         MEASURE == "IXOB",
         FREQUENCY == "Q") |>
  quarter_to_date() |>
  left_join(MEI_var$LOCATION, by = "LOCATION") |>
  left_join(colors, by = c("Location" = "country")) |>
  group_by(LOCATION) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) + 
  scale_color_identity() + add_3flags +
  theme_minimal() + xlab("") + ylab("CPI") +
  scale_x_date(breaks = seq(1960, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(-10, 200, 10),
                     labels = dollar_format(accuracy = 1, prefix = "")) +
  theme(legend.position = c(0.2, 0.80),
        legend.title = element_blank())

(ref:CPGRHO02)

CPI

All items

(ref:CPALTT01) Consumer Price Index, All items

Code
MEI |>
  filter(LOCATION %in% c("FRA", "USA", "DEU", "JPN"),
         SUBJECT == "CPALTT01",
         FREQUENCY == "Q",
         MEASURE == "IXOB") |>
  quarter_to_date() |>
  left_join(MEI_var$LOCATION, by = "LOCATION") |>
  left_join(colors, by = c("Location" = "country")) |>
  group_by(LOCATION) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) + 
  scale_color_identity() + add_3flags +
  theme_minimal() + xlab("") + ylab("Consumer Price Index, All items") +
  scale_x_date(breaks = seq(1960, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(-10, 200, 10),
                     labels = dollar_format(accuracy = 1, prefix = "")) +
  theme(legend.position = c(0.2, 0.80),
        legend.title = element_blank())

(ref:CPALTT01)

Services less housing

(ref:CPGRLH01) Consumer Price Index, Services less housing

Code
MEI |>
  filter(LOCATION %in% c("FRA", "USA", "DEU", "JPN"),
         SUBJECT == "CPGRLH01",
         FREQUENCY == "Q",
         MEASURE == "IXOB") |>
  quarter_to_date() |>
  left_join(MEI_var$LOCATION, by = "LOCATION") |>
  left_join(colors, by = c("Location" = "country")) |>
  group_by(LOCATION) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) + 
  scale_color_identity() + add_3flags +
  theme_minimal() + xlab("") + ylab("Services less housing") +
  scale_x_date(breaks = seq(1960, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(-10, 200, 10),
                     labels = dollar_format(accuracy = 1, prefix = "")) +
  theme(legend.position = c(0.2, 0.80),
        legend.title = element_blank())

(ref:CPGRLH01)

Food and non-Alcoholic beverages

(ref:CP010000) CPI, Food and non-Alcoholic beverages

Code
MEI |>
  filter(LOCATION %in% c("FRA", "USA", "DEU", "JPN"),
         SUBJECT == "CP010000",
         FREQUENCY == "Q",
         MEASURE == "IXOB") |>
  quarter_to_date() |>
  left_join(MEI_var$LOCATION, by = "LOCATION") |>
  left_join(colors, by = c("Location" = "country")) |>
  group_by(LOCATION) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) + 
  scale_color_identity() + add_3flags +
  theme_minimal() + xlab("") + ylab("CPI, Food and non-Alcoholic beverages") +
  scale_x_date(breaks = seq(1960, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(-10, 200, 10),
                     labels = dollar_format(accuracy = 1, prefix = "")) +
  theme(legend.position = c(0.2, 0.80),
        legend.title = element_blank())

(ref:CP010000)

Clothing and Footware

(ref:CP030000) CPI, Clothing and Footware

Code
MEI |>
  filter(LOCATION %in% c("FRA", "USA", "DEU", "JPN"),
         SUBJECT == "CP030000",
         FREQUENCY == "Q",
         MEASURE == "IXOB") |>
  quarter_to_date() |>
  left_join(MEI_var$LOCATION, by = "LOCATION") |>
  left_join(colors, by = c("Location" = "country")) |>
  group_by(LOCATION) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) + 
  scale_color_identity() + add_3flags +
  theme_minimal() + xlab("") + ylab("CPI, Clothing and Footware") +
  scale_x_date(breaks = seq(1960, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(-10, 200, 10),
                     labels = dollar_format(accuracy = 1, prefix = "")) +
  theme(legend.position = c(0.2, 0.80),
        legend.title = element_blank())

(ref:CP030000)

Restaurants and hotels

(ref:CP110000) CPI, Restaurants and hotels

Code
MEI |>
  filter(LOCATION %in% c("FRA", "USA", "DEU", "JPN"),
         SUBJECT == "CP110000",
         FREQUENCY == "Q",
         MEASURE == "IXOB") |>
  quarter_to_date() |>
  left_join(MEI_var$LOCATION, by = "LOCATION") |>
  left_join(colors, by = c("Location" = "country")) |>
  group_by(LOCATION) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) + 
  scale_color_identity() + add_3flags +
  theme_minimal() + xlab("") + ylab("CPI,  Restaurants and hotels") +
  scale_x_date(breaks = seq(1960, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(-10, 200, 10),
                     labels = dollar_format(accuracy = 1, prefix = "")) +
  theme(legend.position = c(0.2, 0.80),
        legend.title = element_blank())

(ref:CP110000)

Actual rentals for housing

Code
MEI |>
  filter(LOCATION %in% c("FRA", "USA", "DEU", "JPN"),
         SUBJECT == "CP040100",
         FREQUENCY == "Q",
         MEASURE == "IXOB") |>
  quarter_to_date() |>
  left_join(MEI_var$LOCATION, by = "LOCATION") |>
  left_join(colors, by = c("Location" = "country")) |>
  group_by(LOCATION) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) + 
  scale_color_identity() + add_3flags +
  theme_minimal() + xlab("") + ylab("CPI, Actual rentals for housing") +
  scale_x_date(breaks = seq(1960, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(-10, 200, 10),
                     labels = dollar_format(accuracy = 1, prefix = "")) +
  theme(legend.position = c(0.2, 0.80),
        legend.title = element_blank())

Exchange Rates

Code
MEI |>
  filter(LOCATION %in% c("FRA", "DEU", "ITA"),
         # CCUSMA02: Average of daily rates > National currency:USD
         SUBJECT == "CCUSMA02",
         # ST: Level, rate or national currency
         MEASURE == "ST",
         FREQUENCY == "Q") |>
  quarter_to_date() |>
  left_join(MEI_var$LOCATION, by = "LOCATION") |>
  left_join(colors, by = c("Location" = "country")) |>
  group_by(LOCATION) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) + 
  scale_color_identity() + add_3flags +
  theme_minimal() + xlab("") + ylab("Exchange Rate ($1 = ?National Currency)") +
  scale_x_date(breaks = seq(1960, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(0, 10, 0.2),
                     labels = dollar_format(accuracy = 0.1, prefix = "", suffix = "../$")) +
  theme(legend.position = c(0.8, 0.80),
        legend.title = element_blank())

Passenger cars

Example

Code
MEI |>
  filter(LOCATION %in% c("FRA", "DEU", "ITA"),
         # SLRTCR03: Passenger cars
         SUBJECT == "SLRTCR03",
         # ML: Monthly level
         MEASURE == "ML",
         FREQUENCY == "M") |>
  month_to_date() |>
  left_join(MEI_var$LOCATION, by = "LOCATION") |>
  left_join(colors, by = c("Location" = "country")) |>
  group_by(LOCATION) |>
  mutate(obsValue = obsValue/10^3) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) + 
  scale_color_identity() + add_3flags +
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(0, 1000, 50),
                     labels = dollar_format(accuracy = 1, prefix = "", suffix = "K")) +
  theme(legend.position = c(0.2, 0.80),
        legend.title = element_blank())

Example

Code
MEI |>
  filter(LOCATION %in% c("FRA", "DEU", "ITA","USA"),
         # SLRTCR03: Passenger cars
         SUBJECT == "SLRTCR03",
         # ML: Monthly level
         MEASURE == "ML",
         FREQUENCY == "A") |>
  year_to_date() |>
  left_join(MEI_var$LOCATION, by = "LOCATION") |>
  left_join(colors, by = c("Location" = "country")) |>
  group_by(LOCATION) |>
  mutate(obsValue = obsValue/10^3) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) + 
  scale_color_identity() + add_3flags +
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(0, 1000, 50),
                     labels = dollar_format(accuracy = 1, prefix = "", suffix = "K")) +
  theme(legend.position = c(0.2, 0.80),
        legend.title = element_blank())

Current Account Balance

Code
MEI |>
  filter(LOCATION %in% c("FRA", "DEU", "ITA"),
         # B6BLTT01: Balance of payments BPM6 > Current account Balance > Total > Total Balance
         SUBJECT == "B6BLTT01",
         # CXCUSA: US Dollars, sum over component sub-periods, s.a
         MEASURE == "CXCUSA",
         FREQUENCY == "Q") |>
  quarter_to_date() |>
  left_join(MEI_var$LOCATION, by = "LOCATION") |>
  left_join(colors, by = c("Location" = "country")) |>
  group_by(LOCATION) |>
  mutate(obsValue = obsValue/10^3) |>
  ggplot() + geom_line(aes(x = date, y = obsValue, color = color)) + 
  scale_color_identity() + add_3flags +
  theme_minimal() +
  theme(legend.title = element_blank(),
        legend.position = c(0.2, 0.8)) +
  scale_x_date(breaks = seq(1950, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(-20000, 400000, 10),
                     labels = dollar_format(accuracy = 1, suffix = " Bn", prefix = "$ ")) + 
  xlab("") + ylab("Current account Balance, Total")