Structure of consumption expenditure by COICOP consumption purpose

Data - Eurostat

Info

source dataset Title .html .rData
eurostat hbs_str_t211 Structure of consumption expenditure by COICOP consumption purpose 2025-10-10 2025-10-09

Data on housing

source dataset Title .html .rData
bdf RPP Prix de l'immobilier 2025-08-28 2025-08-24
bis LONG_PP Residential property prices - detailed series 2025-10-10 2024-05-10
bis SELECTED_PP Property prices, selected series 2025-10-10 2025-10-09
ecb RPP Residential Property Price Index Statistics 2025-10-09 2025-08-29
eurostat ei_hppi_q House price index (2015 = 100) - quarterly data 2025-10-10 2025-10-09
eurostat hbs_str_t223 Mean consumption expenditure by income quintile 2025-10-01 2025-10-09
eurostat prc_hicp_midx HICP (2015 = 100) - monthly data (index) 2025-10-10 2025-10-09
eurostat prc_hpi_q House price index (2015 = 100) - quarterly data 2025-10-10 2025-09-26
fred housing House Prices 2025-10-09 2025-10-09
insee IPLA-IPLNA-2015 Indices des prix des logements neufs et Indices Notaires-Insee des prix des logements anciens 2025-10-10 2025-10-09
oecd SNA_TABLE5 Final consumption expenditure of households 2025-09-29 2023-10-19
oecd housing NA NA NA

LAST_COMPILE

LAST_COMPILE
2025-10-11

Last

Code
hbs_str_t211 %>%
  group_by(time) %>%
  summarise(Nobs = n()) %>%
  arrange(desc(time)) %>%
  head(2) %>%
  print_table_conditional()
time Nobs
2020 4800
2015 6102

coicop

All

Code
hbs_str_t211 %>%
  left_join(coicop, by = "coicop") %>%
  group_by(coicop, Coicop) %>%
  summarise(Nobs = n()) %>%
  print_table_conditional()

2-digit

Code
hbs_str_t211 %>%
  filter(nchar(coicop) == 4) %>%
  left_join(coicop, by = "coicop") %>%
  group_by(coicop, Coicop) %>%
  summarise(Nobs = n()) %>%
  print_table_conditional()
coicop Coicop Nobs
CP01 Food and non-alcoholic beverages 205
CP02 Alcoholic beverages, tobacco and narcotics 205
CP03 Clothing and footwear 205
CP04 Housing, water, electricity, gas and other fuels 205
CP05 Furnishings, household equipment and routine household maintenance 205
CP06 Health 205
CP07 Transport 205
CP08 Communications 205
CP09 Recreation and culture 205
CP10 Education 204
CP11 Restaurants and hotels 205
CP12 Miscellaneous goods and services 205

3-digit

Code
hbs_str_t211 %>%
  filter(nchar(coicop) == 5) %>%
  left_join(coicop, by = "coicop") %>%
  group_by(coicop, Coicop) %>%
  summarise(Nobs = n()) %>%
  print_table_conditional()

4-digit

Code
hbs_str_t211 %>%
  filter(nchar(coicop) == 6) %>%
  left_join(coicop, by = "coicop") %>%
  group_by(coicop, Coicop) %>%
  summarise(Nobs = n()) %>%
  print_table_conditional()

geo

Code
hbs_str_t211 %>%
  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
hbs_str_t211 %>%
  group_by(time) %>%
  summarise(Nobs = n()) %>%
  print_table_conditional()
time Nobs
1988 1307
1994 2316
1999 2348
2005 8233
2010 7334
2015 6102
2020 4800

France

Table

Code
hbs_str_t211 %>%
  left_join(coicop, by = "coicop") %>%
  filter(geo == "FR",
         substr(coicop, 1, 2) == "CP",
         coicop != "CP00",
         time %in% c("2015", "2020")) %>%
  select(-unit) %>%
  select(-geo) %>%
  spread(time, values) %>%
  print_table_conditional()

2-digit

Code
hbs_str_t211 %>%
  left_join(coicop, by = "coicop") %>%
  filter(geo == "FR",
         substr(coicop, 1, 2) == "CP",
         nchar(coicop) == 4,
         coicop != "CP00",
         time %in% c("2015", "2020")) %>%
  select(-unit) %>%
  select(-geo) %>%
  spread(time, values) %>%
  print_table_conditional()
freq coicop Coicop 2015 2020
A CP01 Food and non-alcoholic beverages 143 143
A CP02 Alcoholic beverages, tobacco and narcotics 25 25
A CP03 Clothing and footwear 40 40
A CP04 Housing, water, electricity, gas and other fuels 289 289
A CP05 Furnishings, household equipment and routine household maintenance 48 48
A CP06 Health 16 16
A CP07 Transport 132 132
A CP08 Communications 24 24
A CP09 Recreation and culture 77 77
A CP10 Education 6 6
A CP11 Restaurants and hotels 55 55
A CP12 Miscellaneous goods and services 147 147

3-digit

Code
hbs_str_t211 %>%
  left_join(coicop, by = "coicop") %>%
  filter(geo == "FR",
         substr(coicop, 1, 2) == "CP",
         nchar(coicop) == 5,
         coicop != "CP00",
         time %in% c("2015", "2020")) %>%
  select(-unit) %>%
  select(-geo) %>%
  spread(time, values) %>%
  print_table_conditional()

4-digit

Code
hbs_str_t211 %>%
  left_join(coicop, by = "coicop") %>%
  filter(geo == "FR",
         substr(coicop, 1, 2) == "CP",
         nchar(coicop) == 6,
         coicop != "CP00",
         time %in% c("2015", "2020")) %>%
  select(-unit) %>%
  select(-geo) %>%
  spread(time, values) %>%
  print_table_conditional()

Table

2015

Code
hbs_str_t211 %>%
  filter(time == "2015",
         coicop %in% c("CP04", "CP041", "CP042")) %>%
  left_join(geo, by = "geo") %>%
  select_if(~ n_distinct(.) > 1) %>%
  spread(coicop, values) %>%
  arrange(-CP04) %>%
  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 .}

2020

Code
hbs_str_t211 %>%
  filter(time == "2020",
         coicop %in% c("CP04", "CP041", "CP042")) %>%
  left_join(geo, by = "geo") %>%
  select_if(~ n_distinct(.) > 1) %>%
  spread(coicop, values) %>%
  arrange(-CP04) %>%
  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 .}