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-03-26

LAST_COMPILE

LAST_COMPILE
2026-03-27

Last

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

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 198735
P311_S14 Final consumption expenditure of households, durable goods 184987
P312N_S14 Final consumption expenditure of households, semi-durable goods, non-durable goods and services 184987
P312_S14 Final consumption expenditure of households, semi-durable goods 175801
P313_S14 Final consumption expenditure of households, non-durable goods 175801
P314_S14 Final consumption expenditure of households, services 175801

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) 500336
SCA Seasonally and calendar adjusted data 491643
CA Calendar adjusted data, not seasonally adjusted data 79644
SA Seasonally adjusted data, not calendar adjusted data 24489

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 63523
CP_MNAC Current prices, million units of national currency 63523
PC_GDP Percentage of gross domestic product (GDP) 63523
CLV10_MEUR Chain linked volumes (2010), million euro 62419
CLV10_MNAC Chain linked volumes (2010), million units of national currency 62419
CLV15_MEUR Chain linked volumes (2015), million euro 62419
CLV15_MNAC Chain linked volumes (2015), million units of national currency 62419
CLV_I10 Chain linked volumes, index 2010=100 62419
CLV_I15 Chain linked volumes, index 2015=100 62419
CLV05_MEUR Chain linked volumes (2005), million euro 61459
CLV05_MNAC Chain linked volumes (2005), million units of national currency 61459
CLV_I05 Chain linked volumes, index 2005=100 61459
CLV20_MEUR NA 60613
CLV20_MNAC NA 60613
CLV_I20 NA 60613
CLV_PCH_SM Chain linked volumes, percentage change compared to same period in previous year 60423
PYP_MEUR Previous year prices, million euro 37507
PYP_MNAC Previous year prices, million units of national currency 37507
CLV_PCH_PRE Chain linked volumes, percentage change on previous period 29376

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.256 123.428 112.471 113.492 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.239
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.200 33603.100 28087.100 255451.400 75128.100 152249.500
CLV05_MNAC Chain linked volumes (2005), million units of national currency 288062.200 33603.100 28087.100 255451.400 75128.100 152249.500
CLV10_MEUR Chain linked volumes (2010), million euro 306672.100 29744.600 28610.800 277271.300 82898.700 165882.200
CLV10_MNAC Chain linked volumes (2010), million units of national currency 306672.100 29744.600 28610.800 277271.300 82898.700 165882.200
CLV15_MEUR Chain linked volumes (2015), million euro 319261.200 28264.700 29270.400 291064.300 89315.300 172397.200
CLV15_MNAC Chain linked volumes (2015), million units of national currency 319261.200 28264.700 29270.400 291064.300 89315.300 172397.200
CLV20_MEUR NA 333684.200 27348.400 28926.500 306335.900 97621.200 179788.200
CLV20_MNAC NA 333684.200 27348.400 28926.500 306335.900 97621.200 179788.200
CP_MEUR Current prices, million euro 341838.400 28446.900 29975.900 313391.600 101410.100 182005.500
CP_MNAC Current prices, million units of national currency 341838.400 28446.900 29975.900 313391.600 101410.100 182005.500
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.200 27348.400 28926.500 306335.900 97621.200 179788.200
PYP_MNAC Previous year prices, million units of national currency 333684.200 27348.400 28926.500 306335.900 97621.200 179788.200

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))