Saving
Data - WDI
Info
Data on saving
| source | dataset | Title | .html | .rData |
|---|---|---|---|---|
| bdf | CFT | Comptes Financiers Trimestriels | 2026-08-12 | 2026-08-10 |
| bea | T50100 | Table 5.1. Saving and Investment by Sector (A) (Q) | 2026-08-12 | 2026-08-12 |
| fred | saving | Saving - saving | 2026-08-12 | 2026-08-12 |
| oecd | NAAG | National Accounts at a Glance - NAAG | 2026-08-13 | 2026-08-02 |
| wdi | NY.GDS.TOTL.ZS | Gross domestic savings (% of GDP) - NY.GDS.TOTL.ZS | 2026-08-12 | 2026-08-12 |
| wdi | NY.GNS.ICTR.ZS | Gross savings (% of GDP) - NY.GNS.ICTR.ZS | 2026-08-12 | 2026-08-12 |
LAST_COMPILE
| LAST_COMPILE |
|---|
| 2026-08-14 |
Net and Gross Saving (% of GDP)
United States
Code
NY.ADJ.NNAT.GN.ZS |>
bind_rows(NY.ADJ.ICTR.GN.ZS) |>
filter(iso3c == "USA") |>
year_to_date() |>
select(iso3c, date, variable, value) |>
mutate(Variable = case_when(variable == "NY.ADJ.NNAT.GN.ZS" ~ "Net Saving",
variable == "NY.ADJ.ICTR.GN.ZS" ~ "Gross Saving"),
value = value /100) |>
ggplot() + theme_minimal() +
geom_line(aes(x = date, y = value, color = Variable, linetype = Variable)) +
scale_color_manual(values = viridis(3)[1:2]) +
theme(legend.title = element_blank(),
legend.position = c(0.15, 0.15)) +
geom_rect(data = nber_recessions |>
filter(Peak > as.Date("1970-01-01")),
aes(xmin = Peak, xmax = Trough, ymin = -Inf, ymax = +Inf),
fill = 'grey', alpha = 0.5) +
scale_x_date(breaks = nber_recessions$Peak,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-2, 25, 2),
labels = scales::percent_format(accuracy = 1)) +
xlab("") + ylab("% of GNI")
China
Code
NY.ADJ.NNAT.GN.ZS |>
bind_rows(NY.ADJ.ICTR.GN.ZS) |>
filter(iso3c == "CHN") |>
year_to_date() |>
select(iso3c, date, variable, value) |>
mutate(Variable = case_when(variable == "NY.ADJ.NNAT.GN.ZS" ~ "Net Saving",
variable == "NY.ADJ.ICTR.GN.ZS" ~ "Gross Saving"),
value = value /100) |>
ggplot() + theme_minimal() +
geom_line(aes(x = date, y = value, color = Variable, linetype = Variable)) +
scale_color_manual(values = viridis(3)[1:2]) +
theme(legend.title = element_blank(),
legend.position = c(0.15, 0.75)) +
geom_rect(data = nber_recessions |>
filter(Peak > as.Date("1970-01-01")),
aes(xmin = Peak, xmax = Trough, ymin = -Inf, ymax = +Inf),
fill = 'grey', alpha = 0.5) +
scale_x_date(breaks = nber_recessions$Peak,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-2, 70, 2),
labels = scales::percent_format(accuracy = 1)) +
xlab("") + ylab("% of GNI")
Net and Gross Savings
United States (% of GDP)
Code
NY.GNS.ICTR.ZS |>
bind_rows(NE.GDI.TOTL.ZS) |>
filter(iso3c == "USA") |>
year_to_date() |>
select(iso3c, date, variable, value) |>
mutate(Variable = case_when(variable == "NY.GNS.ICTR.ZS" ~ "Gross Saving",
variable == "NE.GDI.TOTL.ZS" ~ "Gross Investment"),
value = value /100) |>
ggplot() + theme_minimal() +
geom_line(aes(x = date, y = value, color = Variable, linetype = Variable)) +
theme_minimal() +
scale_color_manual(values = viridis(3)[1:2]) +
theme(legend.title = element_blank(),
legend.position = c(0.15, 0.15)) +
geom_rect(data = nber_recessions |>
filter(Peak > as.Date("1970-01-01")),
aes(xmin = Peak, xmax = Trough, ymin = -Inf, ymax = +Inf),
fill = 'grey', alpha = 0.5) +
scale_x_date(breaks = nber_recessions$Peak,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-2, 25, 2),
labels = scales::percent_format(accuracy = 1)) +
xlab("") + ylab("% of GNI")
China (% of GDP)
Code
NY.GNS.ICTR.ZS |>
bind_rows(NE.GDI.TOTL.ZS) |>
filter(iso3c == "CHN") |>
year_to_date() |>
select(iso3c, date, variable, value) |>
mutate(Variable = case_when(variable == "NY.GNS.ICTR.ZS" ~ "Gross Saving",
variable == "NE.GDI.TOTL.ZS" ~ "Gross Investment"),
value = value /100) |>
ggplot() + theme_minimal() +
geom_line(aes(x = date, y = value, color = Variable, linetype = Variable)) +
theme_minimal() +
scale_color_manual(values = viridis(3)[1:2]) +
theme(legend.title = element_blank(),
legend.position = c(0.15, 0.85)) +
geom_rect(data = nber_recessions |>
filter(Peak > as.Date("1970-01-01")),
aes(xmin = Peak, xmax = Trough, ymin = -Inf, ymax = +Inf),
fill = 'grey', alpha = 0.5) +
scale_x_date(breaks = nber_recessions$Peak,
labels = date_format("%Y")) +
scale_y_continuous(breaks = 0.01*seq(-2, 80, 2),
labels = scales::percent_format(accuracy = 1)) +
xlab("") + ylab("% of GNI")
Gross Saving, Map
(ref:sav-gdp) Gross Saving (% of GDP), 2016.
Code
WDI_api |>
filter(year == 2016) |>
filter(iso3c != "LBR", iso3c != "SLE") |>
left_join(world, by = "iso2c") |>
ggplot(aes(long, lat, group = group)) + theme_void() +
geom_polygon(aes(fill = NY.GNS.ICTR.ZS/100), colour = alpha("black", 1/2), size = 0.1) +
scale_fill_viridis_c(labels = scales::percent_format(accuracy = 1),
breaks = seq(0, 0.6, 0.1),
values = c(0, 0.2, 0.4, 0.6, 1)) +
theme(legend.position = c(0.1, 0.4),
legend.title = element_blank())
Gross Investment, Map
(ref:inv-gdp) Gross Investment (% of GDP), 2016.
Code
WDI_api |>
filter(year == 2016) |>
filter(iso3c != "LBR", iso3c != "SLE") |>
left_join(world, by = "iso2c") |>
ggplot(aes(long, lat, group = group)) + theme_void() +
geom_polygon(aes(fill = NE.GDI.TOTL.ZS/100), colour = alpha("black", 1/2), size = 0.1) +
scale_fill_viridis_c(labels = scales::percent_format(accuracy = 1),
breaks = seq(0, 0.6, 0.1),
values = c(0, 0.2, 0.4, 0.6, 1)) +
theme(legend.position = c(0.1, 0.4),
legend.title = element_blank())