Harmonised index of consumer prices (HICP) - ECOICOP ver.2 - indices and rates of change, annual data

Data - Eurostat

Info

Last observation: Annual: 2025 (N = 39,064)

First observation: Annual: 1996 (N = 4,959)

Last data update: 23 jul 2026, 22:19. Last compile: 24 jul 2026, 03:14

Structure

France, Germany, Spain, Italy

Annual Average HICP Inflation Rate

Code
prc_hicp_ainr %>%
  filter(geo %in% c("FR", "DE", "ES", "IT"),
         coicop18 == "TOTAL",
         unit == "RCH_A_AVG") %>%
  year_to_date %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  mutate(values = values/100) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  theme_minimal() + scale_color_identity() + add_4flags +
  scale_x_date(breaks = as.Date(paste0(seq(1997, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  xlab("") + ylab("HICP inflation rate (annual average)") +
  scale_y_continuous(labels = scales::percent_format(accuracy = 1)) +
  geom_hline(yintercept = 0, linetype = "dashed", color = "black")

France

Inflation by Category

Code
prc_hicp_ainr %>%
  filter(geo == "FR",
         coicop18 %in% c("CP01", "CP04", "CP07"),
         unit == "RCH_A_AVG") %>%
  year_to_date %>%
  mutate(values = values/100) %>%
  ggplot + geom_line(aes(x = date, y = values, color = Coicop18)) +
  theme_minimal() +
  theme(legend.position = c(0.25, 0.85),
        legend.title = element_blank()) +
  scale_x_date(breaks = as.Date(paste0(seq(1997, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  xlab("") + ylab("HICP inflation rate (annual average)") +
  scale_y_continuous(labels = scales::percent_format(accuracy = 1)) +
  geom_hline(yintercept = 0, linetype = "dashed", color = "black")

Latest Year by Country

Code
latest_y_hicp <- prc_hicp_ainr %>%
  filter(coicop18 == "TOTAL",
         unit == "RCH_A_AVG",
         geo %in% c("FR", "DE", "ES", "IT", "EU27_2020"),
         !is.na(values)) %>%
  summarise(m = max(time)) %>%
  pull(m)

prc_hicp_ainr %>%
  filter(time == latest_y_hicp,
         coicop18 == "TOTAL",
         unit == "RCH_A_AVG",
         geo %in% c("FR", "DE", "ES", "IT", "EU27_2020")) %>%
  transmute(Geo, `Inflation rate` = paste0(round(values, 1), "%")) %>%
  print_table_conditional()
Geo Inflation rate
Germany 2.3%
Spain 2.7%
European Union - 27 countries (from 2020) 2.5%
France 0.9%
Italy 1.6%