GDP and main components (output, expenditure and income)

Data - Eurostat

Info

source dataset .html .RData

eurostat

nama_10_gdp

2024-06-20 2024-06-18

eurostat

namq_10_gdp

2024-06-20 2024-06-08

Data on macro

source dataset .html .RData

eurostat

nama_10_a10

2024-06-23 2024-06-08

eurostat

nama_10_a10_e

2024-06-23 2024-06-23

eurostat

nama_10_gdp

2024-06-20 2024-06-18

eurostat

nama_10_lp_ulc

2024-06-20 2024-06-08

eurostat

namq_10_a10

2024-06-20 2024-06-23

eurostat

namq_10_a10_e

2024-06-20 2024-06-08

eurostat

namq_10_gdp

2024-06-20 2024-06-08

eurostat

namq_10_lp_ulc

2024-06-20 2024-06-08

eurostat

namq_10_pc

2024-06-20 2024-06-18

eurostat

nasa_10_nf_tr

2024-06-21 2024-06-08

eurostat

nasq_10_nf_tr

2024-06-20 2024-06-08

fred

gdp

2024-06-20 2024-06-07

oecd

QNA

2024-06-06 2024-06-05

oecd

SNA_TABLE1

2024-06-20 2024-06-01

oecd

SNA_TABLE14A

2024-06-20 2024-04-15

oecd

SNA_TABLE2

2024-06-20 2024-04-11

oecd

SNA_TABLE6A

2024-06-20 2024-04-15

wdi

NE.RSB.GNFS.ZS

2024-06-20 2024-04-14

wdi

NY.GDP.MKTP.CD

2024-06-20 2024-05-06

wdi

NY.GDP.MKTP.PP.CD

2024-06-20 2024-04-14

wdi

NY.GDP.PCAP.CD

2024-06-20 2024-04-22

wdi

NY.GDP.PCAP.KD

2024-06-20 2024-05-06

wdi

NY.GDP.PCAP.PP.CD

2024-06-20 2024-04-22

wdi

NY.GDP.PCAP.PP.KD

2024-06-20 2024-05-06

Last

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

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 49430
CP_MNAC Current prices, million units of national currency 49430
PC_GDP Percentage of gross domestic product (GDP) 45293
PYP_MNAC Previous year prices, million units of national currency 37844
PYP_MEUR Previous year prices, million euro 37842
PC_EU27_2020_MEUR_CP Percentage of EU27 (from 2020) total (based on million euro), current prices 35600
CP_MPPS_EU27_2020 Current prices, million purchasing power standards (PPS, EU27 from 2020) 35475
PC_EU27_2020_MPPS_CP Percentage of EU27 (from 2020) total (based on million purchasing power standards), current prices 33335
CLV10_MEUR Chain linked volumes (2010), million euro 29829
CLV10_MNAC Chain linked volumes (2010), million units of national currency 29829
CLV15_MEUR Chain linked volumes (2015), million euro 29829
CLV15_MNAC Chain linked volumes (2015), million units of national currency 29829
CLV_I10 Chain linked volumes, index 2010=100 29829
CLV_I15 Chain linked volumes, index 2015=100 29829
PD10_EUR Price index (implicit deflator), 2010=100, euro 29760
PD10_NAC Price index (implicit deflator), 2010=100, national currency 29760
PD15_EUR Price index (implicit deflator), 2015=100, euro 29760
PD15_NAC Price index (implicit deflator), 2015=100, national currency 29760
CLV05_MEUR Chain linked volumes (2005), million euro 29108
CLV05_MNAC Chain linked volumes (2005), million units of national currency 29108
CLV_I05 Chain linked volumes, index 2005=100 29108
PD05_EUR Price index (implicit deflator), 2005=100, euro 29039
PD05_NAC Price index (implicit deflator), 2005=100, national currency 29039
CLV_PCH_PRE Chain linked volumes, percentage change on previous period 28893
PD_PCH_PRE_NAC Price index (implicit deflator), percentage change on previous period, national currency 28829
PD_PCH_PRE_EUR Price index (implicit deflator), percentage change on previous period, euro 28806
CON_PPCH_PRE Contribution to GDP growth, percentage point change on previous period 26941

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 110.562 117.032 0.24
P71 Imports of goods 95.568 101.675 0.26
P61 Exports of goods 93.375 100.994 0.33
P6 Exports of goods and services 91.513 101.468 0.43
P7 Imports of goods and services 91.952 102.090 0.44
P62 Exports of services 86.702 102.550 0.70
P72 Imports of services 81.259 103.107 1.00
P3_P6 Final consumption expenditure, gross capital formation and exports of goods and services 79.671 103.055 1.08
P31_S14 Final consumption expenditure of households 79.563 103.592 1.11
P31_S14_S15 Household and NPISH final consumption expenditure 79.337 103.618 1.12
B1G Value added, gross 77.322 102.950 1.20
P41 Actual individual consumption 77.578 103.204 1.20
P3 Final consumption expenditure 77.118 103.212 1.22
B1GQ Gross domestic product at market prices 76.721 103.354 1.25
P3_P5 Final consumption expenditure and gross capital formation 76.746 103.545 1.26
P5G Gross capital formation 75.666 104.635 1.36
P51G Gross fixed capital formation 74.650 104.759 1.42
P32_S13 Collective consumption expenditure of general government 73.534 103.282 1.43
P3_S13 Final consumption expenditure of general government 72.063 102.285 1.47
P31_S13 Individual consumption expenditure of general government 71.114 101.768 1.50
P31_S15 Final consumption expenditure of NPISH 72.916 104.259 1.50
D21 Taxes on products 74.275 107.485 1.55
D21X31 Taxes less subsidies on products 71.589 106.724 1.68

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