Final consumption aggregates - namq_10_fcs

Data - Eurostat

Info

LAST_DOWNLOAD

Code
tibble(LAST_DOWNLOAD = as.Date(file.info("~/iCloud/website/data/eurostat/namq_10_fcs.RData")$mtime)) %>%
  print_table_conditional()
LAST_DOWNLOAD
2026-02-23

LAST_COMPILE

LAST_COMPILE
2026-02-24

Last

Code
namq_10_fcs %>%
  group_by(time) %>%
  summarise(Nobs = n()) %>%
  arrange(desc(time)) %>%
  head(1) %>%
  print_table_conditional()
time Nobs
2025Q4 1074

na_item

Code
namq_10_fcs %>%
  left_join(na_item, by = "na_item") %>%
  group_by(na_item, Na_item) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional()
na_item Na_item Nobs
P31_S14 Final consumption expenditure of households 197415
P311_S14 Final consumption expenditure of households, durable goods 183735
P312N_S14 Final consumption expenditure of households, semi-durable goods, non-durable goods and services 183735
P312_S14 Final consumption expenditure of households, semi-durable goods 174619
P313_S14 Final consumption expenditure of households, non-durable goods 174619
P314_S14 Final consumption expenditure of households, services 174619

s_adj

Code
namq_10_fcs %>%
  left_join(s_adj, by = "s_adj") %>%
  group_by(s_adj, S_adj) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional()
s_adj S_adj Nobs
NSA Unadjusted data (i.e. neither seasonally adjusted nor calendar adjusted data) 496982
SCA Seasonally and calendar adjusted data 488374
CA Calendar adjusted data, not seasonally adjusted data 79016
SA Seasonally adjusted data, not calendar adjusted data 24370

unit

Code
namq_10_fcs %>%
  left_join(unit, by = "unit") %>%
  group_by(unit, Unit) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional()
unit Unit Nobs
CP_MEUR Current prices, million euro 63099
CP_MNAC Current prices, million units of national currency 63099
PC_GDP Percentage of gross domestic product (GDP) 63099
CLV10_MEUR Chain linked volumes (2010), million euro 62001
CLV10_MNAC Chain linked volumes (2010), million units of national currency 62001
CLV15_MEUR Chain linked volumes (2015), million euro 62001
CLV15_MNAC Chain linked volumes (2015), million units of national currency 62001
CLV_I10 Chain linked volumes, index 2010=100 62001
CLV_I15 Chain linked volumes, index 2015=100 62001
CLV05_MEUR Chain linked volumes (2005), million euro 61053
CLV05_MNAC Chain linked volumes (2005), million units of national currency 61053
CLV_I05 Chain linked volumes, index 2005=100 61053
CLV20_MEUR NA 60195
CLV20_MNAC NA 60195
CLV_I20 NA 60195
CLV_PCH_SM Chain linked volumes, percentage change compared to same period in previous year 60005
PYP_MEUR Previous year prices, million euro 37254
PYP_MNAC Previous year prices, million units of national currency 37254
CLV_PCH_PRE Chain linked volumes, percentage change on previous period 29182

geo

Code
namq_10_fcs %>%
  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
namq_10_fcs %>%
  group_by(time) %>%
  summarise(Nobs = n()) %>%
  arrange(desc(time)) %>%
  print_table_conditional()

France

Table

Code
namq_10_fcs %>%
  filter(geo == "FR",
         time == "2021Q4",
         s_adj == "NSA") %>%
  select_if(~ n_distinct(.) > 1) %>%
  left_join(unit, by = "unit") %>%
  left_join(na_item, by = "na_item") %>%
  mutate(Na_item = paste0(na_item, " - ", Na_item)) %>%
  select(-na_item) %>%
  spread(Na_item, values) %>%
  print_table_conditional()
unit Unit P31_S14 - Final consumption expenditure of households P311_S14 - Final consumption expenditure of households, durable goods P312_S14 - Final consumption expenditure of households, semi-durable goods P312N_S14 - Final consumption expenditure of households, semi-durable goods, non-durable goods and services P313_S14 - Final consumption expenditure of households, non-durable goods P314_S14 - Final consumption expenditure of households, services
CLV_I05 Chain linked volumes, index 2005=100 122.806 148.083 114.518 120.568 112.177 126.479
CLV_I10 Chain linked volumes, index 2010=100 114.257 123.428 112.471 113.493 107.678 116.916
CLV_I15 Chain linked volumes, index 2015=100 110.122 120.987 111.072 109.195 106.877 110.065
CLV_I20 NA 112.072 114.088 116.166 111.896 108.349 113.240
CLV_PCH_SM Chain linked volumes, percentage change compared to same period in previous year 7.400 -1.200 8.300 8.300 0.500 13.000
CLV05_MEUR Chain linked volumes (2005), million euro 288062.500 33603.100 28087.100 255451.600 75128.100 152249.800
CLV05_MNAC Chain linked volumes (2005), million units of national currency 288062.500 33603.100 28087.100 255451.600 75128.100 152249.800
CLV10_MEUR Chain linked volumes (2010), million euro 306672.400 29744.600 28610.800 277271.500 82898.600 165882.600
CLV10_MNAC Chain linked volumes (2010), million units of national currency 306672.400 29744.600 28610.800 277271.500 82898.600 165882.600
CLV15_MEUR Chain linked volumes (2015), million euro 319261.400 28264.700 29270.400 291064.500 89315.200 172397.500
CLV15_MNAC Chain linked volumes (2015), million units of national currency 319261.400 28264.700 29270.400 291064.500 89315.200 172397.500
CLV20_MEUR NA 333684.500 27348.400 28926.500 306336.100 97621.100 179788.600
CLV20_MNAC NA 333684.500 27348.400 28926.500 306336.100 97621.100 179788.600
CP_MEUR Current prices, million euro 341838.800 28446.900 29975.900 313391.900 101410.100 182005.900
CP_MNAC Current prices, million units of national currency 341838.800 28446.900 29975.900 313391.900 101410.100 182005.900
PC_GDP Percentage of gross domestic product (GDP) 51.600 4.300 4.500 47.300 15.300 27.500
PYP_MEUR Previous year prices, million euro 333684.500 27348.400 28926.500 306336.100 97621.100 179788.600
PYP_MNAC Previous year prices, million units of national currency 333684.500 27348.400 28926.500 306336.100 97621.100 179788.600

France, Germany, Spain, Italy, Netherlands

All

Consumption

Code
namq_10_fcs %>%
  filter(geo %in% c("FR", "EA", "ES", "IT", "DE"),
         unit == "PC_GDP",
         s_adj == "NSA",
         na_item == "P31_S14") %>%
  quarter_to_date %>%
  mutate(values = values / 100) %>%
  left_join(geo, by = "geo") %>%
  mutate(Geo = ifelse(geo == "EA", "Europe", Geo)) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  mutate(color = ifelse(geo == "EA", color2, color)) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + theme_minimal()  + add_4flags + xlab("") + 
  ylab("Final consumption expenditure of households (% of GDP)") +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2022, 5), "-01-01")),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-30, 100, 2),
                labels = percent_format(a = 1))

1995-

Consumption

Code
namq_10_fcs %>%
  filter(geo %in% c("FR", "NL", "ES", "IT", "DE"),
         unit == "PC_GDP",
         s_adj == "NSA",
         na_item == "P31_S14") %>%
  quarter_to_date %>%
  filter(date >= as.Date("1995-01-01")) %>%
  mutate(values = values / 100) %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  mutate(color = ifelse(geo == "NL", color2, color)) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + theme_minimal()  + add_4flags + xlab("") + 
  ylab("Final consumption expenditure of households (% of GDP)") +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2022, 5), "-01-01")),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-30, 100, 2),
                labels = percent_format(a = 1))

Durable goods

Code
namq_10_fcs %>%
  filter(geo %in% c("FR", "NL", "ES", "IT", "DE"),
         unit == "PC_GDP",
         s_adj == "NSA",
         na_item == "P311_S14") %>%
  quarter_to_date %>%
  filter(date >= as.Date("1995-01-01")) %>%
  mutate(values = values / 100) %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  mutate(color = ifelse(geo == "NL", color2, color)) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + theme_minimal()  + add_4flags + xlab("") + 
  ylab("Durable goods (% of GDP)") +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2022, 5), "-01-01")),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-30, 100, 1),
                labels = percent_format(a = 1))

Non-durable goods

Code
namq_10_fcs %>%
  filter(geo %in% c("FR", "NL", "ES", "IT", "DE"),
         unit == "PC_GDP",
         s_adj == "NSA",
         na_item == "P313_S14") %>%
  quarter_to_date %>%
  filter(date >= as.Date("1995-01-01")) %>%
  mutate(values = values / 100) %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  mutate(color = ifelse(geo == "NL", color2, color)) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + theme_minimal()  + add_4flags + xlab("") + 
  ylab("Non-durable goods (% of GDP)") +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2022, 5), "-01-01")),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-30, 100, 1),
                labels = percent_format(a = 1))

Services

Code
namq_10_fcs %>%
  filter(geo %in% c("FR", "NL", "ES", "IT", "DE"),
         unit == "PC_GDP",
         s_adj == "NSA",
         na_item == "P314_S14") %>%
  quarter_to_date %>%
  filter(date >= as.Date("1995-01-01")) %>%
  mutate(values = values / 100) %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  mutate(color = ifelse(geo == "NL", color2, color)) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + theme_minimal()  + add_4flags + xlab("") + 
  ylab("Services (% of GDP)") +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2022, 5), "-01-01")),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-30, 100, 1),
                labels = percent_format(a = 1))