Purchasing power parities, price level indices, nominal and real expenditures by analytical categories - based on COICOP 2018

Data - Eurostat

Info

Data on inflation

source dataset Title .html .rData
bis CPI NA NA NA
ecb CES Consumer Expectations Survey 2025-08-28 2025-05-24
eurostat nama_10_co3_p3 NA NA NA
eurostat prc_hicp_cow HICP - country weights 2026-03-27 2026-03-30
eurostat prc_hicp_ctrb Contributions to euro area annual inflation (in percentage points) 2026-03-27 2026-03-26
eurostat prc_hicp_inw NA NA NA
eurostat prc_hicp_manr HICP (2015 = 100) - monthly data (annual rate of change) 2026-02-24 2026-03-26
eurostat prc_hicp_midx NA NA NA
eurostat prc_hicp_mmor HICP (2015 = 100) - monthly data (monthly rate of change) 2026-03-27 2026-03-26
eurostat prc_ppp_ind NA NA NA
eurostat sts_inpp_m Producer prices in industry, total - monthly data 2026-03-27 2026-03-26
eurostat sts_inppd_m Producer prices in industry, domestic market - monthly data 2026-03-27 2026-03-26
eurostat sts_inppnd_m Producer prices in industry, non domestic market - monthly data 2024-06-24 2026-03-26
fred cpi Consumer Price Index 2026-03-26 2026-03-26
fred inflation NA NA NA
imf CPI Consumer Price Index - CPI 2026-03-26 2020-03-13
oecd MEI_PRICES_PPI Producer Prices - MEI_PRICES_PPI 2026-03-23 2024-04-15
oecd PPP2017 2017 PPP Benchmark results 2024-04-16 2023-07-25
oecd PRICES_CPI NA NA NA
wdi FP.CPI.TOTL.ZG NA NA NA
wdi NY.GDP.DEFL.KD.ZG NA NA NA

LAST_COMPILE

LAST_COMPILE
2026-03-31

Last

Code
prc_ppp_ind_1 %>%
  group_by(time) %>%
  summarise(Nobs = n()) %>%
  arrange(desc(time)) %>%
  head(1) %>%
  print_table_conditional()
time Nobs
2025 270

What’s PPP ?

PPPs are nothing more than price relatives that show the ratio of the prices in national currencies of the same good or service in different countries. For example, if the price of a litre of Coca Cola is 2.30 euros in France and 2.00 dollars in the United States, then the PPP for Coca Cola between France and the United States is the ratio 2.30 euros to 2.00 dollars or 1.15 euros to the dollar. This means that for every dollar spent on Coca Cola in the United States, 1.15 euros would have to be spent in France to obtain the same quantity and quality – or, in other words, the same volume - of Coca Cola.

Eurostat Website

Actual individual consumption per capita

Code
include_graphics("https://ec.europa.eu/eurostat/documents/4187653/11581511/Map+AIC+per+capita+2020.jpg/fbd93f3e-ebe8-29bc-8cd3-8d790990ca30?t=1624002507913")

Volume indices of AIC and GDP per capita

Code
include_graphics("https://ec.europa.eu/eurostat/documents/4187653/11581511/AIC+GDP+per+capita+2020.jpg/c1f554b3-807e-d0b7-1337-333e3eef5d17?t=1624002507551")

indic_ppp

Code
prc_ppp_ind_1 %>%
  left_join(indic_ppp, by = "indic_ppp") %>%
  group_by(indic_ppp, Indic_ppp) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional()
indic_ppp Indic_ppp Nobs
PLI_EU27_2020 Price level indices (EU27_2020=100) 15578
PPP_EU27_2020 Purchasing power parities (EU27_2020=1) 15578
EXP_EUR_HAB Nominal expenditure per inhabitant (in euro) 14833
EXP_EUR Nominal expenditure (in euro) 14793
EXP_NAC Nominal expenditure in national currency 14793
EXP_NAC_PC_GDP Nominal expenditure as a percentage of GDP (GDP=100) 14793
EXP_PPS_EU27_2020 Real expenditure (in PPS_EU27_2020) 13577
VI_PPS_EU27_2020_HAB Volume indices of real expenditure per capita (in PPS_EU27_2020=100) 13577
EXP_PPS_EU27_2020_HAB Real expenditure per capita (in PPS_EU27_2020) 13537

ppp_cat18

Code
prc_ppp_ind_1 %>%
  left_join(ppp_cat18, by = "ppp_cat18") %>%
  group_by(ppp_cat18, Ppp_cat18) %>%
  summarise(Nobs = n()) %>%
  print_table_conditional()

geo

Code
prc_ppp_ind_1 %>%
  left_join(geo, by = "geo") %>%
  group_by(geo, Geo) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) %>%
  mutate(Flag = gsub(" ", "-", str_to_lower(Geo)),
         Flag = paste0('<img src="../../bib/flags/vsmall/', Flag, '.png" alt="Flag">')) %>%
  select(Flag, everything()) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}

time

Code
prc_ppp_ind_1 %>%
  group_by(time) %>%
  summarise(Nobs = n()) %>%
  print_table_conditional()

Germany, France, Italy

GDP - Gross domestic product

Code
prc_ppp_ind_1 %>%
  filter(ppp_cat18 == "GDP",
         geo %in% c("FR", "DE", "IT"),
         indic_ppp == "PPP_EU27_2020") %>%
  year_to_date %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + theme_minimal()  + add_3flags +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2028, 2), "-01-01")),
               labels = date_format("%Y")) +
  xlab("") + ylab("") +
  scale_y_continuous(breaks = seq(0, 4000, .05))

E01 - Final consumption expenditure

Code
prc_ppp_ind_1 %>%
  filter(ppp_cat18 == "E01",
         geo %in% c("FR", "DE", "IT"),
         indic_ppp == "PPP_EU27_2020") %>%
  year_to_date %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + theme_minimal()  + add_3flags +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2028, 2), "-01-01")),
               labels = date_format("%Y")) +
  xlab("") + ylab("") +
  scale_y_continuous(breaks = seq(0, 4000, .05))

E011 - Household final consumption expenditure

Code
prc_ppp_ind_1 %>%
  filter(ppp_cat18 == "E011",
         geo %in% c("FR", "DE", "IT"),
         indic_ppp == "PPP_EU27_2020") %>%
  year_to_date %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + theme_minimal()  + add_3flags +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2028, 2), "-01-01")),
               labels = date_format("%Y")) +
  xlab("") + ylab("") +
  scale_y_continuous(breaks = seq(0, 4000, .05))

A01 - Actual individual consumption

Code
prc_ppp_ind_1 %>%
  filter(ppp_cat18 == "A01",
         geo %in% c("FR", "DE", "IT"),
         indic_ppp == "PPP_EU27_2020") %>%
  year_to_date %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + theme_minimal()  + add_3flags +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2028, 2), "-01-01")),
               labels = date_format("%Y")) +
  xlab("") + ylab("") +
  scale_y_continuous(breaks = seq(0, 4000, .05))

A010405 -

Germany, France, Italy

PPP_EU27_2020

Code
prc_ppp_ind_1 %>%
  filter(ppp_cat18 == "A010405",
         geo %in% c("FR", "DE", "IT"),
         indic_ppp == "PPP_EU27_2020") %>%
  year_to_date %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + theme_minimal()  + add_3flags +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2028, 2), "-01-01")),
               labels = date_format("%Y")) +
  xlab("") + ylab("") +
  scale_y_continuous(breaks = seq(0, 4000, .05))

Housing, water, electricity, gas and other fuels - A0104

France

Code
prc_ppp_ind_1 %>%
  filter(ppp_cat18 == "A0104",
         geo %in% c("FR")) %>%
  left_join(indic_ppp, by = "indic_ppp") %>%
  group_by(indic_ppp, Indic_ppp) %>%
  summarise(Nobs = n(),
            first = first(time),
            last = last(time)) %>%
  print_table_conditional()
indic_ppp Indic_ppp Nobs first last
EXP_EUR Nominal expenditure (in euro) 3 2022 2024
EXP_EUR_HAB Nominal expenditure per inhabitant (in euro) 3 2022 2024
EXP_NAC Nominal expenditure in national currency 3 2022 2024
EXP_NAC_PC_GDP Nominal expenditure as a percentage of GDP (GDP=100) 3 2022 2024
EXP_PPS_EU27_2020 Real expenditure (in PPS_EU27_2020) 3 2022 2024
EXP_PPS_EU27_2020_HAB Real expenditure per capita (in PPS_EU27_2020) 3 2022 2024
PLI_EU27_2020 Price level indices (EU27_2020=100) 3 2022 2024
PPP_EU27_2020 Purchasing power parities (EU27_2020=1) 3 2022 2024
VI_PPS_EU27_2020_HAB Volume indices of real expenditure per capita (in PPS_EU27_2020=100) 3 2022 2024

2019

Code
prc_ppp_ind_1 %>%
  filter(ppp_cat18 == "A0104",
         time == "2019",
         geo %in% c("FR", "DE", "IT")) %>%
  select(indic_ppp, geo, values) %>%
  left_join(indic_ppp, by = "indic_ppp") %>%
  spread(geo, values) %>%
  print_table_conditional()
indic_ppp Indic_ppp
NA NA
:---------: :---------:

Germany, France, Italy

PPP_EU27_2020

Code
prc_ppp_ind_1 %>%
  filter(ppp_cat18 == "A0104",
         geo %in% c("FR", "DE", "IT"),
         indic_ppp == "PPP_EU27_2020") %>%
  year_to_date %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + theme_minimal()  + add_3flags +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2028, 2), "-01-01")),
               labels = date_format("%Y")) +
  xlab("") + ylab("") +
  scale_y_continuous(breaks = seq(0, 4000, .05))

Table

Household final consumption expenditure - E011

Code
prc_ppp_ind_1 %>%
  filter(ppp_cat18 == "E011",
         time == "2019",
         geo %in% c("FR", "DE", "IT")) %>%
  select(indic_ppp, geo, values) %>%
  left_join(indic_ppp, by = "indic_ppp") %>%
  spread(geo, values) %>%
  print_table_conditional()
indic_ppp Indic_ppp DE FR IT
EXP_EUR Nominal expenditure (in euro) 1.813709e+06 1.262531e+06 1.067942e+06
EXP_EUR_HAB Nominal expenditure per inhabitant (in euro) 2.182700e+04 1.873300e+04 1.788000e+04
EXP_NAC Nominal expenditure in national currency 1.813709e+06 1.262531e+06 1.067942e+06
EXP_NAC_PC_GDP Nominal expenditure as a percentage of GDP (GDP=100) 5.130000e+01 5.190000e+01 5.920000e+01
EXP_PPS_EU27_2020 Real expenditure (in PPS_EU27_2020) 1.694653e+06 1.113175e+06 1.051007e+06
EXP_PPS_EU27_2020_HAB Real expenditure per capita (in PPS_EU27_2020) 2.040000e+04 1.650000e+04 1.760000e+04
PLI_EU27_2020 Price level indices (EU27_2020=100) 1.070000e+02 1.134000e+02 1.016000e+02
PPP_EU27_2020 Purchasing power parities (EU27_2020=1) 1.070250e+00 1.134170e+00 1.016110e+00
VI_PPS_EU27_2020_HAB Volume indices of real expenditure per capita (in PPS_EU27_2020=100) 1.240000e+02 1.000000e+02 1.070000e+02

Gross domestic product - GDP

Code
prc_ppp_ind_1 %>%
  filter(ppp_cat18 == "GDP",
         time == "2019",
         geo %in% c("FR", "DE", "IT")) %>%
  select(indic_ppp, geo, values) %>%
  left_join(indic_ppp, by = "indic_ppp") %>%
  spread(geo, values) %>%
  print_table_conditional()
indic_ppp Indic_ppp DE FR IT
EXP_EUR Nominal expenditure (in euro) 3.537280e+06 2.432207e+06 1.804067e+06
EXP_EUR_HAB Nominal expenditure per inhabitant (in euro) 4.257000e+04 3.608800e+04 3.020400e+04
EXP_NAC Nominal expenditure in national currency 3.537280e+06 2.432207e+06 1.804067e+06
EXP_NAC_PC_GDP Nominal expenditure as a percentage of GDP (GDP=100) 1.000000e+02 1.000000e+02 1.000000e+02
EXP_PPS_EU27_2020 Real expenditure (in PPS_EU27_2020) 3.205299e+06 2.240749e+06 1.812665e+06
EXP_PPS_EU27_2020_HAB Real expenditure per capita (in PPS_EU27_2020) 3.860000e+04 3.320000e+04 3.030000e+04
PLI_EU27_2020 Price level indices (EU27_2020=100) 1.104000e+02 1.085000e+02 9.950000e+01
PPP_EU27_2020 Purchasing power parities (EU27_2020=1) 1.103570e+00 1.085440e+00 9.952560e-01
VI_PPS_EU27_2020_HAB Volume indices of real expenditure per capita (in PPS_EU27_2020=100) 1.220000e+02 1.050000e+02 9.600000e+01

Actual individual consumption - A01

Code
prc_ppp_ind_1 %>%
  filter(ppp_cat18 == "E011",
         time == "2019",
         geo %in% c("FR", "DE", "IT")) %>%
  select(indic_ppp, geo, values) %>%
  left_join(indic_ppp, by = "indic_ppp") %>%
  spread(geo, values) %>%
  print_table_conditional()
indic_ppp Indic_ppp DE FR IT
EXP_EUR Nominal expenditure (in euro) 1.813709e+06 1.262531e+06 1.067942e+06
EXP_EUR_HAB Nominal expenditure per inhabitant (in euro) 2.182700e+04 1.873300e+04 1.788000e+04
EXP_NAC Nominal expenditure in national currency 1.813709e+06 1.262531e+06 1.067942e+06
EXP_NAC_PC_GDP Nominal expenditure as a percentage of GDP (GDP=100) 5.130000e+01 5.190000e+01 5.920000e+01
EXP_PPS_EU27_2020 Real expenditure (in PPS_EU27_2020) 1.694653e+06 1.113175e+06 1.051007e+06
EXP_PPS_EU27_2020_HAB Real expenditure per capita (in PPS_EU27_2020) 2.040000e+04 1.650000e+04 1.760000e+04
PLI_EU27_2020 Price level indices (EU27_2020=100) 1.070000e+02 1.134000e+02 1.016000e+02
PPP_EU27_2020 Purchasing power parities (EU27_2020=1) 1.070250e+00 1.134170e+00 1.016110e+00
VI_PPS_EU27_2020_HAB Volume indices of real expenditure per capita (in PPS_EU27_2020=100) 1.240000e+02 1.000000e+02 1.070000e+02

Actual Individual Consumption

Table - 2019 - Countries

Code
prc_ppp_ind_1 %>%
  filter(ppp_cat18 == "A01",
         indic_ppp == "VI_PPS_EU28_HAB",
         time == "2019") %>%
  left_join(geo, by = "geo") %>%
  select(-ppp_cat18, -time, -indic_ppp) %>%
  mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) %>%
  mutate(Flag = gsub(" ", "-", str_to_lower(Geo)),
         Flag = paste0('<img src="../../bib/flags/vsmall/', Flag, '.png" alt="Flag">')) %>%
  select(Flag, everything()) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}