What you should know about this indicator
- Polio vaccines are given either as an oral polio vaccine (OPV), using a weakened live virus, or as an inactivated polio vaccine (IPV), using a killed virus given by injection.
- The oral polio vaccine protects against poliovirus and interrupts its transmission, but it carries a very small risk of vaccine-associated paralytic polio, occurring in about 1 per 2–3 million vaccine doses.
- The inactivated polio vaccine protects against all types of poliovirus (types 1, 2, and 3) and does not carry the risk of vaccine-associated paralytic polio associated with OPV.
- Where the risk of polio is high, the OPV is often given alongside the IPV, since it provides additional protection against poliovirus transmission. Where the risk of polio is low, countries only recommend the IPV, as the risk of vaccine-associated paralytic polio from OPV outweighs the benefits of immunity.
- Many countries have moved from OPV-only schedules to using IPV alongside or instead of OPV, following the global phased withdrawal of oral polio vaccines as part of the polio eradication endgame.
- Data is based on the most recent national immunization schedule reported by each country through the WHO/UNICEF Joint Reporting Form on Immunization.
More Data on Vaccination
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.
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: Polio vaccine schedule”, part of the following publication: Fiona Spooner, Saloni Dattani, Samantha Vanderslott, and Max Roser (2022) - “Vaccination”. Data adapted from World Health Organization. Retrieved from https://archive.ourworldindata.org/20261009-115530/grapher/polio-vaccine-schedule.html [online resource] (archived on October 9, 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 Health Organization (2026) – with minor processing by Our World in DataFull citation
World Health Organization (2026) – with minor processing by Our World in Data. “Polio vaccine schedule – WHO” [dataset]. World Health Organization, “Vaccination schedule for Poliomyelitis” [original data]. Retrieved October 10, 2026 from https://archive.ourworldindata.org/20261009-115530/grapher/polio-vaccine-schedule.html (archived on October 9, 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/polio-vaccine-schedule.csv?v=1&csvType=full&useColumnShortNames=falseMetadata URL (JSON format)
https://ourworldindata.org/grapher/polio-vaccine-schedule.metadata.json?v=1&csvType=full&useColumnShortNames=falseExcel / Google Sheets
=IMPORTDATA("https://ourworldindata.org/grapher/polio-vaccine-schedule.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/polio-vaccine-schedule.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/polio-vaccine-schedule.metadata.json?v=1&csvType=full&useColumnShortNames=false").json()R
library(jsonlite)
# Fetch the data
df <- read.csv("https://ourworldindata.org/grapher/polio-vaccine-schedule.csv?v=1&csvType=full&useColumnShortNames=false")
# Fetch the metadata
metadata <- fromJSON("https://ourworldindata.org/grapher/polio-vaccine-schedule.metadata.json?v=1&csvType=full&useColumnShortNames=false")Stata
import delimited "https://ourworldindata.org/grapher/polio-vaccine-schedule.csv?v=1&csvType=full&useColumnShortNames=false", encoding("utf-8") clear