GDP and main components (output, expenditure and income)

Data - Eurostat

Info

source dataset .html .RData
eurostat nama_10_gdp 2024-11-01 2024-10-08
eurostat namq_10_gdp 2024-11-01 2024-10-08

Data on macro

source dataset .html .RData
eurostat nama_10_a10 2024-11-05 2024-10-08
eurostat nama_10_a10_e 2024-11-05 2024-11-05
eurostat nama_10_gdp 2024-11-01 2024-10-08
eurostat nama_10_lp_ulc 2024-11-01 2024-10-08
eurostat namq_10_a10 2024-11-01 2024-11-05
eurostat namq_10_a10_e 2024-11-01 2024-10-08
eurostat namq_10_gdp 2024-11-01 2024-10-08
eurostat namq_10_lp_ulc 2024-11-04 2024-11-04
eurostat namq_10_pc 2024-11-01 2024-10-08
eurostat nasa_10_nf_tr 2024-11-01 2024-10-08
eurostat nasq_10_nf_tr 2024-11-01 2024-10-09
fred gdp 2024-11-01 2024-11-01
oecd QNA 2024-06-06 2024-06-30
oecd SNA_TABLE1 2024-09-15 2024-06-30
oecd SNA_TABLE14A 2024-09-15 2024-06-30
oecd SNA_TABLE2 2024-07-01 2024-04-11
oecd SNA_TABLE6A 2024-07-01 2024-06-30
wdi NE.RSB.GNFS.ZS 2024-09-18 2024-09-18
wdi NY.GDP.MKTP.CD 2024-09-18 2024-09-26
wdi NY.GDP.MKTP.PP.CD 2024-09-18 2024-09-18
wdi NY.GDP.PCAP.CD 2024-10-15 2024-10-15
wdi NY.GDP.PCAP.KD 2024-09-18 2024-09-18
wdi NY.GDP.PCAP.PP.CD 2024-10-15 2024-10-15
wdi NY.GDP.PCAP.PP.KD 2024-09-18 2024-09-18

Last

Code
nama_10_gdp %>%
  group_by(time) %>%
  summarise(Nobs = n()) %>%
  arrange(desc(time)) %>%
  head(2) %>%
  print_table_conditional()
time Nobs
2023 27460
2022 27599

na_item

Code
nama_10_gdp %>%
  left_join(na_item, by = "na_item") %>%
  group_by(na_item, Na_item) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

geo

Code
nama_10_gdp %>%
  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 .}

unit

Code
nama_10_gdp %>%
  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 49458
CP_MNAC Current prices, million units of national currency 49458
PC_GDP Percentage of gross domestic product (GDP) 45321
PYP_MNAC Previous year prices, million units of national currency 37928
PYP_MEUR Previous year prices, million euro 37926
CP_MPPS_EU27_2020 Current prices, million purchasing power standards (PPS, EU27 from 2020) 35711
PC_EU27_2020_MEUR_CP Percentage of EU27 (from 2020) total (based on million euro), current prices 35681
PC_EU27_2020_MPPS_CP Percentage of EU27 (from 2020) total (based on million purchasing power standards), current prices 33598
CLV10_MEUR Chain linked volumes (2010), million euro 29927
CLV10_MNAC Chain linked volumes (2010), million units of national currency 29927
CLV15_MEUR Chain linked volumes (2015), million euro 29927
CLV15_MNAC Chain linked volumes (2015), million units of national currency 29927
CLV_I10 Chain linked volumes, index 2010=100 29927
CLV_I15 Chain linked volumes, index 2015=100 29927
PD10_EUR Price index (implicit deflator), 2010=100, euro 29858
PD10_NAC Price index (implicit deflator), 2010=100, national currency 29858
PD15_EUR Price index (implicit deflator), 2015=100, euro 29858
PD15_NAC Price index (implicit deflator), 2015=100, national currency 29858
CLV05_MEUR Chain linked volumes (2005), million euro 29167
CLV05_MNAC Chain linked volumes (2005), million units of national currency 29167
CLV_I05 Chain linked volumes, index 2005=100 29167
PD05_EUR Price index (implicit deflator), 2005=100, euro 29098
PD05_NAC Price index (implicit deflator), 2005=100, national currency 29098
CLV_PCH_PRE Chain linked volumes, percentage change on previous period 28987
PD_PCH_PRE_NAC Price index (implicit deflator), percentage change on previous period, national currency 28923
PD_PCH_PRE_EUR Price index (implicit deflator), percentage change on previous period, euro 28900
CON_PPCH_PRE Contribution to GDP growth, percentage point change on previous period 27534

time

Code
nama_10_gdp %>%
  group_by(time) %>%
  summarise(Nobs = n()) %>%
  arrange(desc(time)) %>%
  print_table_conditional

Latest GDP Numbers

2019, 2020 Values

Code
nama_10_gdp %>%
  filter(unit == "CP_MEUR",
         na_item == "B1GQ",
         time %in% c("2019", "2020")) %>%
  left_join(geo, by = "geo") %>%
  select(time, geo, Geo, values) %>%
  spread(time, values) %>%
  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 .}

2019, 2020 % increase

Code
nama_10_gdp %>%
  filter(unit == "CLV_PCH_PRE",
         na_item == "B1GQ",
         time %in% c("2019", "2020")) %>%
  left_join(geo, by = "geo") %>%
  select(time, geo, Geo, values) %>%
  spread(time, values) %>%
  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()) %>%
  arrange(`2020`) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}

2019, 2020 All Units

Code
nama_10_gdp %>%
  filter(na_item == "B1GQ",
         time %in% c("2020")) %>%
  left_join(geo, by = "geo") %>%
  select(unit, geo, Geo, values) %>%
  spread(unit, values) %>%
  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 .}

France, Germany, Italy, UK

Billions

Code
nama_10_gdp %>%
  filter(unit == "CP_MEUR",
         time == "2019",
         geo %in% c("FR", "DE", "IT", "UK")) %>%
  select(na_item, geo, values) %>%
  left_join(na_item, by = "na_item") %>%
  left_join(geo, by = "geo") %>%
  mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) %>%
  select(-geo) %>%
  mutate(Geo = gsub(" ", "-", str_to_lower(Geo)),
         Geo = paste0('<img src="../../bib/flags/vsmall/', Geo, '.png" alt="Flag">')) %>%
  spread(Geo, values) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}

% of GDP

Code
nama_10_gdp %>%
  filter(unit == "PC_GDP",
         time == "2019",
         geo %in% c("FR", "DE", "IT", "UK")) %>%
  select(na_item, geo, values) %>%
  left_join(na_item, by = "na_item") %>%
  left_join(geo, by = "geo") %>%
  mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) %>%
  select(-geo) %>%
  mutate(Geo = gsub(" ", "-", str_to_lower(Geo)),
         Geo = paste0('<img src="../../bib/flags/vsmall/', Geo, '.png" alt="Flag">')) %>%
  spread(Geo, values) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}

Operating Surplus and Mixed Income / GDP (B1G)

Table

Code
nama_10_gdp %>%
  filter(na_item %in% c("B2A3G"),
         unit == "PC_GDP",
         time %in% c("1989", "1999", "2009", "2019")) %>%
  select(time, geo, values) %>%
  left_join(geo, by = "geo") %>%
  spread(time, values) %>%
  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 .}

Net Exports

Table

Code
nama_10_gdp %>%
  filter(na_item %in% c("P6", "P7"),
         unit == "PC_GDP",
         time %in% c("1989", "1999", "2009", "2019")) %>%
  select(time, na_item, geo, values) %>%
  left_join(geo, by = "geo") %>%
  spread(na_item, values) %>%
  mutate(NX = P6 - P7) %>%
  select(-P6, -P7) %>%
  mutate(NX = round(as.numeric(NX), 1)) %>%
  spread(time, NX) %>%
  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 .}

Greece, Portugal, Spain

Code
nama_10_gdp %>%
  filter(na_item %in% c("P6", "P7"),
         unit == "PC_GDP",
         geo %in% c("EL", "ES", "PT")) %>%
  select(time, na_item, geo, values) %>%
  year_to_date %>%
  left_join(geo, by = "geo") %>%
  mutate(Geo= ifelse(geo == "EA20", "Europe", Geo)) %>%
  spread(na_item, values) %>%
  mutate(values = (P6 - P7)/100) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + theme_minimal()  + add_3flags +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 5), "-01-01")),
               labels = date_format("%Y")) +
  xlab("") + ylab("Net Exports (% of GDP)") +
  scale_y_continuous(breaks = 0.01*seq(-30, 30, 1),
                labels = percent_format(a = 1)) + 
  geom_hline(yintercept = 0, linetype = "dashed",  color = "black")

Germany, France, Eurozone

Code
nama_10_gdp %>%
  filter(na_item %in% c("P6", "P7"),
         unit == "PC_GDP",
         geo %in% c("FR", "DE", "EA20")) %>%
  select(time, na_item, geo, values) %>%
  year_to_date %>%
  left_join(geo, by = "geo") %>%
  mutate(Geo= ifelse(geo == "EA20", "Europe", Geo)) %>%
  spread(na_item, values) %>%
  mutate(values = (P6 - P7)/100) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + theme_minimal()  + add_3flags +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 5), "-01-01")),
               labels = date_format("%Y")) +
  xlab("") + ylab("Net Exports (% of GDP)") +
  scale_y_continuous(breaks = 0.01*seq(-30, 30, 1),
                labels = percent_format(a = 1)) + 
  geom_hline(yintercept = 0, linetype = "dashed",  color = "black")

Germany, France, Italy, Eurozone

Code
nama_10_gdp %>%
  filter(na_item %in% c("P6", "P7"),
         unit == "PC_GDP",
         geo %in% c("FR", "DE", "IT", "EA20")) %>%
  select(time, na_item, geo, values) %>%
  year_to_date %>%
  left_join(geo, by = "geo") %>%
  mutate(Geo= ifelse(geo == "EA20", "Europe", Geo)) %>%
  spread(na_item, values) %>%
  mutate(values = (P6 - P7)/100) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  filter(date >= as.Date("1995-01-01")) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + theme_minimal()  + add_4flags +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  xlab("") + ylab("Net Exports (% of GDP)") +
  scale_y_continuous(breaks = 0.01*seq(-30, 30, 1),
                labels = percent_format(a = 1)) + 
  geom_hline(yintercept = 0, linetype = "dashed",  color = "black")

Germany, France, Eurozone, Netherlands

All

Code
nama_10_gdp %>%
  filter(na_item %in% c("P6", "P7"),
         unit == "PC_GDP",
         geo %in% c("FR", "DE", "EA20", "NL")) %>%
  select(time, na_item, geo, values) %>%
  year_to_date %>%
  left_join(geo, by = "geo") %>%
  mutate(Geo= ifelse(geo == "EA20", "Europe", Geo)) %>%
  spread(na_item, values) %>%
  mutate(values = (P6 - P7)/100) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + theme_minimal()  + add_4flags +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 5), "-01-01")),
               labels = date_format("%Y")) +
  xlab("") + ylab("Net Exports (% of GDP)") +
  scale_y_continuous(breaks = 0.01*seq(-30, 30, 1),
                labels = percent_format(a = 1)) + 
  geom_hline(yintercept = 0, linetype = "dashed",  color = "black")

1995-

Code
nama_10_gdp %>%
  filter(na_item %in% c("P6", "P7"),
         unit == "PC_GDP",
         geo %in% c("FR", "DE", "EA20", "NL")) %>%
  select(time, na_item, geo, values) %>%
  year_to_date %>%
  filter(date >= as.Date("1995-01-01")) %>%
  left_join(geo, by = "geo") %>%
  mutate(Geo= ifelse(geo == "EA20", "Europe", Geo)) %>%
  spread(na_item, values) %>%
  mutate(values = (P6 - P7)/100) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + theme_minimal()  + add_4flags +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 5), "-01-01")),
               labels = date_format("%Y")) +
  xlab("") + ylab("Net Exports (% of GDP)") +
  scale_y_continuous(breaks = 0.01*seq(-30, 30, 1),
                labels = percent_format(a = 1)) + 
  geom_hline(yintercept = 0, linetype = "dashed",  color = "black")

Germany, France, Italy

Code
nama_10_gdp %>%
  filter(na_item %in% c("P6", "P7"),
         unit == "PC_GDP",
         geo %in% c("FR", "DE", "IT")) %>%
  select(time, na_item, geo, values) %>%
  year_to_date %>%
  left_join(geo, by = "geo") %>%
  spread(na_item, values) %>%
  mutate(values = (P6 - P7)/100) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + theme_minimal()  + add_3flags +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 5), "-01-01")),
               labels = date_format("%Y")) +
  xlab("") + ylab("Net Exports (% of GDP)") +
  scale_y_continuous(breaks = 0.01*seq(-30, 30, 1),
                labels = percent_format(a = 1)) + 
  geom_hline(yintercept = 0, linetype = "dashed",  color = "black")

Poland, France, Italy

Code
nama_10_gdp %>%
  filter(na_item %in% c("P6", "P7"),
         unit == "PC_GDP",
         geo %in% c("PL", "DE", "IT")) %>%
  select(time, na_item, geo, values) %>%
  year_to_date %>%
  left_join(geo, by = "geo") %>%
  spread(na_item, values) %>%
  mutate(values = (P6 - P7)/100) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + theme_minimal()  + add_3flags +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 5), "-01-01")),
               labels = date_format("%Y")) +
  xlab("") + ylab("Net Exports (% of GDP)") +
  scale_y_continuous(breaks = 0.01*seq(-30, 30, 1),
                labels = percent_format(a = 1)) + 
  geom_hline(yintercept = 0, linetype = "dashed",  color = "black")

Pologne, Hongrie, Slovénie

Code
nama_10_gdp %>%
  filter(na_item %in% c("P6", "P7"),
         unit == "PC_GDP",
         geo %in% c("PL", "HU", "SI")) %>%
  select(time, na_item, geo, values) %>%
  year_to_date %>%
  left_join(geo, by = "geo") %>%
  spread(na_item, values) %>%
  mutate(values = (P6 - P7)/100) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + theme_minimal()  + add_3flags +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 5), "-01-01")),
               labels = date_format("%Y")) +
  xlab("") + ylab("Net Exports (% of GDP)") +
  scale_y_continuous(breaks = 0.01*seq(-30, 30, 1),
                labels = percent_format(a = 1)) + 
  geom_hline(yintercept = 0, linetype = "dashed",  color = "black")

Poland, Austria, Germany, Tchequia, Hungary, Slovakia

All

Code
nama_10_gdp %>%
  filter(na_item %in% c("P6", "P7"),
         unit == "PC_GDP",
         geo %in% c("PL", "DE", "SK", "CZ", "HU", "AT")) %>%
  select(time, na_item, geo, values) %>%
  year_to_date %>%
  left_join(geo, by = "geo") %>%
  spread(na_item, values) %>%
  mutate(values = (P6 - P7)/100) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + theme_minimal()  + add_6flags +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 5), "-01-01")),
               labels = date_format("%Y")) +
  xlab("") + ylab("Net Exports (% of GDP)") +
  scale_y_continuous(breaks = 0.01*seq(-30, 30, 1),
                labels = percent_format(a = 1)) + 
  geom_hline(yintercept = 0, linetype = "dashed",  color = "black")

2000-

Code
nama_10_gdp %>%
  filter(na_item %in% c("P6", "P7"),
         unit == "PC_GDP",
         geo %in% c("PL", "DE", "SK", "CZ", "HU", "AT")) %>%
  select(time, na_item, geo, values) %>%
  year_to_date %>%
  filter(date >= as.Date("2000-01-01")) %>%
  left_join(geo, by = "geo") %>%
  spread(na_item, values) %>%
  mutate(values = (P6 - P7)/100) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + theme_minimal()  + add_6flags +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 5), "-01-01")),
               labels = date_format("%Y")) +
  xlab("") + ylab("Net Exports (% of GDP)") +
  scale_y_continuous(breaks = 0.01*seq(-30, 30, 1),
                labels = percent_format(a = 1)) + 
  geom_hline(yintercept = 0, linetype = "dashed",  color = "black")

United Kingdom, Portugal, Finland, Romania, France, Greece, Sweden

Code
nama_10_gdp %>%
  filter(na_item %in% c("P6", "P7"),
         unit == "PC_GDP",
         geo %in% c("UK", "PT", "FI", "RO", "FR", "EL", "SE")) %>%
  select(time, na_item, geo, values) %>%
  year_to_date %>%
  filter(date >= as.Date("2000-01-01")) %>%
  left_join(geo, by = "geo") %>%
  spread(na_item, values) %>%
  mutate(values = (P6 - P7)/100) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + theme_minimal()  + add_7flags +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 5), "-01-01")),
               labels = date_format("%Y")) +
  xlab("") + ylab("Net Exports (% of GDP)") +
  scale_y_continuous(breaks = 0.01*seq(-30, 30, 1),
                labels = percent_format(a = 1)) + 
  geom_hline(yintercept = 0, linetype = "dashed",  color = "black")

Gross Domestic Product

Table

Code
nama_10_gdp %>%
  filter(time %in% c("2020", "2019", "2000"),
         # B1GQ: Gross domestic product at market prices
         na_item == "B1GQ",
         unit == "CLV10_MEUR") %>%
  left_join(geo, by = "geo") %>%
  select(geo, Geo, time, values) %>%
  spread(time, values) %>%
  print_table_conditional()

France, Germany, Italy

All

Code
nama_10_gdp %>%
  filter(geo %in% c("FR", "DE", "IT"),
         # B1GQ: Gross domestic product at market prices
         na_item == "B1GQ",
         unit == "CLV10_MEUR") %>%
  left_join(geo, by = "geo") %>%
  year_to_date %>%
  mutate(values = values/1000) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + add_3flags + theme_minimal()  +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 5), "-01-01")),
               labels = date_format("%Y")) +
  xlab("") + ylab("") +
  scale_y_log10(breaks = seq(0, 3000, 100),
                labels = dollar_format(suffix = " Bn€", prefix = "", accuracy = 1))

1995-

Code
nama_10_gdp %>%
  filter(geo %in% c("FR", "DE", "IT"),
         # B1GQ: Gross domestic product at market prices
         na_item == "B1GQ",
         unit == "CLV10_MEUR") %>%
  left_join(geo, by = "geo") %>%
  year_to_date %>%
  mutate(values = values/1000) %>%
  filter(date >= as.Date("1995-01-01")) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + add_3flags + theme_minimal()  +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 5), "-01-01")),
               labels = date_format("%Y")) +
  xlab("") + ylab("") +
  scale_y_log10(breaks = seq(0, 3000, 100),
                labels = dollar_format(suffix = " Bn€", prefix = "", accuracy = 1))

France, Germany, Eurozone, Italy, Spain

Code
nama_10_gdp %>%
  filter(geo %in% c("FR", "DE", "EA20", "IT", "ES"),
         # B1GQ: Gross domestic product at market prices
         na_item == "B1GQ",
         unit == "CLV10_MEUR") %>%
  left_join(geo, by = "geo") %>%
  year_to_date %>%
  mutate(values = values/1000) %>%
  filter(date >= as.Date("1995-01-01")) %>%
  mutate(Geo = ifelse(geo == "EA20", "Europe", Geo)) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + add_5flags + theme_minimal()  +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 5), "-01-01")),
               labels = date_format("%Y")) +
  xlab("") + ylab("") +
  scale_y_log10(breaks = seq(1000, 15000, 1000),
                labels = dollar_format(suffix = " Bn€", prefix = "", accuracy = 1))

Germany, France, Italy, Spain, Netherlands, Belgium

Code
nama_10_gdp %>%
  filter(geo %in% c("FR", "DE", "IT", "ES", "NL", "BE"),
         # B1GQ: Gross domestic product at market prices
         na_item == "B1GQ",
         unit == "CLV10_MEUR") %>%
  left_join(geo, by = "geo") %>%
  year_to_date %>%
  mutate(values = values/1000) %>%
  filter(date >= as.Date("1995-01-01")) %>%
  mutate(Geo = ifelse(geo == "EA20", "Europe", Geo)) %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + geom_line(aes(x = date, y = values, color = color)) +
  scale_color_identity() + add_6flags + theme_minimal()  +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 5), "-01-01")),
               labels = date_format("%Y")) +
  xlab("") + ylab("") +
  scale_y_log10(breaks = c(seq(100, 1000, 100), 1500, seq(1000, 15000, 1000)),
                labels = dollar_format(suffix = " Bn€", prefix = "", accuracy = 1))

Investment Rates

France, Germany, Italy

Code
nama_10_gdp %>%
  filter(geo %in% c("FR", "DE", "IT"),
         na_item %in% c("B1GQ", "P51G"),
         unit == "CLV10_MEUR") %>%
  select(-unit) %>%
  spread(na_item, values) %>%
  mutate(values = P51G / B1GQ) %>%
  left_join(geo, by = "geo") %>%
  year_to_date %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  ggplot + theme_minimal() + xlab("") + ylab("") +
  geom_line(aes(x = date, y = values, color = color)) +
  add_3flags + scale_color_identity() +
  scale_x_date(breaks = as.Date(paste0(seq(1960, 2100, 5), "-01-01")),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(0, 500, 1),
                labels = percent_format(accuracy = 1))

Deflator Index

France

Code
nama_10_gdp %>%
  filter(geo == "FR",
         time %in% c("2019", "1995"),
         unit == "PD15_EUR") %>%
  left_join(na_item, by = "na_item") %>%
  select_if(~ n_distinct(.) > 1) %>%
  spread(time, values) %>%
  mutate(`Change` = round(100*((`2019`/`1995`)^(1/24)-1),2)) %>%
  arrange(Change) %>%
  print_table_conditional
na_item Na_item 1995 2019 Change
D31 Subsidies on products 176.145 111.942 -1.87
P71 Imports of goods 94.770 101.683 0.29
P61 Exports of goods 93.106 100.960 0.34
P7 Imports of goods and services 91.610 102.167 0.46
P6 Exports of goods and services 90.640 101.529 0.47
P62 Exports of services 84.247 102.786 0.83
P72 Imports of services 82.422 103.384 0.95
P3_P6 Final consumption expenditure, gross capital formation and exports of goods and services 80.227 103.156 1.05
P31_S14 Final consumption expenditure of households 80.411 103.728 1.07
P31_S14_S15 Household and NPISH final consumption expenditure 80.202 103.749 1.08
B1G Value added, gross 78.283 103.004 1.15
P41 Actual individual consumption 78.465 103.437 1.16
P3 Final consumption expenditure 77.903 103.418 1.19
B1GQ Gross domestic product at market prices 77.394 103.471 1.22
P3_P5 Final consumption expenditure and gross capital formation 77.519 103.680 1.22
P5G Gross capital formation 76.310 104.596 1.32
P51G Gross fixed capital formation 75.303 104.908 1.39
P31_S15 Final consumption expenditure of NPISH 74.630 104.261 1.40
P32_S13 Collective consumption expenditure of general government 73.677 103.265 1.42
P3_S13 Final consumption expenditure of general government 72.723 102.668 1.45
P31_S13 Individual consumption expenditure of general government 72.035 102.340 1.47
D21 Taxes on products 74.556 107.356 1.53
D21X31 Taxes less subsidies on products 70.169 107.162 1.78

P71 - Imports of goods

Code
nama_10_gdp %>%
  filter(na_item == "P71",
         unit == "PD15_EUR",
         geo %in% c("FR", "DE", "IT", "ES")) %>%
  year_to_date() %>%
  filter(date >= as.Date("1995-01-01")) %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  group_by(Geo) %>%
  arrange(date) %>%
  mutate(values = values/ values[1]) %>%
  ggplot(.) + geom_line(aes(x = date, y = values, color = color)) + 
  theme_minimal() + xlab("") + ylab("Price Deflator (P71)") +
  scale_color_identity() + add_4flags +
  scale_x_date(breaks = seq(1960, 2025, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-500, 200, 10))

P61

Code
nama_10_gdp %>%
  filter(na_item == "P61",
         unit == "PD15_EUR",
         geo %in% c("FR", "DE", "IT", "ES")) %>%
  year_to_date() %>%
  filter(date >= as.Date("1995-01-01")) %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  group_by(Geo) %>%
  arrange(date) %>%
  mutate(values = values/ values[1]) %>%
  ggplot(.) + geom_line(aes(x = date, y = values, color = color)) + 
  theme_minimal() + xlab("") + ylab("Price Deflator (P61)") +
  scale_color_identity() + add_4flags +
  scale_x_date(breaks = seq(1960, 2025, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-500, 200, 10))

P5G

Code
nama_10_gdp %>%
  filter(na_item == "P5G",
         unit == "PD15_EUR",
         geo %in% c("FR", "DE", "IT", "ES")) %>%
  year_to_date() %>%
  filter(date >= as.Date("1995-01-01")) %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  group_by(Geo) %>%
  arrange(date) %>%
  mutate(values = values/ values[1]) %>%
  ggplot(.) + geom_line(aes(x = date, y = values, color = color)) + 
  theme_minimal() + xlab("") + ylab("Price Deflator (P5G)") +
  scale_color_identity() + add_4flags +
  scale_x_date(breaks = seq(1960, 2025, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-500, 200, 10))

P3

Code
nama_10_gdp %>%
  filter(na_item == "P3",
         unit == "PD15_EUR",
         geo %in% c("FR", "DE", "IT", "ES")) %>%
  year_to_date() %>%
  filter(date >= as.Date("1995-01-01")) %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  group_by(Geo) %>%
  arrange(date) %>%
  mutate(values = values/ values[1]) %>%
  ggplot(.) + geom_line(aes(x = date, y = values, color = color)) + 
  theme_minimal() + xlab("") + ylab("Price Deflator (P31_S14)") +
  scale_color_identity() + add_4flags +
  scale_x_date(breaks = seq(1960, 2025, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-500, 200, 10))

P31_S14 - Final consumption expenditure of households

Code
nama_10_gdp %>%
  filter(na_item == "P31_S14",
         unit == "PD15_EUR",
         geo %in% c("FR", "DE", "IT", "ES")) %>%
  year_to_date() %>%
  filter(date >= as.Date("1995-01-01")) %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  group_by(Geo) %>%
  arrange(date) %>%
  mutate(values = values/ values[1]) %>%
  ggplot(.) + geom_line(aes(x = date, y = values, color = color)) + 
  theme_minimal() + xlab("") + ylab("Price Deflator (P31_S14)") +
  scale_color_identity() + add_4flags +
  scale_x_date(breaks = seq(1960, 2025, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-500, 200, 10))

P31_S15

Code
nama_10_gdp %>%
  filter(na_item == "P31_S15",
         unit == "PD15_EUR",
         geo %in% c("FR", "DE", "IT", "ES")) %>%
  year_to_date() %>%
  filter(date >= as.Date("1995-01-01")) %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  group_by(Geo) %>%
  arrange(date) %>%
  mutate(values = values/ values[1]) %>%
  ggplot(.) + geom_line(aes(x = date, y = values, color = color)) + 
  theme_minimal() + xlab("") + ylab("Price Deflator (P31_S15)") +
  scale_color_identity() + add_4flags +
  scale_x_date(breaks = seq(1960, 2025, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-500, 200, 10))

P31_S14_S15

Code
nama_10_gdp %>%
  filter(na_item == "P31_S14_S15",
         unit == "PD15_EUR",
         geo %in% c("FR", "DE", "IT", "ES")) %>%
  year_to_date() %>%
  filter(date >= as.Date("1995-01-01")) %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  group_by(Geo) %>%
  arrange(date) %>%
  mutate(values = values/ values[1]) %>%
  ggplot(.) + geom_line(aes(x = date, y = values, color = color)) + 
  theme_minimal() + xlab("") + ylab("Price Deflator (P31_S14_S15)") +
  scale_color_identity() + add_4flags +
  scale_x_date(breaks = seq(1960, 2025, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-500, 200, 10))

B1G

Code
nama_10_gdp %>%
  filter(na_item == "B1G",
         unit == "PD15_EUR",
         geo %in% c("FR", "DE", "IT", "ES")) %>%
  year_to_date() %>%
  filter(date >= as.Date("1995-01-01")) %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  group_by(Geo) %>%
  arrange(date) %>%
  mutate(values = values/ values[1]) %>%
  ggplot(.) + geom_line(aes(x = date, y = values, color = color)) + 
  theme_minimal() + xlab("") + ylab("Price Deflator (B1G)") +
  scale_color_identity() + add_4flags +
  scale_x_date(breaks = seq(1960, 2025, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-500, 200, 10))

B1GQ

Code
nama_10_gdp %>%
  filter(na_item == "B1GQ",
         unit == "PD15_EUR",
         geo %in% c("FR", "DE", "IT", "ES")) %>%
  year_to_date() %>%
  filter(date >= as.Date("1995-01-01")) %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  group_by(Geo) %>%
  arrange(date) %>%
  mutate(values = values/ values[1]) %>%
  ggplot(.) + geom_line(aes(x = date, y = values, color = color)) + 
  theme_minimal() + xlab("") + ylab("Price Deflator (B1GQ)") +
  scale_color_identity() + add_4flags +
  scale_x_date(breaks = seq(1960, 2025, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-500, 200, 10))

P41

Code
nama_10_gdp %>%
  filter(na_item == "P41",
         unit == "PD15_EUR",
         geo %in% c("FR", "DE", "IT", "ES")) %>%
  year_to_date() %>%
  filter(date >= as.Date("1995-01-01")) %>%
  left_join(geo, by = "geo") %>%
  left_join(colors, by = c("Geo" = "country")) %>%
  group_by(Geo) %>%
  arrange(date) %>%
  mutate(values = values/ values[1]) %>%
  ggplot(.) + geom_line(aes(x = date, y = values, color = color)) + 
  theme_minimal() + xlab("") + ylab("Price Deflator (P41)") +
  scale_color_identity() + add_4flags +
  scale_x_date(breaks = seq(1960, 2025, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = 0.01*seq(-500, 200, 10))