Public health expenditure as a share of GDP

What you should know about this indicator
This indicator combines three different datasets: Lindert (1994), OECD (1993), and the OECD Health Expenditure and Financing Database. We combine the two OECD datasets by using the implicit growth rate from the older series, so we can extend the series back to 1960. We also use the data from Lindert (1994) to extend the series to 1880.
Related research and writing
More Data on Healthcare Spending
Sources and processing
This data is based on the following sources
How we process data at Our World in Data
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.
Notes on our processing step for this indicator
We extrapolated the data available from the OECD Health Expenditure and Financing Database (Government/compulsory schemes) using the earliest available observation from this dataset and applying the growth rates implied by the OECD (1993) data to obtain a series starting in 1960. These steps are necessary because the data in these years is not exactly the same for the two datasets due to changes in definitions and measurement, though the trends are consistent for common years (1970-1991).
We don't transform the data from Lindert (1994), the values are the same as in the original source.
Reuse this work
Citations
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: Public health expenditure as a share of GDP”, part of the following publication: Esteban Ortiz-Ospina, Pablo Arriagada, and Max Roser (2017) - “Healthcare Spending”. Data adapted from OECD, Lindert. Retrieved from https://archive.ourworldindata.org/20260304-094028/grapher/public-health-expenditure-share-gdp.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:
OECD (2025); OECD (1993); Lindert (1994) – with major processing by Our World in DataFull citation
OECD (2025); OECD (1993); Lindert (1994) – with major processing by Our World in Data. “Public health expenditure as a share of GDP – Lindert, OECD – Historical data” [dataset]. OECD, “OECD Health Expenditure and Financing Database”; OECD, “OECD Health Systems”; Lindert, “The rise of social spending (1880-1930)” [original data]. Retrieved March 31, 2026 from https://archive.ourworldindata.org/20260304-094028/grapher/public-health-expenditure-share-gdp.html (archived on March 4, 2026).Download
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/public-health-expenditure-share-gdp.csv?v=1&csvType=full&useColumnShortNames=falseMetadata URL (JSON format)
https://ourworldindata.org/grapher/public-health-expenditure-share-gdp.metadata.json?v=1&csvType=full&useColumnShortNames=falseExcel / Google Sheets
=IMPORTDATA("https://ourworldindata.org/grapher/public-health-expenditure-share-gdp.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/public-health-expenditure-share-gdp.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/public-health-expenditure-share-gdp.metadata.json?v=1&csvType=full&useColumnShortNames=false").json()R
library(jsonlite)
# Fetch the data
df <- read.csv("https://ourworldindata.org/grapher/public-health-expenditure-share-gdp.csv?v=1&csvType=full&useColumnShortNames=false")
# Fetch the metadata
metadata <- fromJSON("https://ourworldindata.org/grapher/public-health-expenditure-share-gdp.metadata.json?v=1&csvType=full&useColumnShortNames=false")Stata
import delimited "https://ourworldindata.org/grapher/public-health-expenditure-share-gdp.csv?v=1&csvType=full&useColumnShortNames=false", encoding("utf-8") clear