Adjusted net national income (annual % growth)

Source: worldbank.org, 03.09.2025

Year: 2021

Flag Country Value Value change, % Rank
Afghanistan Afghanistan -19.5 141
Angola Angola -1.28 -42.9% 119
Albania Albania 11.3 -454% 15
Argentina Argentina 12.5 -259% 13
Armenia Armenia 2.4 -126% 95
Austria Austria 3.65 -156% 79
Burundi Burundi 0.756 -59.8% 105
Belgium Belgium 5.94 -189% 54
Benin Benin 8.3 +203% 30
Burkina Faso Burkina Faso -5.7 -764% 134
Bangladesh Bangladesh 7.4 +77.4% 39
Bulgaria Bulgaria 8.1 -504% 32
Bahamas Bahamas 13.7 -152% 10
Bosnia & Herzegovina Bosnia & Herzegovina 8.97 -368% 24
Belarus Belarus 3.14 -291% 85
Belize Belize 13.4 -221% 11
Bolivia Bolivia -0.861 -89.3% 113
Brazil Brazil 1.36 -151% 102
Brunei Brunei -2.31 -37.9% 124
Bhutan Bhutan 0.389 -108% 109
Botswana Botswana 3.22 +1,866% 83
Central African Republic Central African Republic -0.631 -62.2% 112
Canada Canada 8.8 -219% 26
Switzerland Switzerland 8.26 -251% 31
Chile Chile 6.27 -167% 50
China China 6.89 +2,033% 45
Côte d’Ivoire Côte d’Ivoire 3.34 +5.3% 81
Cameroon Cameroon -1.11 -122% 116
Congo - Kinshasa Congo - Kinshasa -6.36 -238% 136
Congo - Brazzaville Congo - Brazzaville 35.7 -294% 2
Colombia Colombia 7.65 -243% 34
Comoros Comoros 4.86 +2,048% 69
Cape Verde Cape Verde 7.28 -145% 40
Costa Rica Costa Rica 5.31 -213% 62
Cyprus Cyprus 4.67 -154% 71
Czechia Czechia 3.82 -169% 76
Germany Germany 2.55 -154% 91
Djibouti Djibouti 9 +173% 23
Denmark Denmark 6.64 -1,062% 48
Dominican Republic Dominican Republic 7.51 -207% 35
Algeria Algeria 3.61 -159% 80
Ecuador Ecuador 1.07 -121% 104
Egypt Egypt 1.55 -69.6% 100
Spain Spain 5.87 -145% 56
Estonia Estonia 8.9 -287% 25
Ethiopia Ethiopia 6.45 -22.4% 49
Finland Finland 3.95 -463% 75
France France 9.06 -193% 22
Gabon Gabon 4.94 -165% 68
Georgia Georgia 7.12 -280% 43
Ghana Ghana -3.48 -154% 129
Guinea Guinea 0.135 -102% 110
Gambia Gambia 0.75 -77.6% 106
Guinea-Bissau Guinea-Bissau 5.94 -205% 55
Equatorial Guinea Equatorial Guinea 15.9 -484% 7
Greece Greece 8.52 -184% 29
Guatemala Guatemala 3.7 -2,972% 78
Honduras Honduras 7.01 -340% 44
Croatia Croatia 10.3 -197% 18
Haiti Haiti -1.22 -78.5% 117
Hungary Hungary 3.25 -172% 82
Indonesia Indonesia 5.37 -296% 61
India India 10.5 -253% 17
Ireland Ireland 17.7 -433% 6
Iran Iran 10.1 -26.3% 19
Iraq Iraq 21.3 -210% 5
Iceland Iceland 2.61 -125% 90
Israel Israel 8.75 -410% 27
Italy Italy 6.2 -166% 52
Japan Japan -1.26 -76.6% 118
Kazakhstan Kazakhstan -5.97 -575% 135
Kenya Kenya 9.95 -4,466% 20
Kyrgyzstan Kyrgyzstan -5.39 -435% 133
Cambodia Cambodia -0.971 -134% 115
Kiribati Kiribati -4.7 -58.1% 132
South Korea South Korea 3.13 -352% 86
Lebanon Lebanon -16.2 -36.7% 140
Libya Libya 31.5 +146% 3
Sri Lanka Sri Lanka 1.75 -156% 99
Lesotho Lesotho -0.872 +7.31% 114
Lithuania Lithuania 2.1 +220% 96
Luxembourg Luxembourg 12.1 +160% 14
Latvia Latvia 5.2 -400% 65
Morocco Morocco 7.17 -216% 41
Moldova Moldova 8.61 -215% 28
Madagascar Madagascar 6.11 -220% 53
Maldives Maldives 24.8 -173% 4
Mexico Mexico 2.42 -121% 93
North Macedonia North Macedonia 1.4 -148% 101
Mali Mali -7.39 -305% 137
Montenegro Montenegro 14.1 -193% 9
Mongolia Mongolia -9.1 +492% 139
Mozambique Mozambique 2.08 -169% 97
Mauritania Mauritania -1.73 -123% 121
Malaysia Malaysia 0.705 -119% 107
Namibia Namibia -1.6 -78.4% 120
Niger Niger 6.26 -211% 51
Nicaragua Nicaragua 1.34 -149% 103
Netherlands Netherlands 5.3 -177% 63
Norway Norway 15.7 -309% 8
Nepal Nepal 7.43 -220% 38
New Zealand New Zealand 2.69 -2,114% 89
Oman Oman -3.4 +2.29% 126
Pakistan Pakistan 7.86 -2,319% 33
Panama Panama -0.314 -96.8% 111
Peru Peru 3.04 -131% 87
Philippines Philippines -2.2 -80.3% 123
Poland Poland 5.08 -749% 66
Portugal Portugal 4.73 -153% 70
Paraguay Paraguay 6.72 -998% 47
Romania Romania 3.79 -990% 77
Russia Russia -2.64 -18.4% 125
Rwanda Rwanda 10.9 -410% 16
Sudan Sudan -1.75 -142% 122
Senegal Senegal 5.21 +105% 64
Singapore Singapore 12.9 -232% 12
Solomon Islands Solomon Islands -3.47 -45.4% 128
Sierra Leone Sierra Leone -3.78 -26% 130
El Salvador El Salvador 7.51 -175% 36
Somalia Somalia 5.4 +200% 60
Serbia Serbia 5.69 +99.1% 57
Slovakia Slovakia 2.41 -177% 94
Slovenia Slovenia 7.14 -264% 42
Sweden Sweden 4.53 -328% 72
Eswatini Eswatini 3.96 -286% 74
Seychelles Seychelles 7.47 -175% 37
Chad Chad 9.17 -179% 21
Togo Togo 2.53 -485% 92
Tajikistan Tajikistan 1.92 -4.6% 98
Timor-Leste Timor-Leste -65.7 +445% 142
Tonga Tonga -7.83 -1,019% 138
Tunisia Tunisia 5.05 -147% 67
Tanzania Tanzania 3.99 +123% 73
Uganda Uganda 2.96 +50.6% 88
Ukraine Ukraine 5.58 +343% 58
Uruguay Uruguay 3.2 -146% 84
United States United States 5.5 -241% 59
Vietnam Vietnam 0.59 -85.5% 108
Vanuatu Vanuatu -3.43 -68.1% 127
Samoa Samoa -4.25 -10.5% 131
South Africa South Africa 6.84 -249% 46
Zimbabwe Zimbabwe 39 -362% 1

Adjusted net national income (ANNI) growth is an essential economic indicator that reflects the annual percentage change in a country's adjusted net national income. This measure takes into account not only the total income generated within the nation but also factors in depreciation of capital, environmental resources, and population changes, which gives a more comprehensive view of economic prosperity and sustainability. Unlike gross national income (GNI), ANNI offers a clearer picture of the well-being and potential growth of a country's economy, emphasizing not just what is earned but also what is consumed or lost over time.

The importance of ANNI growth lies in its ability to guide policymakers, businesses, and investors in making informed decisions based on the health and sustainability of a nation's economy. A rising ANNI growth rate typically indicates improved economic performance, suggesting that the nation is not only producing wealth but also effectively managing its resources. In contrast, a declining rate may serve as a warning sign of economic troubles, such as overconsumption, resource depletion, or ineffective policies that hinder sustainable growth.

Further, ANNI growth interacts closely with several other economic indicators. For instance, it can reflect trends in gross domestic product (GDP), income inequality measures, and environmental sustainability indices. A robust ANNI could suggest that GDP growth is accompanied by improvements in the standard of living and equitable resource distribution, thereby indicating a healthier socio-economic environment. Conversely, if GDP rises while ANNI declines, it may signal that the growth is driven by unsustainable practices or that the benefits are not reaching the average citizen.

Factors influencing ANNI growth include natural resource availability, economic policies, domestic and international investments, demographic changes, and environmental changes. For example, resource-rich countries may experience spikes in ANNI growth due to booming commodity prices, while nations that face environmental degradation may see declines as the depletion of natural resources directly impacts income. Additionally, strong educational systems and a highly skilled workforce contribute positively to ANNI. Conversely, political instability, corruption, and poor governance can have detrimental effects, inhibiting investment and economic activities.

To enhance ANNI growth, nations can adopt various strategies. Firstly, investing in education and skills development can create a more competent workforce that drives innovation and productivity. Secondly, governments can focus on sustainable environmental policies that balance resource extraction and conservation. Encouraging private sector growth through favorable tax policies and reducing bureaucratic hurdles can also lead to a more dynamic economy. Moreover, strengthening infrastructure and promoting technological advancements can foster new industries and job creation.

Several solutions can be employed to address shortcomings in ANNI growth. Countries can improve data collection and analysis to foster better policy creation and implementation. International collaboration in areas such as technology transfer and sustainable practices can provide developing economies with the tools necessary for progress. Furthermore, transparency in governance and public spending can ensure that economic benefits are broadly distributed, enhancing overall national welfare.

However, flaws exist within the ANNI framework. The assessment can be limited by the availability and reliability of data across different regions, leading to challenges in drawing accurate comparisons. Additionally, ANNI does not account for all forms of economic inequality, meaning that even if ANNI is rising, wealth may still be concentrated among a small elite. Furthermore, the metric may inadequately portray the environmental costs associated with wealth generation, as it primarily focuses on income and neglects broader ecological impacts.

In the latest available data for 2021, the global median value for adjusted net national income growth was 3.84. This value provides context for individual nations’ performances within the global economy. For example, the top five areas demonstrating exceptional ANNI growth included Zimbabwe at 38.98%, Congo - Brazzaville at 35.67%, Libya at 31.54%, Maldives at 24.80%, and Iraq at 21.25%. These impressive percentages indicate significant economic recovery or growth, potentially driven by improved governance, reinvestment of resource earnings, or other favorable economic conditions.

Conversely, the bottom five areas showed alarming declines in ANNI growth, with Timor-Leste at -65.66%, Afghanistan at -19.51%, Lebanon at -16.20%, Mongolia at -9.10%, and Mali at -8.59%. These negative figures highlight severe economic challenges, possibly due to political instability, conflict, or significant resource depletion. The striking contrast between these top and bottom performers underscores the vast disparities present in global economic conditions.

When examining historical world values for this indicator, trends reveal significant fluctuations throughout the decades. From a high of 5.75 in 1973 to a low of -4.08 in 2020, the standard deviations reflect the impacts of various global crises, including oil shocks and economic recessions. The recovery seen in the 2021 values with a global rise to 5.40 suggests that nations are beginning to rebound from the effects of the COVID-19 pandemic, but sustainable growth will require ongoing attention to resource management, governance, and equitable wealth distribution.

                    
# 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.NNTY.KD.ZG'

# 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.NNTY.KD.ZG'

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