Plastics entering the ocean from rivers
What you should know about this indicator
- These estimates come from a statistical model that combines location-specific data with environmental factors. They are not direct measurements for every country and river.
- Annual emissions for a river basin are calculated by multiplying the mismanaged plastic waste in each location by its probability of reaching the ocean, then adding up all locations across the entire basin.
- These estimates focus on larger plastic items (typically bigger than 0.5 cm) that float on or near the water surface. They do not include tiny microplastics, plastic on riverbeds, or plastic stopped by dams.
- These estimates have significant uncertainty and can differ substantially from actual measurements. For example, if a river is estimated to carry 100 tonnes of plastic, the true value could reasonably be anywhere from 25 to 400 tonnes, and in some cases could be as low as 10 or as high as 1,000 tonnes.
- These figures do not include plastic waste that is shipped overseas for processing. That exported waste may be at higher risk of entering the ocean if it is not properly managed in the destination country.
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: Plastic pollution entering the ocean through rivers”, part of the following publication: Hannah Ritchie, Veronika Samborska, and Max Roser (2023) - “Plastic Pollution”. Data adapted from Meijer et al.. Retrieved from https://archive.ourworldindata.org/20260402-164039/grapher/plastic-entering-ocean.html [online resource] (archived on April 2, 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:
Meijer et al. (2021) – with minor processing by Our World in DataFull citation
Meijer et al. (2021) – with minor processing by Our World in Data. “Plastic pollution entering the ocean through rivers” [dataset]. Meijer et al., “More than 1000 rivers account for 80% of global riverine plastic emissions into the ocean” [original data]. Retrieved April 14, 2026 from https://archive.ourworldindata.org/20260402-164039/grapher/plastic-entering-ocean.html (archived on April 2, 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/plastic-entering-ocean.csv?v=1&csvType=full&useColumnShortNames=falseMetadata URL (JSON format)
https://ourworldindata.org/grapher/plastic-entering-ocean.metadata.json?v=1&csvType=full&useColumnShortNames=falseExcel / Google Sheets
=IMPORTDATA("https://ourworldindata.org/grapher/plastic-entering-ocean.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/plastic-entering-ocean.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/plastic-entering-ocean.metadata.json?v=1&csvType=full&useColumnShortNames=false").json()R
library(jsonlite)
# Fetch the data
df <- read.csv("https://ourworldindata.org/grapher/plastic-entering-ocean.csv?v=1&csvType=full&useColumnShortNames=false")
# Fetch the metadata
metadata <- fromJSON("https://ourworldindata.org/grapher/plastic-entering-ocean.metadata.json?v=1&csvType=full&useColumnShortNames=false")Stata
import delimited "https://ourworldindata.org/grapher/plastic-entering-ocean.csv?v=1&csvType=full&useColumnShortNames=false", encoding("utf-8") clear