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
2025-10-11

LAST_COMPILE

LAST_COMPILE
2025-10-11

Last

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

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

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) 476852
SCA Seasonally and calendar adjusted data 468641
CA Calendar adjusted data, not seasonally adjusted data 81856
SA Seasonally adjusted data, not calendar adjusted data 43403

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

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.810 148.083 114.518 120.571 112.178 126.486
CLV_I10 Chain linked volumes, index 2010=100 114.260 123.428 112.471 113.496 107.678 116.922
CLV_I15 Chain linked volumes, index 2015=100 110.125 120.987 111.072 109.199 106.877 110.070
CLV_I20 NA 112.076 114.088 116.166 111.899 108.349 113.245
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 288070.700 33603.100 28087.100 255459.500 75128.300 152257.400
CLV05_MNAC Chain linked volumes (2005), million units of national currency 288070.700 33603.100 28087.100 255459.500 75128.300 152257.400
CLV10_MEUR Chain linked volumes (2010), million euro 306681.100 29744.500 28610.900 277280.100 82899.000 165890.800
CLV10_MNAC Chain linked volumes (2010), million units of national currency 306681.100 29744.500 28610.900 277280.100 82899.000 165890.800
CLV15_MEUR Chain linked volumes (2015), million euro 319270.600 28264.800 29270.600 291073.500 89315.600 172406.100
CLV15_MNAC Chain linked volumes (2015), million units of national currency 319270.600 28264.800 29270.600 291073.500 89315.600 172406.100
CLV20_MEUR NA 333694.000 27348.400 28926.600 306345.600 97621.500 179797.500
CLV20_MNAC NA 333694.000 27348.400 28926.600 306345.600 97621.500 179797.500
CP_MEUR Current prices, million euro 341838.900 28447.000 29976.000 313391.900 101410.400 182005.500
CP_MNAC Current prices, million units of national currency 341838.900 28447.000 29976.000 313391.900 101410.400 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 333694.000 27348.400 28926.600 306345.600 97621.500 179797.500
PYP_MNAC Previous year prices, million units of national currency 333694.000 27348.400 28926.600 306345.600 97621.500 179797.500

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