Economic Outlook No 110 - December 2021

Data - OECD

Info

LAST_DOWNLOAD

Code
tibble(source = c("oecd", "oecd", "oecd", "oecd", "oecd", "oecd"),
       dataset = c("EO", "EO112_INTERNET", "EO111_INTERNET", "EO110_INTERNET", "EO109_INTERNET", "EO108_INTERNET")) %>%
  mutate(Title = read_lines(paste0("~/iCloud/website/data/", source, "/",dataset, ".qmd"), skip = 1, n_max = 1) %>% gsub("title: ", "", .) %>% gsub("\"", "", .)) |>
  mutate(Download = as.Date(file.info(paste0("~/iCloud/website/data/", source, "/", dataset, ".RData"))$mtime),
         Compile = as.Date(file.info(paste0("~/iCloud/website/data/", source, "/", dataset, ".html"))$mtime)) |>
  mutate(Compile = paste0("[", Compile, "](https://fgeerolf.com/data/", source, "/", dataset, '.html)')) |>
  print_table_conditional()
source dataset Title Download Compile
oecd EO Economic Outlook 2026-04-12 [2026-08-09]
oecd EO112_INTERNET Economic Outlook No 112 - November 2022 NA [2026-08-08]
oecd EO111_INTERNET Economic Outlook No 111 - June 2022 NA [2026-08-08]
oecd EO110_INTERNET Economic Outlook No 110 - December 2021 NA [2026-08-08]
oecd EO109_INTERNET Economic Outlook No 109 - May 2021 NA [2026-08-09]
oecd EO108_INTERNET Economic Outlook No 108 - December 2020 NA [2026-08-09]

LAST_COMPILE

LAST_COMPILE
2026-08-09

Last

obsTime Nobs
2023-Q4 3841

VARIABLE

Code
EO110_INTERNET |>
  left_join(EO110_INTERNET_var$VARIABLE, by = "VARIABLE") %>%
  mutate(Variable = Variable |> substr(1, 120)) |>
  group_by(VARIABLE, Variable) |>
  summarise(Nobs = n()) |>
  arrange(-Nobs) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

FREQUENCY

Code
EO110_INTERNET |>
  left_join(EO110_INTERNET_var$FREQUENCY, by = "FREQUENCY") |>
  group_by(FREQUENCY, Frequency) |>
  summarise(Nobs = n()) |>
  arrange(-Nobs) %>%
  {if (is_html_output()) print_table(.) else .}
FREQUENCY Frequency Nobs
Q Quarterly 750598
A Annual 376945

Output Gap (% of GDP)

Germany, Spain, Greece, Italy

Code
EO110_INTERNET |>
  filter(FREQUENCY == "A",
         VARIABLE == "GAP",
         LOCATION %in% c("DEU", "ESP", "GRC", "ITA")) |>
  left_join(EO110_INTERNET_var$LOCATION, by = "LOCATION") |>
  year_to_date() |>
  select(Location, date, obsValue) |>
  arrange(Location, date) |>
  mutate(obsValue = obsValue/100) |>
  left_join(colors, by = c("Location" = "country")) |>
  ggplot() + 
  geom_line(aes(x = date, y = obsValue, color = color)) +
  theme_minimal() + scale_color_identity() + add_4flags +
  scale_x_date(breaks = seq(1920, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-60, 60, 5),
                     labels = scales::percent_format(accuracy = 1)) +
  ylab("Output Gap (% of GDP)") + xlab("")

United States, France, Germany, Switzerland

Code
EO110_INTERNET |>
  filter(FREQUENCY == "A",
         VARIABLE == "GAP",
         LOCATION %in% c("CHE", "FRA", "DEU", "USA")) |>
  left_join(EO110_INTERNET_var$LOCATION, by = "LOCATION") |>
  year_to_date() |>
  select(Location, date, obsValue) |>
  arrange(Location, date) |>
  mutate(obsValue = obsValue/100) |>
  left_join(colors, by = c("Location" = "country")) |>
  ggplot() + 
  geom_line(aes(x = date, y = obsValue, color = color)) +
  theme_minimal() + scale_color_identity() + add_4flags +
  scale_x_date(breaks = seq(1920, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-60, 60, 5),
                     labels = scales::percent_format(accuracy = 1)) +
  ylab("Output Gap (% of GDP)") + xlab("")

Unemployment Rate

Germany, Spain, Greece, Italy

All

Code
EO110_INTERNET |>
  filter(FREQUENCY == "Q",
         VARIABLE == "UNR",
         LOCATION %in% c("DEU", "ITA", "FRA", "USA")) |>
  left_join(EO110_INTERNET_var$LOCATION, by = "LOCATION") |>
  quarter_to_date() |>
  select(Location, date, obsValue) |>
  arrange(Location, date) |>
  mutate(obsValue = obsValue/100) |>
  left_join(colors, by = c("Location" = "country")) |>
  ggplot() + 
  geom_line(aes(x = date, y = obsValue, color = color)) +
  theme_minimal() + scale_color_identity() + add_4flags +
  scale_x_date(breaks = seq(1920, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-60, 60, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  ylab("Unemployment Rate (%)") + xlab("")

1990-

Code
EO110_INTERNET |>
  filter(FREQUENCY == "Q",
         VARIABLE == "UNR",
         LOCATION %in% c("DEU", "ITA", "FRA", "USA")) |>
  left_join(EO110_INTERNET_var$LOCATION, by = "LOCATION") |>
  quarter_to_date() |>
  filter(date >= as.Date("1990-01-01")) |>
  select(Location, date, obsValue) |>
  arrange(Location, date) |>
  mutate(obsValue = obsValue/100) |>
  left_join(colors, by = c("Location" = "country")) |>
  ggplot() + 
  geom_line(aes(x = date, y = obsValue, color = color)) +
  theme_minimal() + scale_color_identity() + add_4flags +
  scale_x_date(breaks = seq(1920, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-60, 60, 1),
                     labels = scales::percent_format(accuracy = 1)) +
  ylab("Unemployment Rate (%)") + xlab("")