Adjusted savings: energy depletion (current US$)

Source: worldbank.org, 03.09.2025

Year: 2021

Flag Country Value Value change, % Rank
Aruba Aruba 0 138
Afghanistan Afghanistan 2,714,217 +134% 119
Angola Angola 13,987,115,478 +82.7% 21
Albania Albania 107,565,617 +108% 88
United Arab Emirates United Arab Emirates 20,763,096,619 +74.3% 12
Argentina Argentina 7,613,365,455 +152% 27
Armenia Armenia 1.11 +103% 137
American Samoa American Samoa 0 138
Antigua & Barbuda Antigua & Barbuda 0 138
Australia Australia 25,049,305,201 +73% 8
Austria Austria 259,625,076 +206% 74
Azerbaijan Azerbaijan 8,509,012,620 +171% 26
Burundi Burundi 0 138
Belgium Belgium 143,126,835 +139% 84
Benin Benin 0 -100% 138
Burkina Faso Burkina Faso 0 138
Bangladesh Bangladesh 2,036,631,102 +22.4% 41
Bulgaria Bulgaria 46,198,270 +153% 94
Bahrain Bahrain 6,226,312,717 +71.7% 30
Bahamas Bahamas 0 138
Bosnia & Herzegovina Bosnia & Herzegovina 9,434,959 +92.2% 107
Belarus Belarus 440,654,622 +157% 70
Belize Belize 3,736,813 +134% 115
Bermuda Bermuda 0 138
Bolivia Bolivia 902,657,905 +105% 60
Brazil Brazil 35,438,906,336 +163% 6
Barbados Barbados 14,086,557 +167% 104
Brunei Brunei 2,260,884,299 +98.8% 39
Bhutan Bhutan 0 138
Botswana Botswana 58,884,093 +114% 92
Central African Republic Central African Republic 0 138
Canada Canada 27,270,930,121 +650% 7
Switzerland Switzerland 3,146,412 +139% 118
Chile Chile 30,654,962 +93.7% 99
China China 121,148,953,241 +130% 3
Côte d’Ivoire Côte d’Ivoire 361,261,371 +102% 72
Cameroon Cameroon 1,031,441,104 +100% 55
Congo - Kinshasa Congo - Kinshasa 240,724,609 +102% 78
Congo - Brazzaville Congo - Brazzaville 2,796,184,844 +86.8% 37
Colombia Colombia 10,958,800,527 +144% 25
Comoros Comoros 0 138
Cape Verde Cape Verde 9,980,314 +76.4% 106
Costa Rica Costa Rica 4,855,932 +182% 111
Cuba Cuba 563,303,854 +157% 64
Curaçao Curaçao 0 138
Cayman Islands Cayman Islands 0 138
Cyprus Cyprus 0 138
Czechia Czechia 128,944,504 +131% 87
Germany Germany 1,303,395,270 +223% 51
Djibouti Djibouti 0 138
Dominica Dominica 0 138
Denmark Denmark 942,615,482 +137% 59
Dominican Republic Dominican Republic 0 138
Algeria Algeria 20,390,765,288 +88.9% 13
Ecuador Ecuador 6,006,390,958 +166% 31
Egypt Egypt 13,986,574,474 +82.4% 22
Eritrea Eritrea 0 138
Spain Spain 3,540,256 +361% 117
Estonia Estonia 274,524,167 +136% 73
Ethiopia Ethiopia 5,470 +103% 135
Finland Finland 104,069,760 +139% 89
Fiji Fiji 0 138
France France 167,693,173 +137% 82
Faroe Islands Faroe Islands 0 138
Micronesia (Federated States of) Micronesia (Federated States of) 0 138
Gabon Gabon 1,922,567,816 +100% 43
United Kingdom United Kingdom 16,225,670,089 +136% 16
Georgia Georgia 555,844 +126% 128
Ghana Ghana 1,973,222,117 +89.7% 42
Gibraltar Gibraltar 0 138
Guinea Guinea 0 138
Gambia Gambia 0 138
Guinea-Bissau Guinea-Bissau 0 138
Equatorial Guinea Equatorial Guinea 1,715,601,239 +72.2% 44
Greece Greece 31,438,219 +86% 97
Grenada Grenada 0 138
Greenland Greenland 0 138
Guatemala Guatemala 57,729,545 +138% 93
Guam Guam 0 138
Guyana Guyana 1,496,691,632 +357% 49
Hong Kong SAR China Hong Kong SAR China 954,521 +213% 127
Honduras Honduras 242,797 +182% 130
Croatia Croatia 218,009,307 +182% 80
Haiti Haiti 0 138
Hungary Hungary 562,969,040 +225% 65
Indonesia Indonesia 22,841,182,662 +115% 11
India India 16,005,565,905 +129% 17
Ireland Ireland 239,956,212 +309% 79
Iran Iran 18,088,452,354 +103% 15
Iraq Iraq 23,752,299,146 +78.2% 9
Iceland Iceland 0 138
Israel Israel 1,195,276,595 +117% 52
Italy Italy 1,626,796,562 +139% 46
Jamaica Jamaica 36,419,488 +182% 95
Jordan Jordan 15,907,502 +136% 103
Japan Japan 464,367,385 +93.8% 67
Kazakhstan Kazakhstan 15,115,244,865 +148% 20
Kenya Kenya 0 138
Kyrgyzstan Kyrgyzstan 1,064,708 +36.3% 125
Cambodia Cambodia 8,087,444 +14,675% 108
Kiribati Kiribati 0 138
St. Kitts & Nevis St. Kitts & Nevis 0 138
South Korea South Korea 451,439,155 +163% 68
Kuwait Kuwait 12,432,846,096 +73.1% 23
Laos Laos 0 138
Lebanon Lebanon 0 138
Liberia Liberia 0 138
Libya Libya 5,829,662,988 +852% 33
St. Lucia St. Lucia 0 138
Sri Lanka Sri Lanka 0 138
Lesotho Lesotho 0 138
Lithuania Lithuania 4,690,592 +109% 112
Luxembourg Luxembourg 0 138
Latvia Latvia 19,994,130 +139% 102
Macao SAR China Macao SAR China 0 138
Morocco Morocco 11,226,206 +71.7% 105
Moldova Moldova 1,194,026 +120% 124
Madagascar Madagascar 6,654,517 +76.1% 109
Maldives Maldives 0 138
Mexico Mexico 23,690,738,131 +168% 10
North Macedonia North Macedonia 60,700 +106% 133
Mali Mali 0 138
Malta Malta 0 138
Myanmar (Burma) Myanmar (Burma) 1,510,000,630 +64.1% 48
Montenegro Montenegro 2,477,221 +92.4% 120
Mongolia Mongolia 442,446,063 +58.8% 69
Northern Mariana Islands Northern Mariana Islands 0 138
Mozambique Mozambique 93,211,242 +113% 91
Mauritania Mauritania 2,009,554 +55.1% 122
Mauritius Mauritius 0 138
Malawi Malawi 1,483,786 +104% 123
Malaysia Malaysia 15,363,584,359 +117% 19
Namibia Namibia 0 138
New Caledonia New Caledonia 0 138
Niger Niger 36,181,663 +49.2% 96
Nigeria Nigeria 11,589,584,657 +75.3% 24
Nicaragua Nicaragua 2,427,966 +182% 121
Netherlands Netherlands 2,992,655,115 +369% 36
Norway Norway 38,819,067,675 +224% 5
Nepal Nepal 1,017,002 +103% 126
Nauru Nauru 0 138
New Zealand New Zealand 885,636,291 +67.2% 61
Oman Oman 19,705,937,312 +81.6% 14
Pakistan Pakistan 3,144,599,835 +47% 35
Panama Panama 0 138
Peru Peru 611,874,545 +98.2% 63
Philippines Philippines 742,962,339 +73.8% 62
Papua New Guinea Papua New Guinea 2,388,830,784 +83.3% 38
Poland Poland 942,786,341 +214% 58
Puerto Rico Puerto Rico 0 138
North Korea North Korea 430,717,722 +103% 71
Portugal Portugal 100,823,064 +139% 90
Paraguay Paraguay 24,279,659 +182% 101
Palestinian Territories Palestinian Territories 0 138
French Polynesia French Polynesia 0 138
Qatar Qatar 15,484,699,817 +73.5% 18
Romania Romania 2,051,701,974 +271% 40
Russia Russia 148,662,588,195 +200% 2
Rwanda Rwanda 127,213 +96.7% 132
Saudi Arabia Saudi Arabia 62,424,177,107 +71.8% 4
Sudan Sudan 143,911,215 +131% 83
Senegal Senegal 305,716 -13.2% 129
Singapore Singapore 0 138
Solomon Islands Solomon Islands 0 138
Sierra Leone Sierra Leone 0 138
El Salvador El Salvador 36,419 +182% 134
Somalia Somalia 0 138
Serbia Serbia 242,511,097 +135% 76
South Sudan South Sudan 993,098,544 +77.6% 56
São Tomé & Príncipe São Tomé & Príncipe 0 138
Suriname Suriname 199,717,599 +182% 81
Slovakia Slovakia 3,675,826 +178% 116
Slovenia Slovenia 4,688,317 +84.8% 113
Sweden Sweden 132,826,207 +139% 86
Eswatini Eswatini 155 +115% 136
Seychelles Seychelles 0 138
Syria Syria 254,054,262 +74.9% 75
Turks & Caicos Islands Turks & Caicos Islands 0 138
Chad Chad 1,089,756,401 +91.1% 53
Togo Togo 0 138
Thailand Thailand 6,748,768,575 +101% 29
Tajikistan Tajikistan 25,401,007 +185% 100
Turkmenistan Turkmenistan 4,567,851,510 +260% 34
Timor-Leste Timor-Leste 1,080,033,352 +65.9% 54
Tonga Tonga 0 138
Trinidad & Tobago Trinidad & Tobago 1,537,109,719 +49.3% 47
Tunisia Tunisia 529,385,780 +90% 66
Turkey Turkey 969,364,533 +160% 57
Tuvalu Tuvalu 0 138
Tanzania Tanzania 141,252,701 +94.4% 85
Uganda Uganda 0 138
Ukraine Ukraine 1,346,647,561 +233% 50
Uruguay Uruguay 4,855,932 +182% 111
United States United States 178,211,930,410 +467% 1
Uzbekistan Uzbekistan 5,858,979,284 +494% 32
St. Vincent & Grenadines St. Vincent & Grenadines 0 138
Venezuela Venezuela 241,286,036 +209% 77
British Virgin Islands British Virgin Islands 0 138
U.S. Virgin Islands U.S. Virgin Islands 154,449 +104% 131
Vietnam Vietnam 1,647,044,866 +109% 45
Vanuatu Vanuatu 0 138
Samoa Samoa 0 138
Kosovo Kosovo 5,037,923 +107% 110
South Africa South Africa 7,154,669,348 +96.3% 28
Zambia Zambia 4,666,337 +103% 114
Zimbabwe Zimbabwe 31,282,629 +88.5% 98

                    
# 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.DNGY.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.DNGY.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))