Producer prices in industry, domestic market - monthly data

Data - Eurostat

Info

Last observation: Monthly: 2026M07 (N = 1,290)

First observation: Monthly: 1975M01 (N = 366)

Last data update: 13 aoû 2026, 23:19. Last compile: 14 aoû 2026, 05:07

Structure

France, Germany, Italy

All

Code
sts_inppd_m |>
  filter(nace_r2 == "C",
         unit == "I21",
         geo %in% c("FR", "DE", "IT")) |>
  select(geo, Geo, time, values) |>
  group_by(geo) |>
  mutate(values = values/values[time == "2000M01"]) |>
  
  mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) |>
  month_to_date() |>
  ggplot() + ylab("Domestic output price index - in national currency") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = values, color = Geo)) +
  scale_color_manual(values = c("#0055a4", "#000000", "#008c45")) +
  scale_x_date(breaks = seq(1920, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  add_flags +
  theme(legend.position = "none") +
  scale_y_log10(breaks = seq(-60, 300, 10))

1995-

Code
sts_inppd_m |>
  filter(nace_r2 == "C",
         unit == "I21",
         geo %in% c("FR", "DE", "IT")) |>
  select(geo, Geo, time, values) |>
  group_by(geo) |>
  mutate(values = 100*values/values[time == "2000M01"]) |>
  
  mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) |>
  month_to_date() |>
  filter(date >= as.Date("1995-01-01")) |>
  ggplot() + ylab("Domestic output price index - in national currency") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = values, color = Geo)) +
  scale_color_manual(values = c("#0055a4", "#000000", "#008c45")) +
  scale_x_date(breaks = seq(1920, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  add_flags +
  theme(legend.position = "none") +
  scale_y_log10(breaks = seq(-60, 300, 5))

2000-

Code
sts_inppd_m |>
  filter(nace_r2 == "C",
         unit == "I21",
         geo %in% c("FR", "DE", "IT")) |>
  select(geo, Geo, time, values) |>
  group_by(geo) |>
  mutate(values = 100*values/values[time == "2000M01"]) |>
  
  mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) |>
  month_to_date() |>
  filter(date >= as.Date("2000-01-01")) |>
  ggplot() + ylab("Domestic output price index - in national currency") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = values, color = Geo)) +
  scale_color_manual(values = c("#0055a4", "#000000", "#008c45")) +
  scale_x_date(breaks = seq(1920, 2100, 5) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  add_flags +
  theme(legend.position = "none") +
  scale_y_log10(breaks = seq(-60, 300, 5))

2020-

Code
sts_inppd_m |>
  filter(nace_r2 == "C",
         unit == "I21",
         geo %in% c("FR", "DE", "IT")) |>
  select(geo, Geo, time, values) |>
  
  mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) |>
  month_to_date() |>
  filter(date >= as.Date("2020-01-01")) |>
  group_by(geo) |>
  arrange(date) |>
  mutate(values = 100*values/values[1]) |>
  ggplot() + ylab("Domestic output price index - in national currency") + xlab("") + theme_minimal() +
  geom_line(aes(x = date, y = values, color = Geo)) +
  scale_color_manual(values = c("#0055a4", "#000000", "#008c45")) +
  scale_x_date(breaks = "6 months",
               labels = date_format("%b %Y")) +
  add_flags +
  theme(legend.position = "none") +
  scale_y_log10(breaks = seq(-60, 300, 5))

Euro Area 19

C

All

Code
sts_inpp_m |>
  bind_rows(sts_inppd_m) |>
  bind_rows(sts_inppnd_m) |>
  filter(nace_r2 == "C",
         unit == "PCH_SM",
         geo %in% c("EA19")) |>
  month_to_date() |>
  
  mutate(values = values/100) |>
  ggplot() + geom_line(aes(x = date, y = values, color = Indic_bt)) + 
  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 = 0.01*seq(-100, 100, 5),
                     labels = percent_format(a = 1)) + 
  theme(legend.position = c(0.6, 0.85),
        legend.title = element_blank())

2016-

Code
sts_inpp_m |>
  bind_rows(sts_inppd_m) |>
  bind_rows(sts_inppnd_m) |>
  filter(nace_r2 == "C",
         unit == "PCH_SM",
         geo %in% c("EA19")) |>
  month_to_date() |>
  filter(date >= as.Date("2016-01-01")) |>
  
  mutate(values = values/100) |>
  ggplot() + geom_line(aes(x = date, y = values, color = Indic_bt)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 1) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-100, 100, 5),
                     labels = percent_format(a = 1)) + 
  theme(legend.position = c(0.3, 0.85),
        legend.title = element_blank())

2020-

Code
sts_inpp_m |>
  bind_rows(sts_inppd_m) |>
  bind_rows(sts_inppnd_m) |>
  filter(nace_r2 == "C",
         unit == "PCH_SM",
         geo %in% c("EA19")) |>
  month_to_date() |>
  filter(date >= as.Date("2020-01-01")) |>
  
  mutate(values = values/100) |>
  ggplot() + geom_line(aes(x = date, y = values, color = Indic_bt)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq.Date(as.Date("2019-12-01"), as.Date("2100-01-01"), "3 months"),
               labels = date_format("%b %Y")) +
  scale_y_continuous(breaks = 0.01*seq(-100, 100, 5),
                     labels = percent_format(a = 1)) + 
  theme(legend.position = c(0.3, 0.85),
        legend.title = element_blank())

France

C

All

Code
sts_inpp_m |>
  bind_rows(sts_inppd_m) |>
  bind_rows(sts_inppnd_m) |>
  filter(nace_r2 == "C",
         unit == "PCH_SM",
         geo %in% c("FR")) |>
  month_to_date() |>
  
  mutate(values = values/100) |>
  ggplot() + geom_line(aes(x = date, y = values, color = Indic_bt)) + 
  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 = 0.01*seq(-100, 100, 5),
                     labels = percent_format(a = 1)) + 
  theme(legend.position = c(0.6, 0.85),
        legend.title = element_blank())

2016-

Code
sts_inpp_m |>
  bind_rows(sts_inppd_m) |>
  bind_rows(sts_inppnd_m) |>
  filter(nace_r2 == "C",
         unit == "PCH_SM",
         geo %in% c("FR")) |>
  month_to_date() |>
  filter(date >= as.Date("2016-01-01")) |>
  
  mutate(values = values/100) |>
  ggplot() + geom_line(aes(x = date, y = values, color = Indic_bt)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 1) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-100, 100, 5),
                     labels = percent_format(a = 1)) + 
  theme(legend.position = c(0.3, 0.85),
        legend.title = element_blank())

2020-

Code
sts_inpp_m |>
  bind_rows(sts_inppd_m) |>
  bind_rows(sts_inppnd_m) |>
  filter(nace_r2 == "C",
         unit == "PCH_SM",
         geo %in% c("FR")) |>
  month_to_date() |>
  filter(date >= as.Date("2020-01-01")) |>
  
  mutate(values = values/100) |>
  ggplot() + geom_line(aes(x = date, y = values, color = Indic_bt)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq.Date(as.Date("2019-12-01"), as.Date("2100-01-01"), "3 months"),
               labels = date_format("%b %Y")) +
  scale_y_continuous(breaks = 0.01*seq(-100, 100, 5),
                     labels = percent_format(a = 1)) + 
  theme(legend.position = c(0.3, 0.85),
        legend.title = element_blank())

D35

All

Code
sts_inpp_m |>
  bind_rows(sts_inppd_m) |>
  bind_rows(sts_inppnd_m) |>
  filter(nace_r2 == "D35",
         unit == "PCH_SM",
         geo %in% c("FR")) |>
  month_to_date() |>
  
  mutate(values = values/100) |>
  ggplot() + geom_line(aes(x = date, y = values, color = Indic_bt)) + 
  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 = 0.01*seq(-100, 1000, 20),
                     labels = percent_format(a = 1)) + 
  theme(legend.position = c(0.6, 0.85),
        legend.title = element_blank())

2016-

Code
sts_inpp_m |>
  bind_rows(sts_inppd_m) |>
  bind_rows(sts_inppnd_m) |>
  filter(nace_r2 == "D35",
         unit == "PCH_SM",
         geo %in% c("FR")) |>
  month_to_date() |>
  filter(date >= as.Date("2016-01-01")) |>
  
  mutate(values = values/100) |>
  ggplot() + geom_line(aes(x = date, y = values, color = Indic_bt)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 1) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-100, 1000, 20),
                     labels = percent_format(a = 1)) + 
  theme(legend.position = c(0.3, 0.85),
        legend.title = element_blank())

2020-

Code
sts_inpp_m |>
  bind_rows(sts_inppd_m) |>
  bind_rows(sts_inppnd_m) |>
  filter(nace_r2 == "D35",
         unit == "PCH_SM",
         geo %in% c("FR")) |>
  month_to_date() |>
  filter(date >= as.Date("2020-01-01")) |>
  
  mutate(values = values/100) |>
  ggplot() + geom_line(aes(x = date, y = values, color = Indic_bt)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq.Date(as.Date("2019-12-01"), as.Date("2100-01-01"), "3 months"),
               labels = date_format("%b %Y")) +
  scale_y_continuous(breaks = 0.01*seq(-100, 1000, 20),
                     labels = percent_format(a = 1)) + 
  theme(legend.position = c(0.3, 0.85),
        legend.title = element_blank())

MIG_NRG - Energy

All

Code
sts_inpp_m |>
  bind_rows(sts_inppd_m) |>
  bind_rows(sts_inppnd_m) |>
  filter(nace_r2 == "MIG_NRG",
         unit == "PCH_SM",
         geo %in% c("FR")) |>
  month_to_date() |>
  
  mutate(values = values/100) |>
  ggplot() + geom_line(aes(x = date, y = values, color = Indic_bt)) + 
  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 = 0.01*seq(-100, 300, 20),
                     labels = percent_format(a = 1)) + 
  theme(legend.position = c(0.6, 0.85),
        legend.title = element_blank())

2016-

Code
sts_inpp_m |>
  bind_rows(sts_inppd_m) |>
  bind_rows(sts_inppnd_m) |>
  filter(nace_r2 == "MIG_NRG",
         unit == "PCH_SM",
         geo %in% c("FR")) |>
  month_to_date() |>
  filter(date >= as.Date("2016-01-01")) |>
  
  mutate(values = values/100) |>
  ggplot() + geom_line(aes(x = date, y = values, color = Indic_bt)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 1) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-100, 300, 20),
                     labels = percent_format(a = 1)) + 
  theme(legend.position = c(0.3, 0.85),
        legend.title = element_blank())

2020-

Code
sts_inpp_m |>
  bind_rows(sts_inppd_m) |>
  bind_rows(sts_inppnd_m) |>
  filter(nace_r2 == "MIG_NRG",
         unit == "PCH_SM",
         geo %in% c("FR")) |>
  month_to_date() |>
  filter(date >= as.Date("2020-01-01")) |>
  
  mutate(values = values/100) |>
  ggplot() + geom_line(aes(x = date, y = values, color = Indic_bt)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq.Date(as.Date("2019-12-01"), as.Date("2100-01-01"), "3 months"),
               labels = date_format("%b %Y")) +
  scale_y_continuous(breaks = 0.01*seq(-100, 300, 20),
                     labels = percent_format(a = 1)) + 
  theme(legend.position = c(0.3, 0.85),
        legend.title = element_blank())

MIG_COG - Consumer Goods

All

Code
sts_inpp_m |>
  bind_rows(sts_inppd_m) |>
  bind_rows(sts_inppnd_m) |>
  filter(nace_r2 == "MIG_COG",
         unit == "PCH_SM",
         geo %in% c("FR")) |>
  month_to_date() |>
  
  mutate(values = values/100) |>
  ggplot() + geom_line(aes(x = date, y = values, color = Indic_bt)) + 
  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 = 0.01*seq(-100, 300, 2),
                     labels = percent_format(a = 1)) + 
  theme(legend.position = c(0.6, 0.85),
        legend.title = element_blank())

2016-

Code
sts_inpp_m |>
  bind_rows(sts_inppd_m) |>
  bind_rows(sts_inppnd_m) |>
  filter(nace_r2 == "MIG_COG",
         unit == "PCH_SM",
         geo %in% c("FR")) |>
  month_to_date() |>
  filter(date >= as.Date("2016-01-01")) |>
  
  mutate(values = values/100) |>
  ggplot() + geom_line(aes(x = date, y = values, color = Indic_bt)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 1) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-100, 300, 2),
                     labels = percent_format(a = 1)) + 
  theme(legend.position = c(0.3, 0.85),
        legend.title = element_blank())

2020-

Code
sts_inpp_m |>
  bind_rows(sts_inppd_m) |>
  bind_rows(sts_inppnd_m) |>
  filter(nace_r2 == "MIG_COG",
         unit == "PCH_SM",
         geo %in% c("FR")) |>
  month_to_date() |>
  filter(date >= as.Date("2020-01-01")) |>
  
  mutate(values = values/100) |>
  ggplot() + geom_line(aes(x = date, y = values, color = Indic_bt)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq.Date(as.Date("2019-12-01"), as.Date("2100-01-01"), "3 months"),
               labels = date_format("%b %Y")) +
  scale_y_continuous(breaks = 0.01*seq(-100, 300, 2),
                     labels = percent_format(a = 1)) + 
  theme(legend.position = c(0.3, 0.85),
        legend.title = element_blank())

MIG_CAG - Capital Goods

All

Code
sts_inpp_m |>
  bind_rows(sts_inppd_m) |>
  bind_rows(sts_inppnd_m) |>
  filter(nace_r2 == "MIG_CAG",
         unit == "PCH_SM",
         geo %in% c("FR")) |>
  month_to_date() |>
  
  mutate(values = values/100) |>
  ggplot() + geom_line(aes(x = date, y = values, color = Indic_bt)) + 
  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 = 0.01*seq(-100, 300, 2),
                     labels = percent_format(a = 1)) + 
  theme(legend.position = c(0.6, 0.85),
        legend.title = element_blank())

2016-

Code
sts_inpp_m |>
  bind_rows(sts_inppd_m) |>
  bind_rows(sts_inppnd_m) |>
  filter(nace_r2 == "MIG_CAG",
         unit == "PCH_SM",
         geo %in% c("FR")) |>
  month_to_date() |>
  filter(date >= as.Date("2016-01-01")) |>
  
  mutate(values = values/100) |>
  ggplot() + geom_line(aes(x = date, y = values, color = Indic_bt)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 1) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-100, 300, 2),
                     labels = percent_format(a = 1)) + 
  theme(legend.position = c(0.3, 0.85),
        legend.title = element_blank())

2020-

Code
sts_inpp_m |>
  bind_rows(sts_inppd_m) |>
  bind_rows(sts_inppnd_m) |>
  filter(nace_r2 == "MIG_CAG",
         unit == "PCH_SM",
         geo %in% c("FR")) |>
  month_to_date() |>
  filter(date >= as.Date("2020-01-01")) |>
  
  mutate(values = values/100) |>
  ggplot() + geom_line(aes(x = date, y = values, color = Indic_bt)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq.Date(as.Date("2019-12-01"), as.Date("2100-01-01"), "3 months"),
               labels = date_format("%b %Y")) +
  scale_y_continuous(breaks = 0.01*seq(-100, 300, 2),
                     labels = percent_format(a = 1)) + 
  theme(legend.position = c(0.3, 0.85),
        legend.title = element_blank())

MIG_ING - Intermediate goods

All

Code
sts_inpp_m |>
  bind_rows(sts_inppd_m) |>
  bind_rows(sts_inppnd_m) |>
  filter(nace_r2 == "MIG_ING",
         unit == "PCH_SM",
         geo %in% c("FR")) |>
  month_to_date() |>
  
  mutate(values = values/100) |>
  ggplot() + geom_line(aes(x = date, y = values, color = Indic_bt)) + 
  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 = 0.01*seq(-100, 300, 2),
                     labels = percent_format(a = 1)) + 
  theme(legend.position = c(0.6, 0.85),
        legend.title = element_blank())

2016-

Code
sts_inpp_m |>
  bind_rows(sts_inppd_m) |>
  bind_rows(sts_inppnd_m) |>
  filter(nace_r2 == "MIG_ING",
         unit == "PCH_SM",
         geo %in% c("FR")) |>
  month_to_date() |>
  filter(date >= as.Date("2016-01-01")) |>
  
  mutate(values = values/100) |>
  ggplot() + geom_line(aes(x = date, y = values, color = Indic_bt)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 1) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-100, 300, 2),
                     labels = percent_format(a = 1)) + 
  theme(legend.position = c(0.3, 0.85),
        legend.title = element_blank())

2020-

Code
sts_inpp_m |>
  bind_rows(sts_inppd_m) |>
  bind_rows(sts_inppnd_m) |>
  filter(nace_r2 == "MIG_ING",
         unit == "PCH_SM",
         geo %in% c("FR")) |>
  month_to_date() |>
  filter(date >= as.Date("2020-01-01")) |>
  
  mutate(values = values/100) |>
  ggplot() + geom_line(aes(x = date, y = values, color = Indic_bt)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq.Date(as.Date("2019-12-01"), as.Date("2100-01-01"), "3 months"),
               labels = date_format("%b %Y")) +
  scale_y_continuous(breaks = 0.01*seq(-100, 300, 2),
                     labels = percent_format(a = 1)) + 
  theme(legend.position = c(0.3, 0.85),
        legend.title = element_blank())

France, Germany, Italy, Spain, Europe

C

All

Code
sts_inppd_m |>
  filter(nace_r2 == "C",
         unit == "PCH_SM",
         geo %in% c("FR", "DE", "ES", "IT", "EA19")) |>
  month_to_date() |>
  
  mutate(Geo = ifelse(geo == "EA19", "Europe", Geo)) |>
  left_join(colors, by = c("Geo" = "country")) |>
  mutate(values = values/100) |>
  ggplot() + geom_line(aes(x = date, y = values, color = color)) + 
  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 = 0.01*seq(-100, 100, 5),
                     labels = percent_format(a = 1)) + 
  scale_color_identity() + add_flags +
  theme(legend.position = c(0.75, 0.90),
        legend.title = element_blank())

1995-

Code
sts_inppd_m |>
  filter(nace_r2 == "C",
         unit == "PCH_SM",
         geo %in% c("FR", "DE", "ES", "IT", "EA19")) |>
  month_to_date() |>
  filter(date >= as.Date("1995-01-01")) |>
  
  mutate(Geo = ifelse(geo == "EA19", "Europe", Geo)) |>
  left_join(colors, by = c("Geo" = "country")) |>
  mutate(values = values/100) |>
  ggplot() + geom_line(aes(x = date, y = values, color = color)) + 
  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 = 0.01*seq(-20, 100, 5),
                     labels = percent_format(a = 1)) + 
  scale_color_identity() + add_flags +
  theme(legend.position = c(0.75, 0.90),
        legend.title = element_blank())

2016-

Code
sts_inppd_m |>
  filter(nace_r2 == "C",
         unit == "PCH_SM",
         geo %in% c("FR", "DE", "ES", "IT", "EA19")) |>
  month_to_date() |>
  filter(date >= as.Date("2016-01-01")) |>
  
  mutate(Geo = ifelse(geo == "EA19", "Europe", Geo)) |>
  left_join(colors, by = c("Geo" = "country")) |>
  mutate(values = values/100) |>
  ggplot() + geom_line(aes(x = date, y = values, color = color)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 1) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-20, 100, 5),
                     labels = percent_format(a = 1)) + 
  scale_color_identity() + add_flags +
  theme(legend.position = c(0.75, 0.90),
        legend.title = element_blank())

2020-

Code
sts_inppd_m |>
  filter(nace_r2 == "C",
         unit == "PCH_SM",
         geo %in% c("FR", "DE", "ES", "IT", "EA19")) |>
  month_to_date() |>
  filter(date >= as.Date("2020-01-01")) |>
  
  mutate(Geo = ifelse(geo == "EA19", "Europe", Geo)) |>
  left_join(colors, by = c("Geo" = "country")) |>
  mutate(values = values/100) |>
  ggplot() + geom_line(aes(x = date, y = values, color = color)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq.Date(as.Date("2019-12-01"), as.Date("2100-01-01"), "3 months"),
               labels = date_format("%b %Y")) +
  scale_y_continuous(breaks = 0.01*seq(-20, 100, 2),
                     labels = percent_format(a = 1)) + 
  scale_color_identity() + add_flags +
  theme(legend.position = c(0.75, 0.90),
        legend.title = element_blank())

D35 - Electricity, gas, steam and air conditioning supply

All

Code
sts_inppd_m |>
  filter(nace_r2 == "D35",
         unit == "PCH_SM",
         geo %in% c("FR", "DE", "ES", "IT", "EA19")) |>
  month_to_date() |>
  
  mutate(Geo = ifelse(geo == "EA19", "Europe", Geo)) |>
  left_join(colors, by = c("Geo" = "country")) |>
  mutate(values = values/100) |>
  ggplot() + geom_line(aes(x = date, y = values, color = color)) + 
  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 = 0.01*seq(-100, 200, 20),
                     labels = percent_format(a = 1)) + 
  scale_color_identity() + add_flags +
  theme(legend.position = c(0.75, 0.90),
        legend.title = element_blank())

1995-

Code
sts_inppd_m |>
  filter(nace_r2 == "D35",
         unit == "PCH_SM",
         geo %in% c("FR", "DE", "ES", "IT", "EA19")) |>
  month_to_date() |>
  filter(date >= as.Date("1995-01-01")) |>
  
  mutate(Geo = ifelse(geo == "EA19", "Europe", Geo)) |>
  left_join(colors, by = c("Geo" = "country")) |>
  mutate(values = values/100) |>
  ggplot() + geom_line(aes(x = date, y = values, color = color)) + 
  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 = 0.01*seq(-100, 200, 20),
                     labels = percent_format(a = 1)) + 
  scale_color_identity() + add_flags +
  theme(legend.position = c(0.75, 0.90),
        legend.title = element_blank())

2016-

Code
sts_inppd_m |>
  filter(nace_r2 == "D35",
         unit == "PCH_SM",
         geo %in% c("FR", "DE", "ES", "IT", "EA19")) |>
  month_to_date() |>
  filter(date >= as.Date("2016-01-01")) |>
  
  mutate(Geo = ifelse(geo == "EA19", "Europe", Geo)) |>
  left_join(colors, by = c("Geo" = "country")) |>
  mutate(values = values/100) |>
  ggplot() + geom_line(aes(x = date, y = values, color = color)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 1) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-100, 200, 20),
                     labels = percent_format(a = 1)) + 
  scale_color_identity() + add_flags +
  theme(legend.position = c(0.75, 0.90),
        legend.title = element_blank())

2020-

Code
sts_inppd_m |>
  filter(nace_r2 == "D35",
         unit == "PCH_SM",
         geo %in% c("FR", "DE", "ES", "IT", "EA19")) |>
  month_to_date() |>
  filter(date >= as.Date("2020-01-01")) |>
  
  mutate(Geo = ifelse(geo == "EA19", "Europe", Geo)) |>
  left_join(colors, by = c("Geo" = "country")) |>
  mutate(values = values/100) |>
  ggplot() + geom_line(aes(x = date, y = values, color = color)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq.Date(as.Date("2019-12-01"), as.Date("2100-01-01"), "3 months"),
               labels = date_format("%b %Y")) +
  scale_y_continuous(breaks = 0.01*seq(-100, 200, 20),
                     labels = percent_format(a = 1)) + 
  scale_color_identity() + add_flags +
  theme(legend.position = c(0.75, 0.90),
        legend.title = element_blank())

MIG_COG - Consumer Goods

All

Code
sts_inppd_m |>
  filter(nace_r2 == "MIG_COG",
         unit == "PCH_SM",
         geo %in% c("FR", "DE", "ES", "IT", "EA19")) |>
  month_to_date() |>
  
  mutate(Geo = ifelse(geo == "EA19", "Europe", Geo)) |>
  left_join(colors, by = c("Geo" = "country")) |>
  mutate(values = values/100) |>
  ggplot() + geom_line(aes(x = date, y = values, color = color)) + 
  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 = 0.01*seq(-100, 100, 5),
                     labels = percent_format(a = 1)) + 
  scale_color_identity() + add_flags +
  theme(legend.position = c(0.75, 0.90),
        legend.title = element_blank())

1995-

Code
sts_inppd_m |>
  filter(nace_r2 == "MIG_COG",
         unit == "PCH_SM",
         geo %in% c("FR", "DE", "ES", "IT", "EA19")) |>
  month_to_date() |>
  filter(date >= as.Date("1995-01-01")) |>
  
  mutate(Geo = ifelse(geo == "EA19", "Europe", Geo)) |>
  left_join(colors, by = c("Geo" = "country")) |>
  mutate(values = values/100) |>
  ggplot() + geom_line(aes(x = date, y = values, color = color)) + 
  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 = 0.01*seq(-20, 100, 5),
                     labels = percent_format(a = 1)) + 
  scale_color_identity() + add_flags +
  theme(legend.position = c(0.75, 0.90),
        legend.title = element_blank())

2016-

Code
sts_inppd_m |>
  filter(nace_r2 == "MIG_COG",
         unit == "PCH_SM",
         geo %in% c("FR", "DE", "ES", "IT", "EA19")) |>
  month_to_date() |>
  filter(date >= as.Date("2016-01-01")) |>
  
  mutate(Geo = ifelse(geo == "EA19", "Europe", Geo)) |>
  left_join(colors, by = c("Geo" = "country")) |>
  mutate(values = values/100) |>
  ggplot() + geom_line(aes(x = date, y = values, color = color)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 1) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-20, 100, 5),
                     labels = percent_format(a = 1)) + 
  scale_color_identity() + add_flags +
  theme(legend.position = c(0.75, 0.90),
        legend.title = element_blank())

2020-

Code
sts_inppd_m |>
  filter(nace_r2 == "MIG_COG",
         unit == "PCH_SM",
         geo %in% c("FR", "DE", "ES", "IT", "EA19")) |>
  month_to_date() |>
  filter(date >= as.Date("2020-01-01")) |>
  
  mutate(Geo = ifelse(geo == "EA19", "Europe", Geo)) |>
  left_join(colors, by = c("Geo" = "country")) |>
  mutate(values = values/100) |>
  ggplot() + geom_line(aes(x = date, y = values, color = color)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq.Date(as.Date("2019-12-01"), as.Date("2100-01-01"), "3 months"),
               labels = date_format("%b %Y")) +
  scale_y_continuous(breaks = 0.01*seq(-20, 100, 2),
                     labels = percent_format(a = 1)) + 
  scale_color_identity() + add_flags +
  theme(legend.position = c(0.75, 0.90),
        legend.title = element_blank())

MIG_CAG - Capital Goods

All

Code
sts_inppd_m |>
  filter(nace_r2 == "MIG_CAG",
         unit == "PCH_SM",
         geo %in% c("FR", "DE", "ES", "IT", "EA19")) |>
  month_to_date() |>
  
  mutate(Geo = ifelse(geo == "EA19", "Europe", Geo)) |>
  left_join(colors, by = c("Geo" = "country")) |>
  mutate(values = values/100) |>
  ggplot() + geom_line(aes(x = date, y = values, color = color)) + 
  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 = 0.01*seq(-100, 100, 5),
                     labels = percent_format(a = 1)) + 
  scale_color_identity() + add_flags +
  theme(legend.position = c(0.75, 0.90),
        legend.title = element_blank())

1995-

Code
sts_inppd_m |>
  filter(nace_r2 == "MIG_CAG",
         unit == "PCH_SM",
         geo %in% c("FR", "DE", "ES", "IT", "EA19")) |>
  month_to_date() |>
  filter(date >= as.Date("1995-01-01")) |>
  
  mutate(Geo = ifelse(geo == "EA19", "Europe", Geo)) |>
  left_join(colors, by = c("Geo" = "country")) |>
  mutate(values = values/100) |>
  ggplot() + geom_line(aes(x = date, y = values, color = color)) + 
  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 = 0.01*seq(-20, 100, 5),
                     labels = percent_format(a = 1)) + 
  scale_color_identity() + add_flags +
  theme(legend.position = c(0.75, 0.90),
        legend.title = element_blank())

2016-

Code
sts_inppd_m |>
  filter(nace_r2 == "MIG_CAG",
         unit == "PCH_SM",
         geo %in% c("FR", "DE", "ES", "IT", "EA19")) |>
  month_to_date() |>
  filter(date >= as.Date("2016-01-01")) |>
  
  mutate(Geo = ifelse(geo == "EA19", "Europe", Geo)) |>
  left_join(colors, by = c("Geo" = "country")) |>
  mutate(values = values/100) |>
  ggplot() + geom_line(aes(x = date, y = values, color = color)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 1) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-20, 100, 5),
                     labels = percent_format(a = 1)) + 
  scale_color_identity() + add_flags +
  theme(legend.position = c(0.75, 0.90),
        legend.title = element_blank())

2020-

Code
sts_inppd_m |>
  filter(nace_r2 == "MIG_CAG",
         unit == "PCH_SM",
         geo %in% c("FR", "DE", "ES", "IT", "EA19")) |>
  month_to_date() |>
  filter(date >= as.Date("2020-01-01")) |>
  
  mutate(Geo = ifelse(geo == "EA19", "Europe", Geo)) |>
  left_join(colors, by = c("Geo" = "country")) |>
  mutate(values = values/100) |>
  ggplot() + geom_line(aes(x = date, y = values, color = color)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq.Date(as.Date("2019-12-01"), as.Date("2100-01-01"), "3 months"),
               labels = date_format("%b %Y")) +
  scale_y_continuous(breaks = 0.01*seq(-20, 100, 2),
                     labels = percent_format(a = 1)) + 
  scale_color_identity() + add_flags +
  theme(legend.position = c(0.75, 0.90),
        legend.title = element_blank())

MIG_NRG - Energy

All

Code
sts_inppd_m |>
  filter(nace_r2 == "MIG_NRG",
         unit == "PCH_SM",
         geo %in% c("FR", "DE", "ES", "IT", "EA19")) |>
  month_to_date() |>
  
  mutate(Geo = ifelse(geo == "EA19", "Europe", Geo)) |>
  left_join(colors, by = c("Geo" = "country")) |>
  mutate(values = values/100) |>
  ggplot() + geom_line(aes(x = date, y = values, color = color)) + 
  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 = 0.01*seq(-20, 200, 10),
                     labels = percent_format(a = 1)) + 
  scale_color_identity() + add_flags +
  theme(legend.position = c(0.75, 0.90),
        legend.title = element_blank())

1995-

Code
sts_inppd_m |>
  filter(nace_r2 == "MIG_NRG",
         unit == "PCH_SM",
         geo %in% c("FR", "DE", "ES", "IT", "EA19")) |>
  month_to_date() |>
  filter(date >= as.Date("1995-01-01")) |>
  
  mutate(Geo = ifelse(geo == "EA19", "Europe", Geo)) |>
  left_join(colors, by = c("Geo" = "country")) |>
  mutate(values = values/100) |>
  ggplot() + geom_line(aes(x = date, y = values, color = color)) + 
  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 = 0.01*seq(-20, 200, 10),
                     labels = percent_format(a = 1)) + 
  scale_color_identity() + add_flags +
  theme(legend.position = c(0.75, 0.90),
        legend.title = element_blank())

2016-

Code
sts_inppd_m |>
  filter(nace_r2 == "MIG_NRG",
         unit == "PCH_SM",
         geo %in% c("FR", "DE", "ES", "IT", "EA19")) |>
  month_to_date() |>
  filter(date >= as.Date("2016-01-01")) |>
  
  mutate(Geo = ifelse(geo == "EA19", "Europe", Geo)) |>
  left_join(colors, by = c("Geo" = "country")) |>
  mutate(values = values/100) |>
  ggplot() + geom_line(aes(x = date, y = values, color = color)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 1) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-20, 200, 10),
                     labels = percent_format(a = 1)) + 
  scale_color_identity() + add_flags +
  theme(legend.position = c(0.75, 0.90),
        legend.title = element_blank())

2020-

Code
sts_inppd_m |>
  filter(nace_r2 == "MIG_NRG",
         unit == "PCH_SM",
         geo %in% c("FR", "DE", "ES", "IT", "EA19")) |>
  month_to_date() |>
  filter(date >= as.Date("2020-01-01")) |>
  
  mutate(Geo = ifelse(geo == "EA19", "Europe", Geo)) |>
  left_join(colors, by = c("Geo" = "country")) |>
  mutate(values = values/100) |>
  ggplot() + geom_line(aes(x = date, y = values, color = color)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq.Date(as.Date("2019-12-01"), as.Date("2100-01-01"), "3 months"),
               labels = date_format("%b %Y")) +
  scale_y_continuous(breaks = 0.01*seq(-20, 200, 10),
                     labels = percent_format(a = 1)) + 
  scale_color_identity() + add_flags +
  theme(legend.position = c(0.75, 0.90),
        legend.title = element_blank())

MIG_ING - Intermediate goods

All

Code
sts_inppd_m |>
  filter(nace_r2 == "MIG_ING",
         unit == "PCH_SM",
         geo %in% c("FR", "DE", "ES", "IT", "EA19")) |>
  month_to_date() |>
  
  mutate(Geo = ifelse(geo == "EA19", "Europe", Geo)) |>
  left_join(colors, by = c("Geo" = "country")) |>
  mutate(values = values/100) |>
  ggplot() + geom_line(aes(x = date, y = values, color = color)) + 
  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 = 0.01*seq(-100, 100, 5),
                     labels = percent_format(a = 1)) + 
  scale_color_identity() + add_flags +
  theme(legend.position = c(0.75, 0.90),
        legend.title = element_blank())

1995-

Code
sts_inppd_m |>
  filter(nace_r2 == "MIG_ING",
         unit == "PCH_SM",
         geo %in% c("FR", "DE", "ES", "IT", "EA19")) |>
  month_to_date() |>
  filter(date >= as.Date("1995-01-01")) |>
  
  mutate(Geo = ifelse(geo == "EA19", "Europe", Geo)) |>
  left_join(colors, by = c("Geo" = "country")) |>
  mutate(values = values/100) |>
  ggplot() + geom_line(aes(x = date, y = values, color = color)) + 
  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 = 0.01*seq(-20, 200, 10),
                     labels = percent_format(a = 1)) + 
  scale_color_identity() + add_flags +
  theme(legend.position = c(0.75, 0.90),
        legend.title = element_blank())

2016-

Code
sts_inppd_m |>
  filter(nace_r2 == "MIG_ING",
         unit == "PCH_SM",
         geo %in% c("FR", "DE", "ES", "IT", "EA19")) |>
  month_to_date() |>
  filter(date >= as.Date("2016-01-01")) |>
  
  mutate(Geo = ifelse(geo == "EA19", "Europe", Geo)) |>
  left_join(colors, by = c("Geo" = "country")) |>
  mutate(values = values/100) |>
  ggplot() + geom_line(aes(x = date, y = values, color = color)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 1) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-20, 200, 10),
                     labels = percent_format(a = 1)) + 
  scale_color_identity() + add_flags +
  theme(legend.position = c(0.75, 0.90),
        legend.title = element_blank())

2020-

Code
sts_inppd_m |>
  filter(nace_r2 == "MIG_ING",
         unit == "PCH_SM",
         geo %in% c("FR", "DE", "ES", "IT", "EA19")) |>
  month_to_date() |>
  filter(date >= as.Date("2020-01-01")) |>
  
  mutate(Geo = ifelse(geo == "EA19", "Europe", Geo)) |>
  left_join(colors, by = c("Geo" = "country")) |>
  mutate(values = values/100) |>
  ggplot() + geom_line(aes(x = date, y = values, color = color)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq.Date(as.Date("2019-12-01"), as.Date("2100-01-01"), "3 months"),
               labels = date_format("%b %Y")) +
  scale_y_continuous(breaks = 0.01*seq(-20, 200, 10),
                     labels = percent_format(a = 1)) + 
  scale_color_identity() + add_flags +
  theme(legend.position = c(0.75, 0.90),
        legend.title = element_blank())

MIG_NDCOG - Non-durable consumer goods

All

Code
sts_inppd_m |>
  filter(nace_r2 == "MIG_NDCOG",
         unit == "PCH_SM",
         geo %in% c("FR", "DE", "ES", "IT", "EA19")) |>
  month_to_date() |>
  
  mutate(Geo = ifelse(geo == "EA19", "Europe", Geo)) |>
  left_join(colors, by = c("Geo" = "country")) |>
  mutate(values = values/100) |>
  ggplot() + geom_line(aes(x = date, y = values, color = color)) + 
  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 = 0.01*seq(-100, 100, 5),
                     labels = percent_format(a = 1)) + 
  scale_color_identity() + add_flags +
  theme(legend.position = c(0.75, 0.90),
        legend.title = element_blank())

1995-

Code
sts_inppd_m |>
  filter(nace_r2 == "MIG_NDCOG",
         unit == "PCH_SM",
         geo %in% c("FR", "DE", "ES", "IT", "EA19")) |>
  month_to_date() |>
  filter(date >= as.Date("1995-01-01")) |>
  
  mutate(Geo = ifelse(geo == "EA19", "Europe", Geo)) |>
  left_join(colors, by = c("Geo" = "country")) |>
  mutate(values = values/100) |>
  ggplot() + geom_line(aes(x = date, y = values, color = color)) + 
  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 = 0.01*seq(-20, 200, 2),
                     labels = percent_format(a = 1)) + 
  scale_color_identity() + add_flags +
  theme(legend.position = c(0.75, 0.90),
        legend.title = element_blank())

2016-

Code
sts_inppd_m |>
  filter(nace_r2 == "MIG_NDCOG",
         unit == "PCH_SM",
         geo %in% c("FR", "DE", "ES", "IT", "EA19")) |>
  month_to_date() |>
  filter(date >= as.Date("2016-01-01")) |>
  
  mutate(Geo = ifelse(geo == "EA19", "Europe", Geo)) |>
  left_join(colors, by = c("Geo" = "country")) |>
  mutate(values = values/100) |>
  ggplot() + geom_line(aes(x = date, y = values, color = color)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1960, 2100, 1) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-20, 200, 2),
                     labels = percent_format(a = 1)) + 
  scale_color_identity() + add_flags +
  theme(legend.position = c(0.75, 0.90),
        legend.title = element_blank())

2020-

Code
sts_inppd_m |>
  filter(nace_r2 == "MIG_NDCOG",
         unit == "PCH_SM",
         geo %in% c("FR", "DE", "ES", "IT", "EA19")) |>
  month_to_date() |>
  filter(date >= as.Date("2020-01-01")) |>
  
  mutate(Geo = ifelse(geo == "EA19", "Europe", Geo)) |>
  left_join(colors, by = c("Geo" = "country")) |>
  mutate(values = values/100) |>
  ggplot() + geom_line(aes(x = date, y = values, color = color)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq.Date(as.Date("2019-12-01"), as.Date("2100-01-01"), "3 months"),
               labels = date_format("%b %Y")) +
  scale_y_continuous(breaks = 0.01*seq(-20, 200, 2),
                     labels = percent_format(a = 1)) + 
  scale_color_identity() + add_flags +
  theme(legend.position = c(0.75, 0.90),
        legend.title = element_blank())