Adjusted savings: particulate emission damage (current US$)

Source: worldbank.org, 03.09.2025

Year: 2021

Flag Country Value Value change, % Rank
Angola Angola 396,085,581 +15.4% 53
Albania Albania 40,411,911 +10.4% 126
United Arab Emirates United Arab Emirates 1,217,086,743 +21.1% 22
Argentina Argentina 676,972,642 +12.7% 31
Armenia Armenia 38,735,291 +3.79% 130
Australia Australia 300,018,143 +15.8% 64
Austria Austria 199,616,599 +7.17% 78
Azerbaijan Azerbaijan 88,894,407 +17.1% 100
Burundi Burundi 51,736,747 +1.71% 118
Belgium Belgium 269,280,725 +5.59% 72
Benin Benin 361,364,825 +3.54% 58
Burkina Faso Burkina Faso 429,618,434 +4.14% 49
Bangladesh Bangladesh 2,693,721,184 +4.28% 11
Bulgaria Bulgaria 255,317,922 +11.7% 73
Bahrain Bahrain 74,680,769 +17.4% 106
Bahamas Bahamas 14,482,895 -0.248% 148
Bosnia & Herzegovina Bosnia & Herzegovina 81,098,598 +5.85% 105
Belarus Belarus 120,772,503 +10.4% 90
Belize Belize 7,026,137 +6.04% 157
Bolivia Bolivia 170,788,486 +1.93% 79
Brazil Brazil 2,586,087,711 +5.66% 14
Barbados Barbados 14,375,278 +4.6% 149
Brunei Brunei 8,379,687 +25.6% 155
Bhutan Bhutan 12,986,617 +5.46% 152
Botswana Botswana 81,935,027 +5.35% 104
Central African Republic Central African Republic 24,422,922 +6.27% 143
Canada Canada 607,910,113 +11.2% 36
Switzerland Switzerland 314,387,941 +6.6% 63
Chile Chile 405,764,191 +16.9% 52
China China 83,796,153,616 +16.1% 1
Côte d’Ivoire Côte d’Ivoire 657,134,605 +5.09% 32
Cameroon Cameroon 604,428,156 +6.92% 37
Congo - Kinshasa Congo - Kinshasa 535,215,565 +4.55% 40
Congo - Brazzaville Congo - Brazzaville 120,164,358 +21.8% 91
Colombia Colombia 489,809,229 +6.21% 44
Comoros Comoros 13,718,220 -0.151% 151
Cape Verde Cape Verde 8,397,222 +5.82% 154
Costa Rica Costa Rica 70,565,739 -3.37% 108
Cyprus Cyprus 24,843,216 +12.2% 142
Czechia Czechia 275,508,628 +10.8% 69
Germany Germany 2,697,251,294 +6.11% 10
Djibouti Djibouti 67,019,484 +5.47% 110
Denmark Denmark 161,472,934 +1.98% 82
Dominican Republic Dominican Republic 285,306,596 +7.19% 65
Algeria Algeria 590,749,739 +9.4% 38
Ecuador Ecuador 316,497,139 +2.93% 62
Egypt Egypt 2,643,045,336 +11.2% 13
Spain Spain 482,587,833 +3.37% 46
Estonia Estonia 11,776,409 +15.8% 153
Ethiopia Ethiopia 832,033,751 -3.58% 29
Finland Finland 39,110,588 +15.9% 128
Fiji Fiji 25,505,663 -3.84% 141
France France 1,160,695,174 +4.31% 24
Gabon Gabon 54,196,306 +30.7% 116
United Kingdom United Kingdom 1,513,724,671 +6.25% 19
Georgia Georgia 87,926,411 +9.52% 101
Ghana Ghana 510,921,391 +4.01% 42
Guinea Guinea 270,807,420 +13.3% 71
Gambia Gambia 18,724,781 +7.27% 146
Guinea-Bissau Guinea-Bissau 28,332,111 +7.41% 138
Equatorial Guinea Equatorial Guinea 60,145,803 +12.7% 113
Greece Greece 226,162,027 +3.34% 75
Guatemala Guatemala 505,494,745 +3.97% 43
Guam Guam 14,277,044 +8.1% 150
Guyana Guyana 26,415,804 +37.2% 140
Honduras Honduras 160,593,190 +7.15% 83
Croatia Croatia 69,894,563 +4.19% 109
Haiti Haiti 387,791,670 +43.5% 54
Hungary Hungary 281,962,844 +7.4% 66
Indonesia Indonesia 6,304,049,459 +9.07% 6
India India 36,773,699,405 +11.3% 2
Ireland Ireland 71,909,538 +13.7% 107
Iran Iran 1,285,524,610 +39.2% 21
Iraq Iraq 1,190,957,094 +8.28% 23
Iceland Iceland 3,899,021 +14.6% 162
Israel Israel 422,143,419 +13% 51
Italy Italy 1,286,894,194 +4.84% 20
Jamaica Jamaica 34,913,091 -1.13% 132
Jordan Jordan 119,565,601 +2.31% 92
Japan Japan 3,804,604,470 -5.79% 7
Kazakhstan Kazakhstan 330,475,263 +13.2% 60
Kenya Kenya 1,058,851,551 +3.21% 26
Kyrgyzstan Kyrgyzstan 33,279,116 +5.27% 134
Cambodia Cambodia 134,416,939 +0.182% 89
South Korea South Korea 2,758,571,645 +12.1% 9
Laos Laos 158,789,415 -2.23% 84
Lebanon Lebanon 117,545,355 -21.1% 93
Liberia Liberia 30,227,041 +8.31% 136
Libya Libya 203,095,163 -31.1% 77
St. Lucia St. Lucia 4,955,449 -0.421% 161
Sri Lanka Sri Lanka 279,244,879 +2.23% 67
Lesotho Lesotho 41,613,932 +4.31% 125
Lithuania Lithuania 59,888,882 +14.8% 114
Luxembourg Luxembourg 20,360,427 +13.8% 144
Latvia Latvia 51,321,018 +14.4% 120
Morocco Morocco 769,253,046 +10.5% 30
Moldova Moldova 28,465,785 +6.81% 137
Madagascar Madagascar 152,654,142 +3.81% 85
Maldives Maldives 5,112,048 -1.48% 160
Mexico Mexico 2,321,830,352 +8.75% 16
North Macedonia North Macedonia 40,282,378 +4.51% 127
Mali Mali 441,791,292 +6.62% 47
Malta Malta 7,108,403 +4.58% 156
Montenegro Montenegro 17,857,315 +7.85% 147
Mongolia Mongolia 86,487,583 +13.3% 102
Mozambique Mozambique 170,120,294 +10.2% 80
Mauritania Mauritania 89,016,660 +13.1% 99
Mauritius Mauritius 18,970,741 -3.43% 145
Malawi Malawi 136,711,855 -0.62% 88
Malaysia Malaysia 642,341,346 +11.3% 34
Namibia Namibia 89,505,100 +4.41% 98
Niger Niger 364,119,924 +6.47% 56
Nigeria Nigeria 8,870,446,872 -5.36% 4
Nicaragua Nicaragua 44,231,015 +0.151% 123
Netherlands Netherlands 514,966,486 +4.14% 41
Norway Norway 63,093,310 +29.2% 112
Nepal Nepal 621,128,000 +6.08% 35
New Zealand New Zealand 51,574,532 +15.5% 119
Oman Oman 94,863,607 +12% 96
Pakistan Pakistan 7,987,952,345 +9.2% 5
Panama Panama 47,048,411 +0.348% 122
Peru Peru 439,784,702 -3.39% 48
Philippines Philippines 2,760,491,773 +3.61% 8
Papua New Guinea Papua New Guinea 319,566,007 +9.94% 61
Poland Poland 1,036,045,769 +7.84% 27
Puerto Rico Puerto Rico 43,474,356 +1.51% 124
Portugal Portugal 95,337,549 +3.14% 95
Paraguay Paraguay 85,181,641 +5.91% 103
Qatar Qatar 114,072,762 +27.8% 94
Romania Romania 487,408,257 +12.4% 45
Russia Russia 2,458,111,182 +15.5% 15
Rwanda Rwanda 221,000,556 +1.99% 76
Saudi Arabia Saudi Arabia 2,674,100,972 +16.3% 12
Sudan Sudan 644,808,648 +20.2% 33
Senegal Senegal 277,365,971 +3.48% 68
Singapore Singapore 273,118,649 +5.5% 70
Solomon Islands Solomon Islands 30,298,488 +5.91% 135
Sierra Leone Sierra Leone 90,223,762 -6.57% 97
El Salvador El Salvador 66,291,541 +5.82% 111
Somalia Somalia 537,848,961 +8.79% 39
Serbia Serbia 230,688,566 +9.02% 74
São Tomé & Príncipe São Tomé & Príncipe 6,578,476 +8.69% 159
Suriname Suriname 6,644,670 -1.58% 158
Slovakia Slovakia 147,066,120 +8.08% 87
Slovenia Slovenia 34,677,272 +8.19% 133
Sweden Sweden 59,275,615 +9.32% 115
Eswatini Eswatini 47,479,888 +9.44% 121
Chad Chad 364,835,499 +6.64% 55
Togo Togo 169,698,419 +5.02% 81
Thailand Thailand 1,859,851,626 +1.12% 18
Tajikistan Tajikistan 52,328,334 +1.95% 117
Timor-Leste Timor-Leste 27,900,033 +73% 139
Tonga Tonga 1,556,880 -3.39% 164
Trinidad & Tobago Trinidad & Tobago 38,786,076 +18.8% 129
Tunisia Tunisia 151,641,128 +6.75% 86
Turkey Turkey 1,917,620,441 +4.47% 17
Tanzania Tanzania 937,446,334 +8.33% 28
Uganda Uganda 363,204,229 -0.672% 57
Ukraine Ukraine 429,282,886 +24.8% 50
Uruguay Uruguay 38,318,453 +6.33% 131
United States United States 15,546,091,967 +5.53% 3
Uzbekistan Uzbekistan 352,058,202 +7.94% 59
St. Vincent & Grenadines St. Vincent & Grenadines 3,413,023 +4.99% 163
Vietnam Vietnam 1,149,612,358 +6.72% 25

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