Adjusted savings: carbon dioxide damage (current US$)

Source: worldbank.org, 03.09.2025

Year: 2021

Flag Country Value Value change, % Rank
Aruba Aruba 57,503,497 +19% 161
Afghanistan Afghanistan 182,230,038 -21.6% 139
Angola Angola 1,063,841,255 +6.92% 80
Albania Albania 222,562,876 +14.5% 133
Andorra Andorra 21,479,772 +15.5% 182
United Arab Emirates United Arab Emirates 8,013,108,397 +8.32% 28
Argentina Argentina 7,518,223,852 +17.8% 30
Armenia Armenia 262,474,817 +10.7% 128
American Samoa American Samoa 17,645,067 +23.7% 186
Antigua & Barbuda Antigua & Barbuda 18,150,850 +7.92% 185
Australia Australia 16,940,636,306 +6.49% 16
Austria Austria 2,739,901,397 +9.36% 49
Azerbaijan Azerbaijan 1,677,225,721 +14.8% 63
Burundi Burundi 38,476,263 +17.1% 171
Belgium Belgium 4,018,152,979 +10.7% 41
Benin Benin 377,216,304 +16.1% 113
Burkina Faso Burkina Faso 261,648,962 +17.8% 129
Bangladesh Bangladesh 4,527,926,059 +14.2% 38
Bulgaria Bulgaria 1,701,639,977 +11% 61
Bahrain Bahrain 1,430,601,153 +8.16% 71
Bahamas Bahamas 108,833,054 +20.3% 146
Bosnia & Herzegovina Bosnia & Herzegovina 947,003,025 +12.3% 90
Belarus Belarus 2,576,090,041 +7.89% 53
Belize Belize 28,257,718 +21.9% 178
Bermuda Bermuda 36,995,907 +18.9% 173
Bolivia Bolivia 974,465,190 +13.3% 86
Brazil Brazil 19,805,847,888 +12% 12
Barbados Barbados 44,130,966 +1.4% 167
Brunei Brunei 315,562,356 +5.41% 124
Bhutan Bhutan 48,422,567 +16.2% 164
Botswana Botswana 372,959,745 +26% 114
Central African Republic Central African Republic 12,649,793 +15.5% 192
Canada Canada 25,295,279,066 +10.3% 10
Switzerland Switzerland 1,593,047,789 +7.28% 66
Chile Chile 4,302,520,046 +18.9% 39
China China 482,501,204,650 +9.79% 1
Côte d’Ivoire Côte d’Ivoire 524,676,339 +13.4% 99
Cameroon Cameroon 440,118,724 +10.5% 105
Congo - Kinshasa Congo - Kinshasa 138,943,431 +6.91% 144
Congo - Brazzaville Congo - Brazzaville 325,162,365 +8.71% 121
Colombia Colombia 3,679,834,693 +16.9% 44
Comoros Comoros 16,419,996 +15.2% 187
Cape Verde Cape Verde 26,333,621 +13.4% 181
Costa Rica Costa Rica 369,622,359 +12.8% 115
Cuba Cuba 988,437,420 +4.52% 82
Cayman Islands Cayman Islands 32,691,674 +13.7% 175
Cyprus Cyprus 318,172,013 +11.7% 123
Czechia Czechia 3,934,357,730 +6.42% 42
Germany Germany 27,645,558,505 +6.47% 7
Djibouti Djibouti 15,431,109 -1.89% 188
Dominica Dominica 6,586,280 +12% 204
Denmark Denmark 1,213,645,248 +5.16% 76
Dominican Republic Dominican Republic 1,221,804,369 +16.9% 75
Algeria Algeria 7,829,780,721 +12.3% 29
Ecuador Ecuador 1,650,165,572 +9.58% 65
Egypt Egypt 11,786,666,531 +9.21% 22
Eritrea Eritrea 42,965,132 +11% 169
Spain Spain 9,664,158,533 +10.1% 25
Estonia Estonia 421,354,587 +6.63% 107
Ethiopia Ethiopia 979,885,475 +16% 83
Finland Finland 1,681,827,686 +4.89% 62
Fiji Fiji 60,081,060 +3.24% 159
France France 12,647,501,343 +11% 21
Faroe Islands Faroe Islands 37,909,210 +12.4% 172
Micronesia (Federated States of) Micronesia (Federated States of) 8,561,751 +8.89% 199
Gabon Gabon 216,207,007 +3.76% 134
United Kingdom United Kingdom 13,400,565,395 +8.35% 18
Georgia Georgia 491,189,221 +20.7% 103
Ghana Ghana 959,209,697 +12.7% 89
Gibraltar Gibraltar 30,224,371 +9.77% 177
Guinea Guinea 191,940,873 +10.3% 137
Gambia Gambia 27,740,172 +12% 179
Guinea-Bissau Guinea-Bissau 15,190,422 +11.3% 189
Equatorial Guinea Equatorial Guinea 212,591,942 +1.97% 135
Greece Greece 2,534,703,584 +12.8% 54
Grenada Grenada 12,376,997 +7.31% 193
Greenland Greenland 20,964,388 +9.18% 183
Guatemala Guatemala 977,699,523 +18.6% 84
Guam Guam 82,596,198 +12.6% 154
Guyana Guyana 229,981,881 +30.7% 132
Hong Kong SAR China Hong Kong SAR China 1,498,589,775 +8.13% 69
Honduras Honduras 455,862,607 +18.1% 104
Croatia Croatia 726,760,701 +17.3% 93
Haiti Haiti 147,399,409 +6.82% 143
Hungary Hungary 2,023,540,723 +11.3% 58
Indonesia Indonesia 27,429,444,391 +8.86% 8
India India 107,594,067,535 +13.5% 3
Ireland Ireland 1,676,172,163 +12.6% 64
Iran Iran 31,122,747,018 +12.5% 6
Iraq Iraq 7,070,302,767 +8.97% 32
Iceland Iceland 64,077,670 +5.24% 158
Israel Israel 2,699,326,409 +9.82% 50
Italy Italy 13,148,396,365 +10.9% 19
Jamaica Jamaica 359,652,176 +12.3% 116
Jordan Jordan 1,111,731,702 +8.89% 78
Japan Japan 45,384,463,483 +6.3% 5
Kazakhstan Kazakhstan 8,713,723,746 +5.43% 27
Kenya Kenya 1,118,185,527 +17% 77
Kyrgyzstan Kyrgyzstan 425,946,728 +10.1% 106
Cambodia Cambodia 844,686,280 +18.5% 91
Kiribati Kiribati 4,484,153 +13.4% 206
St. Kitts & Nevis St. Kitts & Nevis 8,806,064 +1.65% 198
South Korea South Korea 27,293,273,784 +8.88% 9
Kuwait Kuwait 3,838,566,997 +7.61% 43
Laos Laos 1,278,823,936 +32.8% 73
Lebanon Lebanon 976,007,105 +2.23% 85
Liberia Liberia 57,754,235 +15.7% 160
Libya Libya 2,630,220,079 +42.2% 52
St. Lucia St. Lucia 19,688,416 +17% 184
Liechtenstein Liechtenstein 5,847,877 +2.33% 205
Sri Lanka Sri Lanka 1,103,824,379 +12.1% 79
Lesotho Lesotho 33,304,301 +9.99% 174
Lithuania Lithuania 516,580,448 +8.67% 100
Luxembourg Luxembourg 406,219,847 +7.1% 108
Latvia Latvia 320,093,872 +6.68% 122
Macao SAR China Macao SAR China 119,951,657 +9.24% 145
Morocco Morocco 3,061,980,716 +12.2% 48
Moldova Moldova 396,238,653 +18% 111
Madagascar Madagascar 194,583,802 +15.9% 136
Maldives Maldives 96,734,345 +57.2% 153
Mexico Mexico 18,419,077,893 +8.64% 15
Marshall Islands Marshall Islands 8,309,987 +9.68% 200
North Macedonia North Macedonia 333,560,136 +6.09% 120
Mali Mali 291,374,165 +14.8% 126
Malta Malta 57,456,204 +2.63% 162
Myanmar (Burma) Myanmar (Burma) 1,752,641,168 -1.99% 60
Montenegro Montenegro 105,263,090 +16.6% 149
Mongolia Mongolia 960,771,244 +5.91% 88
Mozambique Mozambique 389,000,107 +16.6% 112
Mauritania Mauritania 186,304,338 +11.1% 138
Mauritius Mauritius 160,278,087 +8.65% 141
Malawi Malawi 69,765,994 +11.4% 156
Malaysia Malaysia 10,577,800,544 +7.37% 24
Namibia Namibia 181,779,967 +10.3% 140
New Caledonia New Caledonia 257,208,225 +9.56% 130
Niger Niger 98,289,765 +6.4% 152
Nigeria Nigeria 5,232,703,685 +10.1% 35
Nicaragua Nicaragua 247,970,284 +16% 131
Netherlands Netherlands 6,329,285,551 +9.25% 34
Norway Norway 1,585,407,651 +8.03% 67
Nepal Nepal 737,047,832 +21.7% 92
Nauru Nauru 2,607,668 +5.03% 207
New Zealand New Zealand 1,498,854,047 +8.2% 68
Oman Oman 3,521,955,372 +11.8% 45
Pakistan Pakistan 9,007,584,095 +13.6% 26
Panama Panama 528,527,612 +18.7% 98
Peru Peru 2,511,439,608 +19.4% 55
Philippines Philippines 6,385,430,615 +13.9% 33
Palau Palau 9,039,778 -6.61% 197
Papua New Guinea Papua New Guinea 337,180,460 +7.96% 119
Poland Poland 12,926,891,690 +9.92% 20
Puerto Rico Puerto Rico 56,908,503 +11.8% 163
North Korea North Korea 2,646,135,762 +9.26% 51
Portugal Portugal 1,901,365,017 +11.3% 59
Paraguay Paraguay 404,804,226 +14.4% 109
Palestinian Territories Palestinian Territories 148,917,810 +8.71% 142
French Polynesia French Polynesia 43,922,796 +10.8% 168
Qatar Qatar 4,089,489,811 +8.89% 40
Romania Romania 3,073,267,254 +7.1% 47
Russia Russia 76,340,677,318 +10.4% 4
Rwanda Rwanda 67,747,293 +21.6% 157
Saudi Arabia Saudi Arabia 22,930,848,556 +9.21% 11
Sudan Sudan 963,332,608 +9.69% 87
Senegal Senegal 511,075,126 +12.9% 101
Singapore Singapore 2,096,281,284 +12.1% 57
Solomon Islands Solomon Islands 14,753,710 +3.48% 190
Sierra Leone Sierra Leone 41,377,070 +11.1% 170
El Salvador El Salvador 347,003,227 +16.3% 118
Somalia Somalia 31,649,449 +7.71% 176
Serbia Serbia 2,114,011,244 +12.4% 56
South Sudan South Sudan 80,651,255 +9.51% 155
São Tomé & Príncipe São Tomé & Príncipe 7,125,283 +9% 202
Suriname Suriname 103,667,481 +7.03% 150
Slovakia Slovakia 1,302,172,338 +6.29% 72
Slovenia Slovenia 591,191,152 +11.5% 95
Sweden Sweden 1,462,205,066 +6.54% 70
Eswatini Eswatini 48,048,953 +17.8% 165
Seychelles Seychelles 27,549,596 +15.5% 180
Syria Syria 995,829,807 -4.81% 81
Turks & Caicos Islands Turks & Caicos Islands 9,899,546 +13.7% 195
Chad Chad 108,376,584 +10.6% 147
Togo Togo 101,456,591 +5.84% 151
Thailand Thailand 11,038,915,559 +6.37% 23
Tajikistan Tajikistan 588,083,563 +28.5% 97
Turkmenistan Turkmenistan 3,402,689,245 +8.66% 46
Timor-Leste Timor-Leste 45,787,243 +22.1% 166
Tonga Tonga 7,463,573 +6.9% 201
Trinidad & Tobago Trinidad & Tobago 670,711,986 +2.86% 94
Tunisia Tunisia 1,271,099,128 +10.8% 74
Turkey Turkey 19,657,226,516 +17% 13
Tuvalu Tuvalu 434,736 +5.62% 208
Tanzania Tanzania 589,983,724 +10.7% 96
Uganda Uganda 291,980,701 +12.6% 125
Ukraine Ukraine 7,163,426,149 +5.55% 31
Uruguay Uruguay 265,414,083 +7.24% 127
United States United States 210,317,902,107 +9.69% 2
Uzbekistan Uzbekistan 4,970,217,378 +6.57% 36
St. Vincent & Grenadines St. Vincent & Grenadines 10,524,780 +4.69% 194
Venezuela Venezuela 4,541,098,095 +0.964% 37
British Virgin Islands British Virgin Islands 6,995,681 +13.7% 203
U.S. Virgin Islands U.S. Virgin Islands 108,326,527 +12.6% 148
Vietnam Vietnam 16,822,516,857 +12.3% 17
Vanuatu Vanuatu 9,716,335 +11.5% 196
Samoa Samoa 13,263,051 +3.56% 191
Kosovo Kosovo 401,886,518 +9.29% 110
South Africa South Africa 19,069,010,758 +10.9% 14
Zambia Zambia 358,422,258 +19.8% 117
Zimbabwe Zimbabwe 499,609,946 +12.4% 102

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