Adjusted savings: net forest depletion (current US$)

Source: worldbank.org, 03.09.2025

Year: 2021

Flag Country Value Value change, % Rank
Aruba Aruba 64,588 -18.5% 109
Afghanistan Afghanistan 47,376,783 -2.08% 60
Angola Angola 458,784,517 +7.1% 22
Albania Albania 25,282,158 +24.5% 64
United Arab Emirates United Arab Emirates 441,285 -6.8% 95
Argentina Argentina 0 112
Armenia Armenia 37,110,957 +8.63% 62
Australia Australia 1,910,283,871 -1.58% 7
Austria Austria 140,279,220 +40.3% 43
Azerbaijan Azerbaijan 0 112
Burundi Burundi 387,979,514 +5.74% 29
Belgium Belgium 44,608,341 +11.3% 61
Benin Benin 0 112
Burkina Faso Burkina Faso 0 112
Bangladesh Bangladesh 312,966,727 +4.46% 31
Bulgaria Bulgaria 0 112
Bahrain Bahrain 173,964 -6.05% 104
Bahamas Bahamas 1,653,718 -11.2% 89
Bosnia & Herzegovina Bosnia & Herzegovina 0 112
Belarus Belarus 0 112
Belize Belize 6,007,090 -15.6% 80
Bolivia Bolivia 0 112
Brazil Brazil 0 112
Barbados Barbados 572,854 -12.4% 93
Brunei Brunei 6,844,237 +0.211% 78
Bhutan Bhutan 60,791,709 +6.05% 54
Botswana Botswana 52,121,864 +5.92% 56
Central African Republic Central African Republic 0 112
Canada Canada 0 112
Switzerland Switzerland 13,678,335 +47.7% 69
Chile Chile 0 112
China China 0 112
Côte d’Ivoire Côte d’Ivoire 0 112
Cameroon Cameroon 1,169,556,549 +6.23% 10
Congo - Kinshasa Congo - Kinshasa 5,183,414,416 +7.1% 3
Congo - Brazzaville Congo - Brazzaville 397,343,419 +6.13% 28
Colombia Colombia 0 112
Comoros Comoros 21,105,966 +7.73% 67
Cape Verde Cape Verde 5,734,358 +5.74% 81
Costa Rica Costa Rica 0 112
Cuba Cuba 68,828,464 -13.5% 50
Cyprus Cyprus 0 112
Czechia Czechia 469,411,963 -9.67% 21
Germany Germany 0 112
Djibouti Djibouti 9,651,723 -5.82% 73
Dominica Dominica 183,256 -21.5% 102
Denmark Denmark 21,866,222 +13% 66
Dominican Republic Dominican Republic 24,451,523 -10.8% 65
Algeria Algeria 0 112
Ecuador Ecuador 0 112
Egypt Egypt 434,775,272 -6.66% 25
Eritrea Eritrea 5,079,230 +9.07% 83
Spain Spain 0 112
Estonia Estonia 0 112
Ethiopia Ethiopia 6,233,766,464 +6.97% 2
Finland Finland 0 112
Fiji Fiji 48,409,315 +11.3% 59
France France 748,244,629 +21.6% 13
Micronesia (Federated States of) Micronesia (Federated States of) 72,110 -12% 108
Gabon Gabon 534,893,958 +5.82% 16
Georgia Georgia 10,105,633 -12.8% 71
Ghana Ghana 2,914,483,929 +9.56% 6
Guinea Guinea 727,279,168 +6.26% 14
Gambia Gambia 58,232,092 +5.9% 55
Guinea-Bissau Guinea-Bissau 170,872,863 +7.02% 41
Equatorial Guinea Equatorial Guinea 236,781,155 +5.82% 35
Greece Greece 18,428,625 +7.61% 68
Guatemala Guatemala 0 112
Guyana Guyana 178,855,019 -15.5% 40
Honduras Honduras 0 112
Croatia Croatia 104,981,708 +2.1% 47
Haiti Haiti 68,622,620 -18.1% 51
Hungary Hungary 0 112
Indonesia Indonesia 0 112
India India 5,105,130,334 +2.74% 4
Ireland Ireland 0 112
Iran Iran 0 112
Iraq Iraq 6,727,861 -4.37% 79
Iceland Iceland 27,386 +16% 111
Israel Israel 0 112
Italy Italy 210,086,237 +12% 38
Jamaica Jamaica 8,779,780 -18.6% 75
Jordan Jordan 9,284,810 -5% 74
Japan Japan 0 112
Kazakhstan Kazakhstan 0 112
Kenya Kenya 1,348,734,997 +5.75% 9
Kyrgyzstan Kyrgyzstan 0 112
Cambodia Cambodia 0 112
Kiribati Kiribati 90,059 -12.7% 107
South Korea South Korea 0 112
Kuwait Kuwait 490,953 -6.01% 94
Laos Laos 281,176,437 -6.65% 32
Lebanon Lebanon 0 112
Liberia Liberia 578,298,695 +8.91% 15
Libya Libya 32,773,512 -5.25% 63
St. Lucia St. Lucia 227,130 -22.6% 98
Liechtenstein Liechtenstein 102,891 +14.4% 106
Sri Lanka Sri Lanka 48,443,461 +1.29% 58
Lesotho Lesotho 107,780,148 +6.04% 45
Lithuania Lithuania 0 112
Luxembourg Luxembourg 3,705,649 -19.5% 84
Latvia Latvia 0 112
Morocco Morocco 0 112
Moldova Moldova 0 112
Madagascar Madagascar 788,374,627 +7.67% 12
Maldives Maldives 200,105 +6.32% 100
Mexico Mexico 0 112
North Macedonia North Macedonia 0 112
Mali Mali 427,706,388 +5.91% 26
Myanmar (Burma) Myanmar (Burma) 1,413,973,996 -7.4% 8
Montenegro Montenegro 8,058,033 -4.48% 76
Mongolia Mongolia 0 112
Mozambique Mozambique 0 112
Mauritania Mauritania 64,324,321 +11.6% 53
Mauritius Mauritius 245,217 +4.36% 96
Malawi Malawi 530,351,178 +6.5% 17
Malaysia Malaysia 6,355,359,642 +1.19% 1
Namibia Namibia 106,199,106 +12.3% 46
New Caledonia New Caledonia 1,241,758 +3.5% 90
Niger Niger 0 112
Nigeria Nigeria 0 112
Nicaragua Nicaragua 0 112
Netherlands Netherlands 0 112
Norway Norway 0 112
Nepal Nepal 178,858,444 +3% 39
New Zealand New Zealand 0 112
Oman Oman 1,195,255 -6.99% 91
Pakistan Pakistan 448,133,718 +3.12% 24
Panama Panama 0 112
Peru Peru 265,103,876 -2.17% 33
Philippines Philippines 0 112
Papua New Guinea Papua New Guinea 520,635,408 -2.52% 18
Poland Poland 0 112
North Korea North Korea 0 112
Portugal Portugal 230,658,079 +5.46% 37
Paraguay Paraguay 503,192,580 -14.1% 20
French Polynesia French Polynesia 216,160 -6.69% 99
Qatar Qatar 118,807 -7.08% 105
Romania Romania 0 112
Russia Russia 0 112
Rwanda Rwanda 415,762,302 +5.75% 27
Saudi Arabia Saudi Arabia 7,477,773 -4.96% 77
Sudan Sudan 0 112
Senegal Senegal 0 112
Singapore Singapore 718,503 -14% 92
Solomon Islands Solomon Islands 0 112
Sierra Leone Sierra Leone 318,893,050 +6.93% 30
El Salvador El Salvador 153,775,541 -18.1% 42
Somalia Somalia 857,058,701 +8.7% 11
Serbia Serbia 0 112
South Sudan South Sudan 236,213,063 +5.96% 36
São Tomé & Príncipe São Tomé & Príncipe 9,924,243 +6.06% 72
Suriname Suriname 49,209,990 +5.61% 57
Slovakia Slovakia 0 112
Slovenia Slovenia 90,607,193 -5.45% 49
Sweden Sweden 0 112
Eswatini Eswatini 112,570,356 +3.42% 44
Seychelles Seychelles 1,754,733 +5.82% 88
Syria Syria 3,074,370 -5.26% 85
Turks & Caicos Islands Turks & Caicos Islands 30,821 -20% 110
Chad Chad 451,240,446 +4.68% 23
Togo Togo 251,014,752 +5.94% 34
Thailand Thailand 0 112
Tajikistan Tajikistan 67,816,501 +8.59% 52
Turkmenistan Turkmenistan 240,007 +8.62% 97
Timor-Leste Timor-Leste 1,945,293 -16.6% 87
Tonga Tonga 191,223 +1.02% 101
Trinidad & Tobago Trinidad & Tobago 13,282,239 -10.2% 70
Tunisia Tunisia 95,069,135 -7.1% 48
Tanzania Tanzania 0 112
Uganda Uganda 3,029,812,616 +6.54% 5
Ukraine Ukraine 0 112
Uruguay Uruguay 0 112
United States United States 0 112
Uzbekistan Uzbekistan 0 112
St. Vincent & Grenadines St. Vincent & Grenadines 174,771 -21.9% 103
Venezuela Venezuela 0 112
Vietnam Vietnam 0 112
Vanuatu Vanuatu 5,432,637 -3.78% 82
Samoa Samoa 2,365,083 -9.76% 86
South Africa South Africa 0 112
Zambia Zambia 0 112
Zimbabwe Zimbabwe 516,326,003 +6.01% 19

                    
# Install missing packages
import sys
import subprocess

def install(package):
subprocess.check_call([sys.executable, "-m", "pip", "install", package])

# Required packages
for package in ['wbdata', 'country_converter']:
try:
__import__(package)
except ImportError:
install(package)

# Import libraries
import wbdata
import country_converter as coco
from datetime import datetime

# Define World Bank indicator code
dataset_code = 'NY.ADJ.DFOR.CD'

# Download data from World Bank API
data = wbdata.get_dataframe({dataset_code: 'value'},
date=(datetime(1960, 1, 1), datetime.today()),
parse_dates=True,
keep_levels=True).reset_index()

# Extract year
data['year'] = data['date'].dt.year

# Convert country names to ISO codes using country_converter
cc = coco.CountryConverter()
data['iso2c'] = cc.convert(names=data['country'], to='ISO2', not_found=None)
data['iso3c'] = cc.convert(names=data['country'], to='ISO3', not_found=None)

# Filter out rows where ISO codes could not be matched — likely not real countries
data = data[data['iso2c'].notna() & data['iso3c'].notna()]

# Sort for calculation
data = data.sort_values(['iso3c', 'year'])

# Calculate YoY absolute and percent change
data['value_change'] = data.groupby('iso3c')['value'].diff()
data['value_change_percent'] = data.groupby('iso3c')['value'].pct_change() * 100

# Calculate ranks (higher GDP per capita = better rank)
data['rank'] = data.groupby('year')['value'].rank(ascending=False, method='dense')

# Calculate rank change from previous year
data['rank_change'] = data.groupby('iso3c')['rank'].diff()

# Select desired columns
final_df = data[['country', 'iso2c', 'iso3c', 'year', 'value',
'value_change', 'value_change_percent', 'rank', 'rank_change']].copy()

# Optional: Add labels as metadata (could be useful for export or UI)
column_labels = {
'country': 'Country name',
'iso2c': 'ISO 2-letter country code',
'iso3c': 'ISO 3-letter country code',
'year': 'Year',
'value': 'GDP per capita (current US$)',
'value_change': 'Year-over-Year change in value',
'value_change_percent': 'Year-over-Year percent change in value',
'rank': 'Country rank by GDP per capita (higher = richer)',
'rank_change': 'Change in rank from previous year'
}

# Display first few rows
print(final_df.head(10))

# Optional: Save to CSV
#final_df.to_csv("gdp_per_capita_cleaned.csv", index=False)
                    
                
                    
# Check and install required packages
required_packages <- c("WDI", "countrycode", "dplyr")

for (pkg in required_packages) {
  if (!requireNamespace(pkg, quietly = TRUE)) {
    install.packages(pkg)
  }
}

# Load the necessary libraries
library(WDI)
library(dplyr)
library(countrycode)

# Define the dataset code (World Bank indicator code)
dataset_code <- 'NY.ADJ.DFOR.CD'

# Download data using WDI package
dat <- WDI(indicator = dataset_code)

# Filter only countries using 'is_country' from countrycode
# This uses iso2c to identify whether the entry is a recognized country
dat <- dat %>%
  filter(countrycode(iso2c, origin = 'iso2c', destination = 'country.name', warn = FALSE) %in%
           countrycode::codelist$country.name.en)

# Ensure dataset is ordered by country and year
dat <- dat %>%
  arrange(iso3c, year)

# Rename the dataset_code column to "value" for easier manipulation
dat <- dat %>%
  rename(value = !!dataset_code)

# Calculate year-over-year (YoY) change and percentage change
dat <- dat %>%
  group_by(iso3c) %>%
  mutate(
    value_change = value - lag(value),                              # Absolute change from previous year
    value_change_percent = 100 * (value - lag(value)) / lag(value) # Percent change from previous year
  ) %>%
  ungroup()

# Calculate rank by year (higher value => higher rank)
dat <- dat %>%
  group_by(year) %>%
  mutate(rank = dense_rank(desc(value))) %>% # Rank countries by descending value
  ungroup()

# Calculate rank change (positive = moved up, negative = moved down)
dat <- dat %>%
  group_by(iso3c) %>%
  mutate(rank_change = rank - lag(rank)) %>% # Change in rank compared to previous year
  ungroup()

# Select and reorder final columns
final_data <- dat %>%
  select(
    country,
    iso2c,
    iso3c,
    year,
    value,
    value_change,
    value_change_percent,
    rank,
    rank_change
  )

# Add labels (variable descriptions)
attr(final_data$country, "label") <- "Country name"
attr(final_data$iso2c, "label") <- "ISO 2-letter country code"
attr(final_data$iso3c, "label") <- "ISO 3-letter country code"
attr(final_data$year, "label") <- "Year"
attr(final_data$value, "label") <- "GDP per capita (current US$)"
attr(final_data$value_change, "label") <- "Year-over-Year change in value"
attr(final_data$value_change_percent, "label") <- "Year-over-Year percent change in value"
attr(final_data$rank, "label") <- "Country rank by GDP per capita (higher = richer)"
attr(final_data$rank_change, "label") <- "Change in rank from previous year"

# Print the first few rows of the final dataset
print(head(final_data, 10))