HICP (2015 = 100) - monthly data (12-month average rate of change) - prc_hicp_mv12r

Data - Eurostat

Info

Last observation: Monthly: 2025M12 (N = 16,246)

First observation: Monthly: 1997M12 (N = 4,345)

Last data update: 23 jul 2026, 22:12. Last compile: 24 jul 2026, 03:43

Structure

France, Germany, Italy, Spain, Netherlands

Headline Inflation (12-month moving average)

Code
prc_hicp_mv12r %>%
  filter(geo %in% c("FR", "DE", "IT", "ES", "NL"),
         coicop == "CP00") %>%
  month_to_date %>%

  left_join(colors, by = c("Geo" = "country")) %>%
  mutate(values = values/100) %>%
  mutate(color = ifelse(geo == "NL", color2, color)) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  theme_minimal() + scale_color_identity() + add_5flags +
  scale_x_date(breaks = as.Date(paste0(seq(1996, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  xlab("") + ylab("HICP inflation (12-month moving average)") +
  scale_y_continuous(labels = scales::percent_format(accuracy = 1)) +
  geom_hline(yintercept = 0, linetype = "dashed", color = "black")

France: Headline vs. Energy, Food, Core

Code
prc_hicp_mv12r %>%
  filter(geo == "FR",
         coicop %in% c("CP00", "NRG", "FOOD", "TOT_X_NRG_FOOD")) %>%
  month_to_date %>%

  mutate(Coicop = recode(coicop,
                          CP00 = "Headline",
                          NRG = "Energy",
                          FOOD = "Food",
                          TOT_X_NRG_FOOD = "Core (ex. energy, food)")) %>%
  mutate(values = values/100) %>%
  ggplot + geom_line(aes(x = date, y = values, color = Coicop)) +
  theme_minimal() +
  scale_x_date(breaks = as.Date(paste0(seq(1996, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  theme(legend.position = c(0.25, 0.8),
        legend.title = element_blank()) +
  xlab("") + ylab("HICP inflation (12-month moving average)") +
  scale_y_continuous(labels = scales::percent_format(accuracy = 1)) +
  geom_hline(yintercept = 0, linetype = "dashed", color = "black")