Reported production CO2 by plant
Carbon dioxide that each published plant's EPA-monitored units reported under 40 CFR Part 75 for each reporting year, summed over those units, as filed in short tons and in tonnes. It is a stack total of one program's population: a plant EPA does not monitor has no row and is not zero, and a plant with an unmonitored combustion generator shows its monitored units' mass, not its total. Each year is set against that year's EIA-860 inventory and crosswalk, and years sit side by side without a difference. Open Grid Emissions fills unmonitored units from EIA-923 fuel (Fredonia, Glendive GT) and allocates a CHP plant's CO2 between electricity and steam; the atlas does neither.
At a glance
- Period
- 2023–2024
- One row is
- published plant x EPA reporting year, monitored units summed
- Built from source rows of
- EPA emissions unit x hour (local standard time; the reporting year is the local calendar year), reporting years 2023 and 2024, Washington, Oregon, Idaho and Montana
- Evidence and method
- metered · directContinuous emissions monitoring of units EPA's programs cover: fossil units serving generators above 25 MW, with exemptions for pre-1990 simple-cycle turbines, qualifying cogenerators and units of 25 MW or less. CO2 mass is in short tons as filed; gross load is the unit's own hourly MW, which need not include a combined-cycle steam turbine; an hour flagged Substitute or Measured and Substitute follows Part 75 missing-data procedures rather than a monitor reading. A plant without rows here is unmonitored, not zero.
- Origin
- U.S. EPA Clean Air Markets Division, Power Sector Emissions Data reported under 40 CFR Part 75: hourly CO2 mass, gross load, heat input and operating time of each monitored emissions unit, with EPA's measured/substitute flag ↗Source notice and licenceLicence: CC-BY-4.0
- Built from source rows of
- EPA emissions unit x EIA generator (x boiler) x report year
- Evidence and method
- reported · derivedA steam turbine of a combined-cycle plant is linked to each of its combustion turbines' units and counts once as a monitored generator. PUDL removes unmatched rows, so a crosswalk unit with no CEMS rows in the year is a unit that did not report, not a match failure.
- Origin
- EPA-EIA Power Sector Data Crosswalk (PUDL's fork, run on each year of EIA-860): EPA emissions unit to EIA plant, boiler and generator ↗Source notice and licenceLicence: CC-BY-4.0
- Built from source rows of
- generator x report_date (annual)
- Evidence and method
- reported · derived
- Origin
- U.S. EIA Form 860 (mix of EIA forms, harvested) ↗Source notice and licenceLicence: CC-BY-4.0
- Edition in this release
- PUDL v2026.9.0 (embedded 2026.8.1.dev50) ·
out_eia__yearly_generators· retrieved 2026-09-29PUDL v2026.9.0 (embedded 2026.8.1.dev50) ·core_epacems__hourly_emissions· retrieved 2026-09-29PUDL v2026.9.0 (embedded 2026.8.1.dev50) ·core_epa__assn_eia_epacamd· retrieved 2026-09-29 - Download
- emissions_plant_year.parquet ↓58 rows · 12 KBemissions_unit_year.parquet ↓100 rows · 10 KB
Measures
| Column | Unit | What it measures |
|---|---|---|
co2_mass_tonnes | t CO2 | CO2 mass the plant's monitored units reported hourly under Part 75, summed over the reporting year and converted from short tons by 0.90718474. Stack CO2 of monitored units only: not CO2-equivalent, not lifecycle, and not the plant's total where a combustion generator is unmonitored. Null when no monitored unit operated in the year. |
co2_mass_short_tons | short tons CO2 | The same mass in the unit EPA's files use, kept beside the conversion. |
gross_load_mwh | MWh | Gross load of the monitored units: each unit's hourly MW times its operating time, summed over the year. EPA lets a combined-cycle unit omit its steam turbine's output, so this can sit below the plant's EIA-923 net generation. |
Population
What the rows are counted against- Eligible plantspublished plants with an existing coal, gas, oil or waste generator in the inventory year; EPA's programs monitor fossil units serving generators above 25 MW107 plants
- Listed in 202376 plants eligible and not listed29 of 107 plants27.1% of eligible
- Listed in 202478 plants eligible and not listed29 of 107 plants27.1% of eligible
Coverage by year
755 published plants| Year | Plants listed | Share of eligible | With a value | Listed, no value | Eligible, not listedplants | Monitoringplant-years | Evidenceplant-years | Final / provisional / unknown |
|---|---|---|---|---|---|---|---|---|
| 2023 | 29 | 27.1% | 29 | 0 | 76 | 27 all units monitored2 partly monitored | 5 estimated24 metered0 no operating hours | 0 / 0 / 29 |
| 2024 | 29 | 27.1% | 29 | 0 | 78 | 27 all units monitored2 partly monitored | 4 estimated25 metered0 no operating hours | 0 / 0 / 29 |
What is missing, and why
- Listed without a reported valueListed for the year with no co2 mass value on any row; published as null with quality missing0 plant-years
- Only some units monitoredListed plants where some existing combustion generator links to no monitored unit: the mass is the monitored units' alone, not the plant's total, and no intensity is computed4 plant-years
- In the source, not yet includedCEMS reporting years other than those acquired; EPA and PUDL hold hourly data from 1995Not computedan EPA CEMS slice beyond the acquired reporting years is not part of this build
- No row in the sourcePublished plants with an existing coal, gas, oil or waste generator in the inventory year and no CEMS row for that year: unmonitored under EPA's programs (pre-1990 simple-cycle turbines, qualifying cogenerators and units of 25 MW or less are exempt). The plant burns fuel and its CO2 is not zero; it is not reported here. Each reporting year is set against its own inventory: 2023–2024154 plant-years
- Not applicablePublished plants with no coal, gas, oil or waste generator in the inventory year: no combustion unit for EPA to monitor, which is not a claim of zero emissions: 2024648 plants
- Outside the atlas framePlants with CEMS rows in the acquired slice that the atlas does not publish: outside the frame authorities and the core states0 plants
How often it changes
Checked 2026-09-21- Publisher
- Units report hourly emissions and operating data to EPA within 30 days of the end of each calendar quarter, per CAMD's Power Sector Emissions Data Guide; PUDL's source page states that EPA releases the hourly data quarterly, with a lag of two to three months.www.epa.gov/system/files/documents/2022-07/CAMD%27s%20Power%20Sector%20Emissions%20Data%20Guide%20-%2007182022.pdf ↗docs.catalyst.coop/pudl/en/v2026.9.0/data_sources/epacems.html ↗
- Delay
- EPA's Power Sector Data page states no release schedule (page last updated April 2, 2026). PUDL's source page states a lag of two to three months after each quarter, lists temporal coverage 1995q1 to 2026q2 for the pinned version, and updates the data on PUDL's quarterly schedule.www.epa.gov/power-sector/power-sector-data ↗docs.catalyst.coop/pudl/en/v2026.9.0/data_sources/epacems.html ↗
- This atlas
- The atlas reads reporting years 2023 and 2024 for Washington, Oregon, Idaho and Montana as a registry slice of PUDL's hourly CEMS table, named under edition; the table changes only when the PUDL pin moves or the slice widens. No timed refresh.docs.catalyst.coop/pudl/en/v2026.9.0/data_access.html ↗
Checks and corrections
- Passed
keys.emissions_plant_unique{"distinct":58,"rows":58} - Passed
keys.emissions_unit_unique{"distinct":100,"rows":100} - Passed
emissions.monitored_within_plant_units{"partly_monitored_plants_with_an_intensity":0,"plants_flagged_complete_without_full_link":0,"plants_with_more_monitored_than_combustion_generators":0,"plants_with_unknown_flag":0} - Passed
emissions.measurement_hours_reconcile{"plants_with_unreconciled_hours":0} - Passed
emissions.hours_within_year{"hours_in_year":{"2023":8760,"2024":8784},"plants_with_operation_hours_over_year":0,"units_listing_more_hours_than_the_year":0,"units_operating_more_than_listed":0} - Passed
emissions.values_non_negative{"units_negative":{"co2_mass_short_tons":0,"gross_load_mwh":0,"heat_input_mmbtu":0}} - Passed
emissions.crosswalk_unit_single_plant{"units_under_two_eia_plants_in_cems":0,"units_under_two_eia_plants_in_crosswalk":0} - Passed
emissions.gross_load_below_net_generation{"plants_compared":58,"plants_with_gross_below_net":9}
No corrections apply to this dataset in this release. Earlier editions: not available (earlier releases did not retain per-dataset edition comparisons).
Release 20260929T050546Z-51ae0f7d3c78