Data

Average learning outcomes

See all data and research on:

What you should know about this indicator

  • Harmonized learning outcomes combine student test results into scores that can be compared across countries.
  • This data includes developing countries that are often missing from major international tests by incorporating regional assessments.
  • The data combines well-known international tests like TIMSS, PIRLS, and PISA with regional tests like SACMEQ.
  • Test scores are adjusted using statistical methods so they can be compared fairly across different subjects, grade levels, and testing years.
  • This creates a dataset where countries can be compared on the same scale, accounting for differences in when tests were taken and what grades were tested.
  • The scoring system is based on TIMSS standards where 300 points represents basic skills and 625 points shows advanced performance.
  • Higher scores mean students in that country typically perform better on these academic tests, though the tests don't cover all subjects or age groups.
Average learning outcomes
Average learning outcomes correspond to test scores across standardized, psychometrically-robust international and regional student achievement tests.
Source
World Bank (2024)processed by Our World in Data
Last updated
August 20, 2025
Next expected update
August 2026
Date range
2010–2020
Unit
score

Sources and processing

World Bank – Human Capital Index - Harmonized Test Scores

This indicator reflects student achievement levels across major international testing programs, standardized for comparability. Harmonized test scores are measured in TIMSS-equivalent units, where a score of 300 represents minimal attainment, and 625 indicates advanced attainment. Test scores are included from the following programs: TIMSS/PIRLS, PISA, PISA+TIMSS/PIRLS, SACMEQ, PASEC, LLECE, PILNA, EGRA, and EGRANR. The methodology is detailed in Patrinos and Angrist (2018), Global Dataset on Education Quality: A Review and Update (2000-2017). Name in source: Harmonized Test Scores.

Retrieved on
August 20, 2025
Citation
This is the citation of the original data obtained from the source, prior to any processing or adaptation by Our World in Data. To cite data downloaded from this page, please use the suggested citation given in Reuse This Work below.
World Bank. Human Capital Project (HCP). Human Capital Index - Harmonized Test Scores. https://www.worldbank.org/en/publication/human-capital

This indicator reflects student achievement levels across major international testing programs, standardized for comparability. Harmonized test scores are measured in TIMSS-equivalent units, where a score of 300 represents minimal attainment, and 625 indicates advanced attainment. Test scores are included from the following programs: TIMSS/PIRLS, PISA, PISA+TIMSS/PIRLS, SACMEQ, PASEC, LLECE, PILNA, EGRA, and EGRANR. The methodology is detailed in Patrinos and Angrist (2018), Global Dataset on Education Quality: A Review and Update (2000-2017). Name in source: Harmonized Test Scores.

Retrieved on
August 20, 2025
Citation
This is the citation of the original data obtained from the source, prior to any processing or adaptation by Our World in Data. To cite data downloaded from this page, please use the suggested citation given in Reuse This Work below.
World Bank. Human Capital Project (HCP). Human Capital Index - Harmonized Test Scores. https://www.worldbank.org/en/publication/human-capital

All data and visualizations on Our World in Data rely on data sourced from one or several original data providers. Preparing this original data involves several processing steps. Depending on the data, this can include standardizing country names and world region definitions, converting units, calculating derived indicators such as per capita measures, as well as adding or adapting metadata such as the name or the description given to an indicator.

At the link below you can find a detailed description of the structure of our data pipeline, including links to all the code used to prepare data across Our World in Data.

Read about our data pipeline

How to cite this page

To cite this page overall, including any descriptions, FAQs or explanations of the data authored by Our World in Data, please use the following citation:

“Data Page: Average learning outcomes”, part of the following publication: Hannah Ritchie, Veronika Samborska, Esteban Ortiz-Ospina, and Max Roser (2023) - “Global Education”. Data adapted from World Bank. Retrieved from https://archive.ourworldindata.org/20260304-094028/grapher/average-harmonized-learning-outcome-scores.html [online resource] (archived on March 4, 2026).

How to cite this data

In-line citationIf you have limited space (e.g. in data visualizations), you can use this abbreviated in-line citation:

World Bank (2024) – processed by Our World in Data

Full citation

World Bank (2024) – processed by Our World in Data. “Average learning outcomes” [dataset]. World Bank, “Human Capital Index - Harmonized Test Scores” [original data]. Retrieved April 1, 2026 from https://archive.ourworldindata.org/20260304-094028/grapher/average-harmonized-learning-outcome-scores.html (archived on March 4, 2026).

Quick download

Download the data shown in this chart as a ZIP file containing a CSV file, metadata in JSON format, and a README. The CSV file can be opened in Excel, Google Sheets, and other data analysis tools.

Data API

Use these URLs to programmatically access this chart's data and configure your requests with the options below. Our documentation provides more information on how to use the API, and you can find a few code examples below.

Data URL (CSV format)
https://ourworldindata.org/grapher/average-harmonized-learning-outcome-scores.csv?v=1&csvType=full&useColumnShortNames=false
Metadata URL (JSON format)
https://ourworldindata.org/grapher/average-harmonized-learning-outcome-scores.metadata.json?v=1&csvType=full&useColumnShortNames=false

Code examples

Examples of how to load this data into different data analysis tools.

Excel / Google Sheets
=IMPORTDATA("https://ourworldindata.org/grapher/average-harmonized-learning-outcome-scores.csv?v=1&csvType=full&useColumnShortNames=false")
Python with Pandas
import pandas as pd
import requests

# Fetch the data.
df = pd.read_csv("https://ourworldindata.org/grapher/average-harmonized-learning-outcome-scores.csv?v=1&csvType=full&useColumnShortNames=false", storage_options = {'User-Agent': 'Our World In Data data fetch/1.0'})

# Fetch the metadata
metadata = requests.get("https://ourworldindata.org/grapher/average-harmonized-learning-outcome-scores.metadata.json?v=1&csvType=full&useColumnShortNames=false").json()
R
library(jsonlite)

# Fetch the data
df <- read.csv("https://ourworldindata.org/grapher/average-harmonized-learning-outcome-scores.csv?v=1&csvType=full&useColumnShortNames=false")

# Fetch the metadata
metadata <- fromJSON("https://ourworldindata.org/grapher/average-harmonized-learning-outcome-scores.metadata.json?v=1&csvType=full&useColumnShortNames=false")
Stata
import delimited "https://ourworldindata.org/grapher/average-harmonized-learning-outcome-scores.csv?v=1&csvType=full&useColumnShortNames=false", encoding("utf-8") clear