Key indicators and growth rates of selected transactions

Data - Eurostat

Info

source dataset .html .RData
eurostat nasq_10_ki 2024-11-19 2024-10-31

Data on saving

source dataset .html .RData
bdf CFT 2024-11-21 2024-11-21
bea T50100 2024-02-11 2024-03-13
fred saving 2024-11-22 2024-11-22
oecd NAAG 2024-04-16 2024-03-13
wdi NY.GDS.TOTL.ZS 2022-09-27 2024-09-18
wdi NY.GNS.ICTR.ZS 2022-09-27 2024-09-18

Example

LAST_DOWNLOAD

Code
tibble(LAST_DOWNLOAD = as.Date(file.info("~/Library/Mobile\ Documents/com~apple~CloudDocs/website/data/eurostat/nasq_10_ki.RData")$mtime)) %>%
  print_table_conditional()
LAST_DOWNLOAD
2024-10-31

LAST_COMPILE

LAST_COMPILE
2024-11-22

Last

Code
nasq_10_ki %>%
  group_by(time) %>%
  summarise(Nobs = n()) %>%
  arrange(desc(time)) %>%
  head(1) %>%
  print_table_conditional()
time Nobs
2024Q2 163

sector

Code
nasq_10_ki %>%
  left_join(sector, by = "sector") %>%
  group_by(sector, Sector) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  print_table_conditional()
sector Sector Nobs
S14_S15 Households; non-profit institutions serving households 14953
S11 Non-financial corporations 9293

na_item

Code
load_data("eurostat/na_item.RData")
nasq_10_ki %>%
  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
B2G_B3G_RAT_S11 Gross profit share of non-financial corporations (B2G_B3G/B1Q*100) 4685
IRG_S11 Gross investment rate of non-financial corporations (P51/B1G*100) 4608
SRG_S14_S15 Gross household saving rate (B8G/(B6G+D8Net)*100) 4161
IRG_S14_S15 Gross investment rate of households (P51/(B6G+D8Net)*100) 4112
B6G_R_HAB_2010 Gross disposable income of households in real terms per capita (2010=100) 1908
B6G_R_HAB_GR Gross disposable income of households in real terms per capita (percentage change on previous period) 1890
NFW_S14_S15 Household net financial assets ratio (BF90/(B6G+D8net)) 1851
B7G_R_HAB_2010 Adjusted gross disposable income of households in real terms per capita (2010=100) 315
B7G_R_HAB_GR Adjusted gross disposable income of households in real terms per capita (percentage change on previous period) 312
B7G_N_HAB_GR Adjusted gross disposable income of households in nominal terms per capita (percentage change on previous period) 202
P4_R_HAB_GR Actual final consumption in real terms per capita (percentage change on previous period) 202

geo

Code
nasq_10_ki %>%
  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/vsmasll/', Flag, '.png" alt="Flag">')) %>%
  select(Flag, everything()) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}

Adjusted gross disposable income of households in real terms per capita (2010=100) - B7G

France, Germany, Spain, Italy, Europe

All

Code
nasq_10_ki %>%
  filter(geo %in% c("FR", "DE", "IT", "ES", "EA20"),
         na_item == "B7G_R_HAB_2010",
         s_adj == "SCA") %>%
  quarter_to_date %>%
  left_join(geo, by = "geo") %>%
  mutate(Geo = ifelse(geo == "EA20", "Europe", Geo)) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + theme_minimal() + xlab("") + ylab("") +
  geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + add_2flags +
  scale_x_date(breaks = as.Date(paste0(seq(1940, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 1000, 5))

1999-

Code
nasq_10_ki %>%
  filter(geo %in% c("FR", "DE", "IT", "ES", "EA20"),
         na_item == "B7G_R_HAB_2010",
         s_adj == "SCA") %>%
  quarter_to_date %>%
  filter(date >= as.Date("1999-01-01")) %>%
  left_join(geo, by = "geo") %>%
  group_by(geo) %>%
  arrange(date) %>%
  mutate(values = 100*values/values[1]) %>%
  mutate(Geo = ifelse(geo == "EA20", "Europe", Geo)) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + theme_minimal() + xlab("") + ylab("") +
  geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + add_2flags +
  scale_x_date(breaks = as.Date(paste0(seq(1999, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 1000, 5))

2010-

Code
nasq_10_ki %>%
  filter(geo %in% c("FR", "DE", "IT", "ES", "EA20"),
         na_item == "B7G_R_HAB_2010",
         s_adj == "SCA") %>%
  quarter_to_date %>%
  filter(date >= as.Date("2010-01-01")) %>%
  left_join(geo, by = "geo") %>%
  mutate(Geo = ifelse(geo == "EA20", "Europe", Geo)) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + theme_minimal() + xlab("") + ylab("") +
  geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + add_2flags +
  scale_x_date(breaks = as.Date(paste0(seq(1940, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 1000, 5))

Gross disposable income of households in real terms per capita (2010=100) - B6G

France, Germany, Spain, Italy, Europe

All

Code
nasq_10_ki %>%
  filter(geo %in% c("FR", "DE", "IT", "ES", "EA20"),
         na_item == "B6G_R_HAB_2010",
         s_adj == "SCA") %>%
  quarter_to_date %>%
  left_join(geo, by = "geo") %>%
  mutate(Geo = ifelse(geo == "EA20", "Europe", Geo)) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + theme_minimal() + xlab("") + ylab("") +
  geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + add_5flags +
  scale_x_date(breaks = as.Date(paste0(seq(1940, 2100, 5), "-01-01")),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 1000, 5))

1999-

Code
nasq_10_ki %>%
  filter(geo %in% c("FR", "DE", "IT", "ES", "EA20"),
         na_item == "B6G_R_HAB_2010",
         s_adj == "SCA") %>%
  quarter_to_date %>%
  filter(date >= as.Date("1999-01-01")) %>%
  left_join(geo, by = "geo") %>%
  group_by(geo) %>%
  arrange(date) %>%
  mutate(values = 100*values/values[1]) %>%
  mutate(Geo = ifelse(geo == "EA20", "Europe", Geo)) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + theme_minimal() + xlab("") + ylab("") +
  geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + add_5flags +
  scale_x_date(breaks = as.Date(paste0(seq(1999, 2100, 5), "-01-01")),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 1000, 5))

2010-

Code
nasq_10_ki %>%
  filter(geo %in% c("FR", "DE", "IT", "ES", "EA20"),
         na_item == "B6G_R_HAB_2010",
         s_adj == "SCA") %>%
  quarter_to_date %>%
  filter(date >= as.Date("2010-01-01")) %>%
  left_join(geo, by = "geo") %>%
  mutate(Geo = ifelse(geo == "EA20", "Europe", Geo)) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + theme_minimal() + xlab("") + ylab("") +
  geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + add_5flags +
  scale_x_date(breaks = as.Date(paste0(seq(1940, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 1000, 5))

Gross profit share of non-financial corporations (B2G_B3G/B1Q*100)

France, Germany, Spain, Italy, Europe

All

Code
nasq_10_ki %>%
  filter(geo %in% c("FR", "DE", "IT", "ES", "EA20"),
         na_item == "B2G_B3G_RAT_S11",
         s_adj == "SCA") %>%
  quarter_to_date %>%
  mutate(values = values/100) %>%
  left_join(geo, by = "geo") %>%
  mutate(Geo = ifelse(geo == "EA20", "Europe", Geo)) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + theme_minimal() + xlab("") + ylab("") +
  geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + add_5flags +
  scale_x_date(breaks = as.Date(paste0(seq(1940, 2100, 5), "-01-01")),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 100, 5),
                labels = percent_format(a = 1))

1999-

Code
nasq_10_ki %>%
  filter(geo %in% c("FR", "DE", "IT", "ES", "EA20"),
         na_item == "B2G_B3G_RAT_S11",
         s_adj == "SCA") %>%
  quarter_to_date %>%
  mutate(values = values/100) %>%
  left_join(geo, by = "geo") %>%
  mutate(Geo = ifelse(geo == "EA20", "Europe", Geo)) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  filter(date >= as.Date("1999-01-01")) %>%
  ggplot + theme_minimal() + xlab("") + ylab("") +
  geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + add_5flags +
  scale_x_date(breaks = as.Date(paste0(seq(1940, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 100, 2),
                labels = percent_format(a = 1))

2015-

Code
nasq_10_ki %>%
  filter(geo %in% c("FR", "DE", "IT", "ES", "EA20"),
         na_item == "B2G_B3G_RAT_S11",
         s_adj == "SCA") %>%
  quarter_to_date %>%
  mutate(values = values/100) %>%
  left_join(geo, by = "geo") %>%
  mutate(Geo = ifelse(geo == "EA20", "Europe", Geo)) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  filter(date >= as.Date("2015-01-01")) %>%
  ggplot + theme_minimal() + xlab("") + ylab("") +
  geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + add_5flags +
  scale_x_date(breaks = as.Date(paste0(seq(1940, 2025, 1), "-01-01")),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 100, 1),
                labels = percent_format(a = 1))

Gross household saving rate (B8G/(B6G+D8Net)*100)

France, Germany, Spain, Italy, Europe

All

Code
nasq_10_ki %>%
  filter(geo %in% c("FR", "DE", "IT", "ES", "EA20"),
         na_item == "SRG_S14_S15",
         s_adj == "SCA") %>%
  quarter_to_date %>%
  mutate(values = values/100) %>%
  left_join(geo, by = "geo") %>%
  mutate(Geo = ifelse(geo == "EA20", "Europe", Geo)) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + theme_minimal() + xlab("") + ylab("") +
  geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + add_5flags +
  scale_x_date(breaks = as.Date(paste0(seq(1940, 2100, 5), "-01-01")),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 100, 5),
                labels = percent_format(a = 1))

1999-

Code
nasq_10_ki %>%
  filter(geo %in% c("FR", "DE", "IT", "ES", "EA20"),
         na_item == "SRG_S14_S15",
         s_adj == "SCA") %>%
  quarter_to_date %>%
  mutate(values = values/100) %>%
  left_join(geo, by = "geo") %>%
  mutate(Geo = ifelse(geo == "EA20", "Europe", Geo)) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  filter(date >= as.Date("1999-01-01")) %>%
  ggplot + theme_minimal() + xlab("") + ylab("") +
  geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + add_5flags +
  scale_x_date(breaks = as.Date(paste0(seq(1940, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 100, 2),
                labels = percent_format(a = 1))

2015-

Code
nasq_10_ki %>%
  filter(geo %in% c("FR", "DE", "IT", "ES", "EA20"),
         na_item == "SRG_S14_S15",
         s_adj == "SCA") %>%
  quarter_to_date %>%
  mutate(values = values/100) %>%
  left_join(geo, by = "geo") %>%
  mutate(Geo = ifelse(geo == "EA20", "Europe", Geo)) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  filter(date >= as.Date("2015-01-01")) %>%
  ggplot + theme_minimal() + xlab("") + ylab("") +
  geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + add_5flags +
  scale_x_date(breaks = as.Date(paste0(seq(1940, 2025, 1), "-01-01")),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 100, 1),
                labels = percent_format(a = 1))

2019-

Code
nasq_10_ki %>%
  filter(geo %in% c("FR", "DE", "IT", "ES", "EA20"),
         na_item == "SRG_S14_S15",
         s_adj == "SCA") %>%
  quarter_to_date %>%
  mutate(values = values/100) %>%
  left_join(geo, by = "geo") %>%
  mutate(Geo = ifelse(geo == "EA20", "Europe", Geo)) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  filter(date >= as.Date("2019-01-01")) %>%
  ggplot + theme_minimal() + xlab("") + ylab("") +
  geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + add_5flags +
  scale_x_date(breaks = seq.Date(from = as.Date("2018-01-01"), to = as.Date("2024-01-01"), by = "6 months"),
               labels = date_format("%b %Y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 100, 1),
                labels = percent_format(a = 1))

Gross investment rate of households (P51/(B6G+D8Net)*100)

France, Germany, Spain, Italy, Europe

All

Code
nasq_10_ki %>%
  filter(geo %in% c("FR", "DE", "IT", "ES", "EA20"),
         na_item == "IRG_S14_S15",
         s_adj == "SCA") %>%
  quarter_to_date %>%
  mutate(values = values/100) %>%
  left_join(geo, by = "geo") %>%
  mutate(Geo = ifelse(geo == "EA20", "Europe", Geo)) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + theme_minimal() + xlab("") + ylab("") +
  geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + add_5flags +
  scale_x_date(breaks = as.Date(paste0(seq(1940, 2100, 5), "-01-01")),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 100, 2),
                labels = percent_format(a = 1))

1999-

Code
nasq_10_ki %>%
  filter(geo %in% c("FR", "DE", "IT", "ES", "EA20"),
         na_item == "IRG_S14_S15",
         s_adj == "SCA") %>%
  quarter_to_date %>%
  mutate(values = values/100) %>%
  left_join(geo, by = "geo") %>%
  mutate(Geo = ifelse(geo == "EA20", "Europe", Geo)) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  filter(date >= as.Date("1999-01-01")) %>%
  ggplot + theme_minimal() + xlab("") + ylab("") +
  geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + add_5flags +
  scale_x_date(breaks = as.Date(paste0(seq(1940, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 100, 2),
                labels = percent_format(a = 1))

France, Germany, Eurozone

2015-

English

Code
nasq_10_ki %>%
  filter(geo %in% c("FR", "DE", "EA20"),
         na_item == "IRG_S14_S15",
         s_adj == "SCA") %>%
  quarter_to_date %>%
  mutate(values = values/100) %>%
  left_join(geo, by = "geo") %>%
  mutate(Geo = ifelse(geo == "EA20", "Europe", Geo)) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  filter(date >= as.Date("2015-01-01")) %>%
  ggplot + theme_minimal() + xlab("") + ylab("Gross investment rate of households") +
  geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + add_3flags +
  scale_x_date(breaks = as.Date(paste0(seq(1940, 2025, 1), "-01-01")),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 100, .5),
                labels = percent_format(a = .1),)

French

Code
nasq_10_ki %>%
  filter(geo %in% c("FR", "DE", "EA20"),
         na_item == "IRG_S14_S15",
         s_adj == "SCA") %>%
  quarter_to_date %>%
  mutate(values = values/100) %>%
  left_join(geo, by = "geo") %>%
  mutate(Geo = ifelse(geo == "EA20", "Europe", Geo)) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  filter(date >= as.Date("2015-01-01")) %>%
  ggplot + theme_minimal() + xlab("") + ylab("Investissement brut des ménages") +
  geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + add_3flags +
  scale_x_date(breaks = as.Date(paste0(seq(1940, 2025, 1), "-01-01")),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 100, .5),
                labels = percent_format(a = .1),)

2019-

Code
nasq_10_ki %>%
  filter(geo %in% c("FR", "DE", "IT", "ES", "EA20"),
         na_item == "IRG_S14_S15",
         s_adj == "SCA") %>%
  quarter_to_date %>%
  mutate(values = values/100) %>%
  left_join(geo, by = "geo") %>%
  mutate(Geo = ifelse(geo == "EA20", "Europe", Geo)) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  filter(date >= as.Date("2019-01-01")) %>%
  ggplot + theme_minimal() + xlab("") + ylab("") +
  geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + add_5flags +
  scale_x_date(breaks = seq.Date(from = as.Date("2018-01-01"), to = as.Date("2024-01-01"), by = "3 months"),
               labels = date_format("%b %Y")) +
  theme(axis.text.x = element_text(angle = 45, vjust = 1, hjust = 1)) +
  scale_y_continuous(breaks = 0.01*seq(0, 100, 1),
                labels = percent_format(a = 1))

Gross investment rate of non-financial corporations (P51/B1G*100)

France, Germany, Spain, Italy, Europe

All

Code
nasq_10_ki %>%
  filter(geo %in% c("FR", "DE", "IT", "ES", "EA20"),
         na_item == "IRG_S11",
         s_adj == "SCA") %>%
  quarter_to_date %>%
  mutate(values = values/100) %>%
  left_join(geo, by = "geo") %>%
  mutate(Geo = ifelse(geo == "EA20", "Europe", Geo)) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + theme_minimal() + xlab("") + ylab("") +
  geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + add_5flags +
  scale_x_date(breaks = as.Date(paste0(seq(1940, 2100, 5), "-01-01")),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 100, 5),
                labels = percent_format(a = 1))

1999-

Code
nasq_10_ki %>%
  filter(geo %in% c("FR", "DE", "IT", "ES", "EA20"),
         na_item == "IRG_S11",
         s_adj == "SCA") %>%
  quarter_to_date %>%
  mutate(values = values/100) %>%
  left_join(geo, by = "geo") %>%
  mutate(Geo = ifelse(geo == "EA20", "Europe", Geo)) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  filter(date >= as.Date("1999-01-01")) %>%
  ggplot + theme_minimal() + xlab("") + ylab("") +
  geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + add_5flags +
  scale_x_date(breaks = as.Date(paste0(seq(1940, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 100, 2),
                labels = percent_format(a = 1))

2015-

Code
nasq_10_ki %>%
  filter(geo %in% c("FR", "DE", "IT", "ES", "EA20"),
         na_item == "IRG_S11",
         s_adj == "SCA") %>%
  quarter_to_date %>%
  mutate(values = values/100) %>%
  left_join(geo, by = "geo") %>%
  mutate(Geo = ifelse(geo == "EA20", "Europe", Geo)) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  filter(date >= as.Date("2015-01-01")) %>%
  ggplot + theme_minimal() + xlab("") + ylab("") +
  geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + add_5flags +
  scale_x_date(breaks = as.Date(paste0(seq(1940, 2025, 1), "-01-01")),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 100, 1),
                labels = percent_format(a = 1))

2019-

Code
nasq_10_ki %>%
  filter(geo %in% c("FR", "DE", "IT", "ES", "EA20"),
         na_item == "IRG_S11",
         s_adj == "SCA") %>%
  quarter_to_date %>%
  mutate(values = values/100) %>%
  left_join(geo, by = "geo") %>%
  mutate(Geo = ifelse(geo == "EA20", "Europe", Geo)) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  filter(date >= as.Date("2019-01-01")) %>%
  ggplot + theme_minimal() + xlab("") + ylab("") +
  geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + add_5flags +
  scale_x_date(breaks = seq.Date(from = as.Date("2018-01-01"), to = as.Date("2024-01-01"), by = "6 months"),
               labels = date_format("%b %Y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 100, 1),
                labels = percent_format(a = 1))