2023 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 2023. The headings indicate the name of the variable in the data.
The World Bank. 2024. "Indicators." Accessed 9 July 2024. 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 Population 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
Refugees by Origin
Refugee population by country or territory of origin
https://data.worldbank.org/indicator/SM.POP.REFG.OR?view=chart
Refugees by Destination
Refugee population by country or territory of asylum (2022 with latest data earlier for some countries)
https://data.worldbank.org/indicator/SM.POP.REFG?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
Renewable Percent
Renewable energy consumption (% of total final energy consumption) (2015 with latest data earlier for some countries)
https://data.worldbank.org/indicator/EG.USE.COMM.FO.ZS?view=chart
CO2 Tonnes per Capita
CO2 emissions (metric tons per capita)
https://data.worldbank.org/indicator/EN.ATM.CO2E.PC?view=chart
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: Python Code Used to Compile the Data
import pandas import geopandas import matplotlib.pyplot as plt countries = geopandas.read_file("https://michaelminn.net/tutorials/data/2024-natural-earth-countries.geojson") countries = countries[["NAME", "ISO_A3", "geometry"]] countries = countries.rename(columns={"NAME":"Country Name", "ISO_A3":"Country Code"}) indicators = { "Population": "SP.POP.TOTL", "Working Age Population 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", "Refugees by Origin": "SM.POP.REFG.OR", "Refugees by Destination": "SM.POP.REFG", "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", "CO2 Tonnes per Capita": "EN.ATM.CO2E.PC", "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", "Renewable Percent": "EG.USE.COMM.FO.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"} # The API will fail sporadically with an error 400 # You can manually re-run this section to start # with the first column that remains to be filled. for varname, indicator in indicators.items(): print(varname, indicator) if varname in countries.columns: continue url = "https://api.worldbank.org/v2/country/all/indicator/" + indicator + "?mrnev=1&per_page=300" data = pandas.read_xml(url) data = data[["countryiso3code", "value"]] data = data.rename(columns = {"countryiso3code":"Country Code", "value":varname}) countries = countries.merge(data, how="left") countries = countries.sort_values("Country Name") # kg oil to MM BTU countries["Energy MM BTU per Capita"] = countries["Energy MM BTU per Capita"] * 39653 / 1000000 countries.describe().transpose() countries.to_file("2023-world-bank-indicators.geojson") csv = countries.drop(["geometry"], axis=1) csv.to_csv("2023-world-bank-indicators.csv") projected = countries.to_crs("ESRI:54030") axis = projected.plot("Energy MM BTU per Capita", scheme="quantiles", cmap="coolwarm_r", legend=True, legend_kwds={"bbox_to_anchor":(0.2, 0.4)}) axis.set_axis_off() plt.show()