Balance sheets for non-financial assets - nama_10_nfa_bs
Data - Eurostat
Info
Last observation: Annual: 2025 (N = 280)
First observation: Annual: 1975 (N = 10)
Last data update: 23 jul 2026, 22:08. Last compile: 24 jul 2026, 02:47
Structure
Dwellings (% of GDP): France, Germany, Italy, Spain
Code
nama_10_nfa_bs %>%
filter(geo %in% c("FR", "DE", "IT", "ES"),
sector == "S1",
asset10 == "N111N",
unit == "CP_MEUR") %>%
left_join(gdp, by = c("time", "geo")) %>%
mutate(values = values / gdp) %>%
year_to_date %>%
left_join(colors, by = c("Geo" = "country")) %>%
ggplot + geom_line(aes(x = date, y = values, color = color)) +
theme_minimal() + scale_color_identity() + add_4flags +
scale_x_date(breaks = as.Date(paste0(seq(1990, 2100, 2), "-01-01")),
labels = date_format("%Y")) +
theme(legend.position = c(0.2, 0.85),
legend.title = element_blank()) +
xlab("") + ylab("Net dwellings wealth (% of GDP)") +
scale_y_continuous(labels = scales::percent_format(accuracy = 1))
France: Dwellings vs. Land (% of GDP)
Code
nama_10_nfa_bs %>%
filter(geo == "FR",
sector == "S1",
asset10 %in% c("N111N", "N211N"),
unit == "CP_MEUR") %>%
left_join(gdp, by = c("time", "geo")) %>%
mutate(values = values / gdp) %>%
year_to_date %>%
ggplot + geom_line(aes(x = date, y = values, color = Asset10)) +
theme_minimal() +
scale_x_date(breaks = as.Date(paste0(seq(1975, 2100, 5), "-01-01")),
labels = date_format("%Y")) +
theme(legend.position = c(0.25, 0.85),
legend.title = element_blank()) +
xlab("") + ylab("Net wealth (% of GDP)") +
scale_y_continuous(labels = scales::percent_format(accuracy = 1))
2018, By Sector
France
Code
nama_10_nfa_bs %>%
filter(geo %in% c("FR"),
time == "2019",
unit == "CP_MEUR") %>%
left_join(gdp, by = c("time", "geo")) %>%
mutate(values = round(100*values / gdp, 1)) %>%
select(sector, asset10, Asset10, values) %>%
mutate(sector = paste0('<img src="../../icon/sector/vsmall/', sector, '.png" alt="All">')) %>%
spread(sector, values) %>%
{if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}Germany
Code
nama_10_nfa_bs %>%
filter(geo %in% c("DE"),
time == "2018",
unit == "CP_MEUR") %>%
left_join(gdp, by = c("time", "geo")) %>%
mutate(values = round(100*values / gdp, 1)) %>%
select(sector, asset10, Asset10, values) %>%
mutate(sector = paste0('<img src="../../icon/sector/vsmall/', sector, '.png" alt="All">')) %>%
spread(sector, values) %>%
{if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}Italy
Code
nama_10_nfa_bs %>%
filter(geo %in% c("IT"),
time == "2018",
unit == "CP_MEUR") %>%
left_join(gdp, by = c("time", "geo")) %>%
mutate(values = round(100*values / gdp, 1)) %>%
select(sector, asset10, Asset10, values) %>%
mutate(sector = paste0('<img src="../../icon/sector/vsmall/', sector, '.png" alt="All">')) %>%
spread(sector, values) %>%
{if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}United Kingdom
Code
nama_10_nfa_bs %>%
filter(geo %in% c("UK"),
time == "2018",
unit == "CP_MEUR") %>%
left_join(gdp, by = c("time", "geo")) %>%
mutate(values = round(100*values / gdp, 1)) %>%
select(sector, asset10, Asset10, values) %>%
mutate(sector = paste0('<img src="../../icon/sector/vsmall/', sector, '.png" alt="All">')) %>%
spread(sector, values) %>%
{if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}2018, France, Germany, Italy, United Kingdom
All Sector
Code
nama_10_nfa_bs %>%
filter(geo %in% c("FR", "DE", "IT", "UK"),
time == "2019",
sector == "S1",
unit == "CP_MEUR") %>%
left_join(gdp, by = c("time", "geo")) %>%
mutate(values = round(100*values / gdp, 1)) %>%
mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) %>%
mutate(Geo = gsub(" ", "-", str_to_lower(Geo)),
Geo = paste0('<img src="../../icon/flag/vsmall/', Geo, '.png" alt="Flag">')) %>%
select(Geo, asset10, Asset10, values) %>%
spread(Geo, values) %>%
{if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}Non-financial corporations
Code
nama_10_nfa_bs %>%
filter(geo %in% c("FR", "DE", "IT", "UK"),
time == "2019",
sector == "S11",
unit == "CP_MEUR") %>%
left_join(gdp, by = c("time", "geo")) %>%
mutate(values = round(100*values / gdp, 1)) %>%
mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) %>%
mutate(Geo = gsub(" ", "-", str_to_lower(Geo)),
Geo = paste0('<img src="../../icon/flag/vsmall/', Geo, '.png" alt="Flag">')) %>%
select(Geo, asset10, Asset10, values) %>%
spread(Geo, values) %>%
{if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}Financial corporations
Code
nama_10_nfa_bs %>%
filter(geo %in% c("FR", "DE", "IT", "UK"),
time == "2019",
sector == "S12",
unit == "CP_MEUR") %>%
left_join(gdp, by = c("time", "geo")) %>%
mutate(values = round(100*values / gdp, 1)) %>%
mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) %>%
mutate(Geo = gsub(" ", "-", str_to_lower(Geo)),
Geo = paste0('<img src="../../icon/flag/vsmall/', Geo, '.png" alt="Flag">')) %>%
select(Geo, asset10, Asset10, values) %>%
spread(Geo, values) %>%
{if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}General government
Code
nama_10_nfa_bs %>%
filter(geo %in% c("FR", "DE", "IT", "UK"),
time == "2019",
sector == "S13",
unit == "CP_MEUR") %>%
left_join(gdp, by = c("time", "geo")) %>%
mutate(values = round(100*values / gdp, 1)) %>%
mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) %>%
mutate(Geo = gsub(" ", "-", str_to_lower(Geo)),
Geo = paste0('<img src="../../icon/flag/vsmall/', Geo, '.png" alt="Flag">')) %>%
select(Geo, asset10, Asset10, values) %>%
spread(Geo, values) %>%
{if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}Households
Code
nama_10_nfa_bs %>%
filter(geo %in% c("FR", "DE", "IT", "UK"),
time == "2019",
sector == "S14_S15",
unit == "CP_MEUR") %>%
left_join(gdp, by = c("time", "geo")) %>%
mutate(values = round(100*values / gdp, 1)) %>%
mutate(Geo = ifelse(geo == "DE", "Germany", Geo)) %>%
mutate(Geo = gsub(" ", "-", str_to_lower(Geo)),
Geo = paste0('<img src="../../icon/flag/vsmall/', Geo, '.png" alt="Flag">')) %>%
select(Geo, asset10, Asset10, values) %>%
spread(Geo, values) %>%
{if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}