Age dependency ratio (% of working-age population)

Source: worldbank.org, 01.09.2025

Year: 2024

Flag Country Value Value change, % Rank
Aruba Aruba 51.3 +1.56% 143
Afghanistan Afghanistan 82.8 -1.26% 14
Angola Angola 89.4 -0.721% 10
Albania Albania 51 +1.9% 146
Andorra Andorra 38.6 +0.827% 201
United Arab Emirates United Arab Emirates 21.8 -1.06% 215
Argentina Argentina 51.6 -1.65% 140
Armenia Armenia 49.1 +0.835% 157
American Samoa American Samoa 54 -0.0463% 116
Antigua & Barbuda Antigua & Barbuda 42 +0.617% 194
Australia Australia 55.2 +0.691% 104
Austria Austria 53.5 +1.64% 127
Azerbaijan Azerbaijan 43.6 +0.0587% 187
Burundi Burundi 89.5 -2.55% 9
Belgium Belgium 57.6 +0.511% 87
Benin Benin 80.7 -1.02% 15
Burkina Faso Burkina Faso 80 -2.27% 17
Bangladesh Bangladesh 52.6 -0.854% 129
Bulgaria Bulgaria 57.5 +0.581% 89
Bahrain Bahrain 29.1 -0.341% 213
Bahamas Bahamas 42.2 -0.656% 192
Bosnia & Herzegovina Bosnia & Herzegovina 54.5 +1.8% 110
Belarus Belarus 51.4 +1.02% 141
Belize Belize 46.2 -1.06% 175
Bermuda Bermuda 54.7 +2.49% 108
Bolivia Bolivia 54.9 -1.15% 106
Brazil Brazil 44.3 +0.683% 182
Barbados Barbados 51 +0.95% 144
Brunei Brunei 38.3 +0.792% 202
Bhutan Bhutan 37.7 -2.11% 203
Botswana Botswana 56.7 -0.369% 96
Central African Republic Central African Republic 105 -0.429% 1
Canada Canada 53.6 +1.1% 123
Switzerland Switzerland 53.8 +1.54% 120
Chile Chile 45.1 +0.11% 178
China China 44.2 -1.09% 185
Côte d’Ivoire Côte d’Ivoire 76.9 -1.47% 24
Cameroon Cameroon 79.3 -1.2% 20
Congo - Kinshasa Congo - Kinshasa 96.5 -0.192% 5
Congo - Brazzaville Congo - Brazzaville 76.8 -1.48% 25
Colombia Colombia 43 +0.369% 190
Comoros Comoros 71.2 -1.15% 41
Cape Verde Cape Verde 47.9 -2.45% 164
Costa Rica Costa Rica 45 -0.119% 179
Cuba Cuba 46.8 +0.711% 167
Curaçao Curaçao 46.4 +0.862% 171
Cayman Islands Cayman Islands 33.7 +1.88% 210
Cyprus Cyprus 44.3 +1.48% 183
Czechia Czechia 56.8 +0.1% 95
Germany Germany 59 +1.73% 79
Djibouti Djibouti 51.6 -1.28% 139
Dominica Dominica 44.6 -0.112% 180
Denmark Denmark 57.6 +0.412% 86
Dominican Republic Dominican Republic 52.6 -0.162% 130
Algeria Algeria 58.5 -0.45% 84
Ecuador Ecuador 48.8 -1.34% 159
Egypt Egypt 59 -1.25% 78
Eritrea Eritrea 73.4 -1.98% 33
Spain Spain 51.7 +0.692% 138
Estonia Estonia 58.6 +0.226% 83
Ethiopia Ethiopia 73.3 -1.01% 34
Finland Finland 62.7 +0.074% 64
Fiji Fiji 50.6 -0.661% 147
France France 63 +0.498% 62
Faroe Islands Faroe Islands 60.5 -0.759% 70
Micronesia (Federated States of) Micronesia (Federated States of) 60.8 -0.267% 68
Gabon Gabon 68.3 -0.566% 50
United Kingdom United Kingdom 57.9 +0.162% 85
Georgia Georgia 57.3 +0.338% 91
Ghana Ghana 65.4 -1.18% 57
Gibraltar Gibraltar 54.5 +0.00102% 111
Guinea Guinea 79.7 -1.32% 18
Gambia Gambia 76.4 -1.54% 27
Guinea-Bissau Guinea-Bissau 72.3 -1.66% 36
Equatorial Guinea Equatorial Guinea 69.4 -0.554% 45
Greece Greece 59.1 +0.384% 75
Grenada Grenada 46.4 -0.168% 172
Greenland Greenland 46.2 +3.26% 173
Guatemala Guatemala 57.3 -1.9% 92
Guam Guam 62.8 +1.91% 63
Guyana Guyana 56 +0.404% 101
Hong Kong SAR China Hong Kong SAR China 49.6 +3.84% 155
Honduras Honduras 53.9 -1.09% 117
Croatia Croatia 59 +0.676% 77
Haiti Haiti 56 -1.28% 102
Hungary Hungary 54.8 +0.395% 107
Indonesia Indonesia 46.8 -0.444% 166
Isle of Man Isle of Man 59.7 +0.601% 72
India India 46.6 -0.956% 168
Ireland Ireland 52.5 -0.491% 132
Iran Iran 44.3 -0.353% 184
Iraq Iraq 66.7 -2.03% 52
Iceland Iceland 50.2 +0.0178% 150
Israel Israel 66.6 -0.284% 53
Italy Italy 57.5 +0.667% 88
Jamaica Jamaica 36.8 -0.427% 207
Jordan Jordan 54.3 -1.55% 114
Japan Japan 70.1 +0.0238% 44
Kazakhstan Kazakhstan 61.4 +0.764% 66
Kenya Kenya 66.1 -2.3% 54
Kyrgyzstan Kyrgyzstan 61.4 -0.318% 67
Cambodia Cambodia 56.1 -0.497% 100
Kiribati Kiribati 63.7 -0.487% 61
St. Kitts & Nevis St. Kitts & Nevis 41.7 +1.86% 196
South Korea South Korea 42.5 +2.61% 191
Kuwait Kuwait 27.1 -1.37% 214
Laos Laos 53.5 -1% 125
Lebanon Lebanon 57 -0.925% 94
Liberia Liberia 74.9 -1.78% 29
Libya Libya 48 -1.84% 163
St. Lucia St. Lucia 37.3 -0.073% 206
Liechtenstein Liechtenstein 53.8 +2.13% 118
Sri Lanka Sri Lanka 51.8 +0.152% 137
Lesotho Lesotho 62.3 -1.57% 65
Lithuania Lithuania 53.5 +0.571% 124
Luxembourg Luxembourg 45.5 +1.54% 177
Latvia Latvia 59.1 +0.537% 76
Macao SAR China Macao SAR China 39.2 +3.05% 200
Saint Martin (French part) Saint Martin (French part) 66 +6.09% 55
Morocco Morocco 51 -0.399% 145
Monaco Monaco 98.6 +0.415% 2
Moldova Moldova 56.3 +1.73% 98
Madagascar Madagascar 74.4 -0.997% 31
Maldives Maldives 32 -0.876% 211
Mexico Mexico 48.7 -0.662% 160
Marshall Islands Marshall Islands 64.2 +0.118% 59
North Macedonia North Macedonia 53.5 +1.23% 126
Mali Mali 94.3 -1.35% 6
Malta Malta 49.8 +1.32% 152
Myanmar (Burma) Myanmar (Burma) 46.2 +0.00037% 174
Montenegro Montenegro 56.1 +0.698% 99
Mongolia Mongolia 59.6 -0.724% 74
Northern Mariana Islands Northern Mariana Islands 46.5 +2.03% 169
Mozambique Mozambique 89.5 -1.15% 8
Mauritania Mauritania 85 -1.25% 11
Mauritius Mauritius 39.5 +1.35% 199
Malawi Malawi 76.3 -2.48% 28
Malaysia Malaysia 41.9 -1.03% 195
Namibia Namibia 68.5 -0.869% 47
New Caledonia New Caledonia 48.7 +0.526% 161
Niger Niger 96.8 -1.36% 3
Nigeria Nigeria 78.8 -1.84% 21
Nicaragua Nicaragua 52.2 -1.28% 135
Netherlands Netherlands 55.1 +0.85% 105
Norway Norway 53.8 -0.292% 119
Nepal Nepal 53.7 -0.62% 122
Nauru Nauru 68.4 -0.946% 48
New Zealand New Zealand 54.6 +0.62% 109
Oman Oman 37.7 -2.61% 204
Pakistan Pakistan 69.4 -1.1% 46
Panama Panama 52.1 -0.376% 136
Peru Peru 49.7 -0.683% 153
Philippines Philippines 50.1 -2.26% 151
Palau Palau 42 +0.94% 193
Papua New Guinea Papua New Guinea 58.6 -0.89% 82
Poland Poland 53.7 +1.29% 121
Puerto Rico Puerto Rico 57.1 +0.428% 93
North Korea North Korea 45.7 +1.59% 176
Portugal Portugal 59.6 +1.41% 73
Paraguay Paraguay 54.1 -0.108% 115
Palestinian Territories Palestinian Territories 72.1 -1.17% 38
French Polynesia French Polynesia 43.7 -0.157% 186
Qatar Qatar 20.1 +0.0997% 216
Romania Romania 55.5 +0.293% 103
Russia Russia 52.6 +1.5% 131
Rwanda Rwanda 70.3 -1.09% 43
Saudi Arabia Saudi Arabia 36.6 -0.748% 208
Sudan Sudan 77.9 -0.357% 22
Senegal Senegal 71.8 -1.71% 39
Singapore Singapore 33.9 +2.47% 209
Solomon Islands Solomon Islands 68.4 -1.56% 49
Sierra Leone Sierra Leone 70.4 -1.66% 42
El Salvador El Salvador 49.2 -1.15% 156
San Marino San Marino 53.1 +1.29% 128
Somalia Somalia 96.8 -0.234% 4
Serbia Serbia 58.7 +1.33% 80
South Sudan South Sudan 72.1 -3.44% 37
São Tomé & Príncipe São Tomé & Príncipe 71.6 -1.71% 40
Suriname Suriname 50.5 -0.132% 149
Slovakia Slovakia 52.2 +1.53% 134
Slovenia Slovenia 57.4 +0.977% 90
Sweden Sweden 60.6 -0.228% 69
Eswatini Eswatini 60.3 -0.855% 71
Sint Maarten Sint Maarten 41 +0.333% 197
Seychelles Seychelles 39.8 +0.0967% 198
Syria Syria 51.3 -4.83% 142
Turks & Caicos Islands Turks & Caicos Islands 37.6 +1.04% 205
Chad Chad 92.9 -2.56% 7
Togo Togo 74.6 -1.25% 30
Thailand Thailand 43.1 +1.46% 189
Tajikistan Tajikistan 67 -0.18% 51
Turkmenistan Turkmenistan 56.3 +0.41% 97
Timor-Leste Timor-Leste 63.8 -2.6% 60
Tonga Tonga 72.8 -0.439% 35
Trinidad & Tobago Trinidad & Tobago 43.1 +1.23% 188
Tunisia Tunisia 50.5 -0.146% 148
Turkey Turkey 46.5 -0.495% 170
Tuvalu Tuvalu 65.6 +3.14% 56
Tanzania Tanzania 83.8 -0.747% 13
Uganda Uganda 84.3 -1.43% 12
Ukraine Ukraine 48.9 -0.00947% 158
Uruguay Uruguay 52.3 -0.707% 133
United States United States 54.4 +1% 112
Uzbekistan Uzbekistan 58.6 +1.74% 81
St. Vincent & Grenadines St. Vincent & Grenadines 49.7 -0.125% 154
Venezuela Venezuela 54.3 -1.22% 113
British Virgin Islands British Virgin Islands 31.8 -1.23% 212
U.S. Virgin Islands U.S. Virgin Islands 64.4 +1.8% 58
Vietnam Vietnam 47.6 +0.202% 165
Vanuatu Vanuatu 74.2 -0.904% 32
Samoa Samoa 79.7 -0.358% 19
Kosovo Kosovo 44.5 -0.716% 181
Yemen Yemen 77.5 -0.333% 23
South Africa South Africa 48.3 -0.117% 162
Zambia Zambia 76.7 -1.81% 26
Zimbabwe Zimbabwe 80.1 -1.87% 16

The Age Dependency Ratio (ADR) is a critical demographic indicator that measures the ratio of dependents, defined as individuals aged 0-14 and those aged 65 and above, to the working-age population, generally considered to be those aged 15-64 years. Expressed as a percentage of the working-age cohort, this ratio offers insights into the economic pressures faced by the productive section of a population. A higher ADR implies a greater burden on the workforce, which must support more dependents through taxation, social security, and other social services, whereas a lower ADR suggests that a greater proportion of the population is economically productive.

In 2023, the world exhibited a median age dependency ratio of 54.57%. This figure reflects an important transitional phase for many societies worldwide, indicating that over half of the working-age population is supporting dependents. Analyzing this median against historical data reveals notable trends. For instance, in 1960, the global ADR was markedly higher at 74.48%, suggesting that over the decades, many regions have transitioned towards lower ratios due in part to declining birth rates and increasing life expectancy. As we evaluate this decrease in age dependency, it is essential to link this ratio with other demographic and economic indicators such as birth rates, life expectancy, and the employment rate.

The highest age dependency ratios in 2023 were observed in the Central African Republic (105.18%), Niger (98.16%), Monaco (98.16%), Somalia (97.02%), and Congo - Kinshasa (96.68%). Such high values are indicative of significant demographic challenges. Countries like the Central African Republic face severe economic strains, exacerbated by political instability, which impedes growth and limits the productive capacity of the workforce. High dependency ratios correlate strongly with low economic growth rates because when the working-age population must support a large number of dependents, resources become stretched. This is particularly critical in regions of high poverty where families rely heavily on government services.

In contrast, the lowest age dependency ratios noted in Qatar (20.1%), the United Arab Emirates (22.0%), Kuwait (27.48%), Bahrain (29.25%), and the British Virgin Islands (32.17%) showcase an entirely different demographic landscape. These nations benefit from a relatively smaller proportion of dependents compared to their working-age population. The low age dependency ratios in these areas often reflect robust economic conditions characterized by high employment rates and lucrative job markets. Furthermore, these high-income countries have the resources to invest in technology and infrastructure that further alleviate pressures on their workforce.

Considering the relationships between age dependency ratios and other indicators, it becomes evident that this ratio can offer crucial insights into overall economic health and societal structure. For instance, a country’s educational attainment and health care system often directly influence its age dependency ratio. Higher educational attainment generally leads to delayed childbirth and reduced fertility rates, thus contributing to a lower ADR. Improved healthcare also means higher life expectancy, which, when combined with lower birth rates, shifts the population demographic towards older age brackets, thereby influencing the dependency ratio. Conversely, a high birth rate—common in developing countries—has historically led to elevated dependency ratios, creating economic burdens for societies that may not have the infrastructure or resources to support growth.

Factors affecting the age dependency ratio are multifaceted, encompassing economic, social, and political dimensions. Changes in governmental policies regarding health care or retirement can influence the ratio by either extending the working age or altering the support structures for the elderly. Economic changes, such as shifts from agrarian to industrial economies, can lead to varying family dynamics, influencing both fertility rates and lifespan. Additionally, migration patterns work as a double-edged sword; as young individuals seek opportunities abroad, the countries they leave may experience rising dependency ratios while the destination countries experience a workforce bolstered by younger workers.

To address challenges posed by high dependency ratios, various strategies can be implemented. Improving access to education, particularly for women, is paramount as it often leads to delayed family formation and reduced fertility. Policies that promote family planning and reproductive health can empower citizens to make informed decisions about procreation, leading to lower birth rates. Furthermore, investing in the health care system ensures longevity, support for the elderly, and the overall well-being of the dependents. Gradually increasing the retirement age can also capitalize on the talent pool of older adults, contributing positively to the workforce.

Nonetheless, solutions are not without their flaws. Strategies that focus on increasing employment opportunities must be grounded in an understanding of local job markets and economic realities. Encouraging higher birth rates, for instance, through incentives, could backfire if not accompanied by adequate support systems for families, including childcare services and parental leave policies.

In conclusion, the Age Dependency Ratio serves as a mirror reflecting the demographic pressures faced by societies worldwide. Its implications are profound, affecting economic stability, social structures, and policy decisions. As we move forward into an increasingly complex global landscape, understanding the nuances of the age dependency ratio will be vital in crafting policies that aim for sustainable economic growth and social equity.

                    
# 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 = 'SP.POP.DPND'

# 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 <- 'SP.POP.DPND'

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