2024 World Bank Indicators
These are a variety of development indicators collected by the World Bank. Data availability varies by country and in many cases are composites of the most recent years available up to 2024. The headings indicate the name of the variable in the data.
The World Bank. n.d. "Indicators." Accessed 8 February 2026. https://data.worldbank.org/indicator.
Geography
Country borders are from the Natural Earth large scale (1:10m) polygons for world countries (Admin 0 - Details)
Country Name
The country name as listed in the Natural Earth data (NAME)
Country Code
The ISO 3166 three letter country codes
Demographic Indicators
Population
Population, total
https://data.worldbank.org/indicator/SP.POP.TOTL?view=chart
Working Age Percent
Population ages 15-64 (% of total population)
https://data.worldbank.org/indicator/SP.POP.1564.TO.ZS?view=chart
Urban Population Percent
Urban population (% of total population)
https://data.worldbank.org/indicator/SP.URB.TOTL.IN.ZS?view=chart
Rural Population Percent
Rural population (% of total population)
https://data.worldbank.org/indicator/SP.RUR.TOTL.ZS?view=chart
Life Expectancy Years
Life expectancy at birth, total (years)
https://data.worldbank.org/indicator/SP.DYN.LE00.IN?view=chart
Environmental Indicators
Land Area Sq km
Land area (square km)
https://data.worldbank.org/indicator/AG.LND.TOTL.K2?view=chart
Forest Area Percent
Forest area (% of land area)
https://data.worldbank.org/indicator/AG.LND.FRST.ZS?view=chart
Agricultural Land Percent
Agricultural land (% of land area)
https://data.worldbank.org/indicator/AG.LND.AGRI.ZS?view=chart
Arable Land Percent
Arable land (cropland % of land area)
https://data.worldbank.org/indicator/AG.LND.ARBL.ZS?view=chart
Low Elevation Percent
Population living in areas where elevation is below 5 meters (% of total population) (2015)
https://data.worldbank.org/indicator/EN.POP.EL5M.ZS?view=chart
Water Percent
Annual freshwater withdrawals, total (% of internal resources)
https://data.worldbank.org/indicator/ER.H2O.FWTL.ZS?view=chart
Irrigation Percent
Agricultural irrigated land (% of total agricultural land) (2021 with latest data earlier for some countries)
https://data.worldbank.org/indicator/AG.LND.IRIG.AG.ZS?view=chart
Fertilizer Intensity
Fertilizer consumption (kilograms per hectare of arable land) (2021 with latest data earlier for some countries)
https://data.worldbank.org/indicator/AG.CON.FERT.ZS?view=chart
Economic Indicators
GDP per Capita PPP
GDP per capita, PPP (current international dollars for 2020 with latest data earlier for some countries)
https://data.worldbank.org/indicator/NY.GDP.PCAP.PP.CD?view=chart
Gini Index
Gini index of inequality: 0 for perfect inequality and 100 for perfectly even distribution of wealth (2021 with latest data earlier for some countries)
https://data.worldbank.org/indicator/SI.POV.GINI?view=chart
Agriculture Percent GDP
Agriculture, forestry, and fishing, value added (% of GDP) (2022 with latest data earlier for some countries)
https://data.worldbank.org/indicator/NV.AGR.TOTL.ZS?view=chart
Industry Percent GDP
Industry (including construction), value added (% of GDP) (2022 with latest data earlier for some countries)
https://data.worldbank.org/indicator/NV.IND.TOTL.ZS?view=chart
Military Percent GDP
Military expenditure (% of GDP) (2022 with latest data earlier for some countries)
https://data.worldbank.org/indicator/MS.MIL.XPND.GD.ZS?view=chart
Energy MM BTU per Capita
Energy use (kg of oil equivalent per capita) (2015 with latest data earlier for some countries)
Converted to MM BTU at a rate of 39,653 BTU per kg of oil
https://data.worldbank.org/indicator/EG.USE.PCAP.KG.OE?view=chart
CO2 Tonnes per Capita
Carbon dioxide (CO2) emissions excluding LULUCF per capita (t CO2e/capita)
https://data.worldbank.org/indicator/EN.GHG.CO2.PC.CE.AR5
Renewable Percent
Renewable energy consumption (% of total final energy consumption) (2015 with latest data earlier for some countries)
https://data.worldbank.org/indicator/EG.FEC.RNEW.ZS
Internet Percent
Individuals using the Internet (% of population)
https://data.worldbank.org/indicator/IT.NET.USER.ZS
Male Youth Unemployment
Unemployment, youth male (% of male labor force ages 15-24) (modeled ILO estimate)
https://data.worldbank.org/indicator/SL.UEM.1524.MA.ZS
Health Indicators
Attended Births %
Births attended by skilled health staff (% of total) (2020 with latest data earlier for some countries)
https://data.worldbank.org/indicator/SH.STA.BRTC.ZS?view=chart
Contraceptive %
Contraceptive prevalence, any methods (% of women ages 15-49) (2020 with latest data earlier for some countries)
https://data.worldbank.org/indicator/SP.DYN.CONU.ZS?view=chart
Diabetes %
Diabetes prevalence (% of population ages 20 to 79)
https://data.worldbank.org/indicator/SH.STA.DIAB.ZS?view=chart
HIV Prevalence %
Prevalence of HIV, total (% of population ages 15-49)
https://data.worldbank.org/indicator/SH.DYN.AIDS.ZS?view=chart
Immunized DPT %
Immunization, DPT (% of children ages 12-23 months)
https://data.worldbank.org/indicator/SH.IMM.IDPT
Immunized Measles %
Immunization, measles (% of children ages 12-23 months)
https://data.worldbank.org/indicator/SH.IMM.MEAS?view=chart
Mortality Communicable %
Cause of death, by communicable diseases and maternal, prenatal and nutrition conditions (% of total)
https://data.worldbank.org/indicator/SH.DTH.COMM.ZS
Mortality Infant per 1K
Mortality rate, infant (per 1,000 live births)
https://data.worldbank.org/indicator/SP.DYN.IMRT.IN
Mortality Injury %
Cause of death, by injury (% of total)
https://data.worldbank.org/indicator/SH.DTH.INJR.ZS?view=chart
Mortality Maternal per 100K
Maternal mortality ratio (modeled estimate, per 100,000 live births)
https://data.worldbank.org/indicator/SH.STA.MMRT?view=chart
Mortality Non-Communicable Deaths %
Cause of death, by non-communicable diseases (% of total)
https://data.worldbank.org/indicator/SH.DTH.NCOM.ZS?view=chart
Mortality Traffic per 100K
Mortality caused by road traffic injury (per 100,000 people) (2019 with latest data earlier for some countries)
https://data.worldbank.org/indicator/SH.STA.TRAF.P5?view=chart
Surgeons per 100K
Specialist surgical workforce (per 100,000 population) (2018 with latest data earlier for some countries)
https://data.worldbank.org/indicator/SH.MED.SAOP.P5
Teen Fertility per 1K
Adolescent fertility rate (births per 1,000 women ages 15-19)
https://data.worldbank.org/indicator/SP.ADO.TFRT
Tuberculosis per 100K
Incidence of tuberculosis (per 100,000 people)
https://data.worldbank.org/indicator/SH.TBS.INCD?view=chart
Undernourished Percent
Prevalence of undernourishment (% of population)
https://data.worldbank.org/indicator/SN.ITK.DEFC.ZS?view=chart
Appendix: R Code Used to Compile the Data
library(sf)
library(data.table)
countries = st_read("https://michaelminn.net/tutorials/data/2024-natural-earth-countries.geojson")
countries = countries[,c("NAME", "ISO_A3", "geometry")]
names(countries) = c("Country_Name", "Country_Code", "geometry")
indicators = c(
"Population" = "SP.POP.TOTL",
"Working_Age_Percent" = "SP.POP.1564.TO.ZS",
"Urban_Population_Percent" = "SP.URB.TOTL.IN.ZS",
"Rural_Population_Percent" = "SP.RUR.TOTL.ZS",
"Life_Expectancy_Years" = "SP.DYN.LE00.IN",
"Land_Area_Sq_km" = "AG.LND.TOTL.K2",
"Forest_Area_Percent" = "AG.LND.FRST.ZS",
"Agricultural_Land_Percent" = "AG.LND.AGRI.ZS",
"Arable_Land_Percent" = "AG.LND.ARBL.ZS",
"Low_Elevation_Percent" = "EN.POP.EL5M.ZS",
"Water_Percent" = "ER.H2O.FWTL.ZS",
"Irrigation_Percent" = "AG.LND.IRIG.AG.ZS",
"Fertilizer_Intensity" = "AG.CON.FERT.ZS",
"GDP_per_Capita_PPP" = "NY.GDP.PCAP.PP.CD",
"Gini_Index" = "SI.POV.GINI",
"Agriculture_Percent_GDP" = "NV.AGR.TOTL.ZS",
"Industry_Percent_GDP" = "NV.IND.TOTL.ZS",
"Military_Percent_GDP" = "MS.MIL.XPND.GD.ZS",
"Energy_MM_BTU_per_Capita" = "EG.USE.PCAP.KG.OE",
"CO2_Tonnes_per_Capita" = "EN.GHG.CO2.PC.CE.AR5",
"Renewable_Percent" = "EG.FEC.RNEW.ZS",
"Internet_Percent" = "IT.NET.USER.ZS",
"Male_Youth_Unemployment" = "SL.UEM.1524.MA.ZS",
"Attended_Births_Percent" = "SH.STA.BRTC.ZS",
"Contraceptive_Percent" = "SP.DYN.CONU.ZS",
"Diabetes_Percent" = "SH.STA.DIAB.ZS",
"HIV_Prevalence_Percent" = "SH.DYN.AIDS.ZS",
"Immunized_DPT_Percent" = "SH.IMM.IDPT",
"Immunized_Measles_Percent" = "SH.IMM.MEAS",
"Mortality_Communicable_Percent" = "SH.DTH.COMM.ZS",
"Mortality_Infant_per_1K" = "SP.DYN.IMRT.IN",
"Mortality_Injury_Percent" = "SH.DTH.INJR.ZS",
"Mortality_Maternal_per_100K" = "SH.STA.MMRT",
"Mortality_Non-Communicable_Deaths_Percent" = "SH.DTH.NCOM.ZS",
"Mortality_Traffic_per_100K" = "SH.STA.TRAF.P5",
"Surgeons_per_100K" = "SH.MED.SAOP.P5",
"Teen_Fertility_per_1K" = "SP.ADO.TFRT",
"Tuberculosis_per_100K" = "SH.TBS.INCD",
"Undernourished_Percent" = "SN.ITK.DEFC.ZS")
for (varname in names(indicators)) {
indicator = indicators[varname]
print(paste(varname, indicator))
url = paste0("https://api.worldbank.org/v2/en/indicator/", indicator, "?downloadformat=csv")
download.file(url, "temp.zip")
name_list = unzip("temp.zip", list=T)$Name
name_list = name_list[!grepl("Metadata", name_list)]
data = read.csv(unz("temp.zip", name_list), skip=4)
data[,varname] = sapply(1:nrow(data), function(x) suppressWarnings(as.numeric(data[x, last(which(!is.na(data[x,])))])))
data = data[,c("Country.Code", varname)]
names(data) = c("Country_Code", varname)
countries = merge(countries, data)
}
countries = countries[order(countries$Country_Name),]
# kg oil to MM BTU
countries[, "Energy_MM_BTU_per_Capita"] = countries[, "Energy_MM_BTU_per_Capita"] * 39653 / 1000000
summary(countries)
st_write(countries, "2024-world-bank-indicators.geojson", delete_dsn=T)
data = st_drop_geometry(countries)
write.csv(data, "2024-world-bank-indicators.csv", na="", row.names=F)
projected = st_transform(countries, st_crs("ESRI:54030")) # World Robinson
plot(projected["Energy_MM_BTU_per_Capita"], logz=T)