Purchasing power parities, price level indices, nominal and real expenditures by analytical categories - based on COICOP 2018
Data - Eurostat
Info
Last observation: Annual: 2025 (N = 19,077)
First observation: Annual: 1995 (N = 1,437)
Last data update: 11 aoû 2026, 19:50. Last compile: 12 aoû 2026, 03:13
Structure
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")
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(colors, by = c("Geo" = "country")) |>
ggplot() + geom_line(aes(x = date, y = values, color = color)) +
scale_color_identity() + theme_minimal() + add_flags +
scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 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(colors, by = c("Geo" = "country")) |>
ggplot() + geom_line(aes(x = date, y = values, color = color)) +
scale_color_identity() + theme_minimal() + add_flags +
scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 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(colors, by = c("Geo" = "country")) |>
ggplot() + geom_line(aes(x = date, y = values, color = color)) +
scale_color_identity() + theme_minimal() + add_flags +
scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 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(colors, by = c("Geo" = "country")) |>
ggplot() + geom_line(aes(x = date, y = values, color = color)) +
scale_color_identity() + theme_minimal() + add_flags +
scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 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(colors, by = c("Geo" = "country")) |>
ggplot() + geom_line(aes(x = date, y = values, color = color)) +
scale_color_identity() + theme_minimal() + add_flags +
scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 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
2019
Code
prc_ppp_ind_1 |>
filter(ppp_cat18 == "A0104",
time == "2019",
geo %in% c("FR", "DE", "IT")) |>
select(indic_ppp, geo, values) |>
spread(geo, values) |>
print_table_conditional()| indic_ppp |
|---|
| 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(colors, by = c("Geo" = "country")) |>
ggplot() + geom_line(aes(x = date, y = values, color = color)) +
scale_color_identity() + theme_minimal() + add_flags +
scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 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) |>
spread(geo, values) |>
print_table_conditional()| indic_ppp | DE | FR | IT |
|---|---|---|---|
| EXP_EUR | 1.813709e+06 | 1.262531e+06 | 1.067942e+06 |
| EXP_EUR_HAB | 2.206400e+04 | 1.873300e+04 | 1.788000e+04 |
| EXP_NAC | 1.813709e+06 | 1.262531e+06 | 1.067942e+06 |
| EXP_NAC_PC_GDP | 5.130000e+01 | 5.190000e+01 | 5.920000e+01 |
| EXP_PPS_EU27_2020 | 1.694653e+06 | 1.113175e+06 | 1.051007e+06 |
| EXP_PPS_EU27_2020_HAB | 2.060000e+04 | 1.650000e+04 | 1.760000e+04 |
| PLI_EU27_2020 | 1.070000e+02 | 1.134000e+02 | 1.016000e+02 |
| PPP_EU27_2020 | 1.070250e+00 | 1.134170e+00 | 1.016110e+00 |
| VI_PPS_EU27_2020_HAB | 1.250000e+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) |>
spread(geo, values) |>
print_table_conditional()| indic_ppp | DE | FR | IT |
|---|---|---|---|
| EXP_EUR | 3.537280e+06 | 2.432207e+06 | 1.804067e+06 |
| EXP_EUR_HAB | 4.303100e+04 | 3.608800e+04 | 3.020400e+04 |
| EXP_NAC | 3.537280e+06 | 2.432207e+06 | 1.804067e+06 |
| EXP_NAC_PC_GDP | 1.000000e+02 | 1.000000e+02 | 1.000000e+02 |
| EXP_PPS_EU27_2020 | 3.205299e+06 | 2.240749e+06 | 1.812665e+06 |
| EXP_PPS_EU27_2020_HAB | 3.900000e+04 | 3.320000e+04 | 3.030000e+04 |
| PLI_EU27_2020 | 1.104000e+02 | 1.085000e+02 | 9.950000e+01 |
| PPP_EU27_2020 | 1.103570e+00 | 1.085440e+00 | 9.952560e-01 |
| VI_PPS_EU27_2020_HAB | 1.230000e+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) |>
spread(geo, values) |>
print_table_conditional()| indic_ppp | DE | FR | IT |
|---|---|---|---|
| EXP_EUR | 1.813709e+06 | 1.262531e+06 | 1.067942e+06 |
| EXP_EUR_HAB | 2.206400e+04 | 1.873300e+04 | 1.788000e+04 |
| EXP_NAC | 1.813709e+06 | 1.262531e+06 | 1.067942e+06 |
| EXP_NAC_PC_GDP | 5.130000e+01 | 5.190000e+01 | 5.920000e+01 |
| EXP_PPS_EU27_2020 | 1.694653e+06 | 1.113175e+06 | 1.051007e+06 |
| EXP_PPS_EU27_2020_HAB | 2.060000e+04 | 1.650000e+04 | 1.760000e+04 |
| PLI_EU27_2020 | 1.070000e+02 | 1.134000e+02 | 1.016000e+02 |
| PPP_EU27_2020 | 1.070250e+00 | 1.134170e+00 | 1.016110e+00 |
| VI_PPS_EU27_2020_HAB | 1.250000e+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") |>
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 .}