Data

CO₂ reductions needed to keep global temperature rise below 1.5°C

About this data

CO₂ reductions needed to keep global temperature rise below 1.5°C
The range of CO2 mitigation curves to have a >66% chance of keeping global average temperature rise below 1.5°C. Scenarios measure future global annual emissions necessary based on a given start year for emissions mitigation.
Source
Robbie Andrew (2019)processed by Our World in Data
Last updated
December 3, 2019
Date range
1750–2100
Unit
tonnes

Sources and processing

Robbie Andrew – CO2 mitigation curves for 1.5°C

The range of CO2 mitigation curves for a range of "start year scenarios": scenarios are based on the annual emission reductions necessary to keep global temperature rise below 1.5°C if emissions mitigation was to start in a given year.

For example, "Start in 2010" marks the necessary future emissions pathway to have a >66% chance of keeping global average temperatures below 1.5°C warming if global CO2 emissions mitigation had started in 2010, very quickly peaking then falling.

Historical emissions to 2017 are sourced from CDIAC/Global Carbon Project, projection to 2018 from Global Carbon Project (Le Quéré et al. 2018).

Global cumulative CO2 emissions budgets are from the IPCC Special Report on 1.5°C (Rogelj et al. 2018): 420 GtCO2 for a 66% chance of 1.5°C and 1170 GtCO2 for a 66% chance of 2°C. Mitigation curves describe approximately exponential decay pathways such that the quota is never exceeded (see Raupach et al., 2014).

Retrieved on
September 28, 2022
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.
Andrew, R. M. (2019). Global CO2 mitigation curves. https://folk.universitetetioslo.no/roberan/t/global_mitigation_curves.shtml.

The range of CO2 mitigation curves for a range of "start year scenarios": scenarios are based on the annual emission reductions necessary to keep global temperature rise below 1.5°C if emissions mitigation was to start in a given year.

For example, "Start in 2010" marks the necessary future emissions pathway to have a >66% chance of keeping global average temperatures below 1.5°C warming if global CO2 emissions mitigation had started in 2010, very quickly peaking then falling.

Historical emissions to 2017 are sourced from CDIAC/Global Carbon Project, projection to 2018 from Global Carbon Project (Le Quéré et al. 2018).

Global cumulative CO2 emissions budgets are from the IPCC Special Report on 1.5°C (Rogelj et al. 2018): 420 GtCO2 for a 66% chance of 1.5°C and 1170 GtCO2 for a 66% chance of 2°C. Mitigation curves describe approximately exponential decay pathways such that the quota is never exceeded (see Raupach et al., 2014).

Retrieved on
September 28, 2022
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.
Andrew, R. M. (2019). Global CO2 mitigation curves. https://folk.universitetetioslo.no/roberan/t/global_mitigation_curves.shtml.

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: CO₂ reductions needed to keep global temperature rise below 1.5°C”. Our World in Data (2026). Data adapted from Robbie Andrew. Retrieved from https://archive.ourworldindata.org/20260512-000143/grapher/co2-mitigation-15c.html [online resource] (archived on May 12, 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:

Robbie Andrew (2019) – processed by Our World in Data

Full citation

Robbie Andrew (2019) – processed by Our World in Data. “CO₂ reductions needed to keep global temperature rise below 1.5°C” [dataset]. Robbie Andrew, “CO2 mitigation curves for 1.5°C” [original data]. Retrieved May 13, 2026 from https://archive.ourworldindata.org/20260512-000143/grapher/co2-mitigation-15c.html (archived on May 12, 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/co2-mitigation-15c.csv?v=1&csvType=full&useColumnShortNames=false
Metadata URL (JSON format)
https://ourworldindata.org/grapher/co2-mitigation-15c.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/co2-mitigation-15c.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/co2-mitigation-15c.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/co2-mitigation-15c.metadata.json?v=1&csvType=full&useColumnShortNames=false").json()
R
library(jsonlite)

# Fetch the data
df <- read.csv("https://ourworldindata.org/grapher/co2-mitigation-15c.csv?v=1&csvType=full&useColumnShortNames=false")

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