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.
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.
Built from source rows of
generator x report_date (annual)
Evidence and method
reported · derived
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

Measures

ColumnUnitWhat it measures
co2_mass_tonnest CO2CO2 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_tonsshort tons CO2The same mass in the unit EPA's files use, kept beside the conversion.
gross_load_mwhMWhGross 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 MW
    107 plants
  • Listed in 202376 plants eligible and not listed
    29 of 107 plants27.1% of eligible
  • Listed in 202478 plants eligible and not listed
    29 of 107 plants27.1% of eligible

Coverage by year

755 published plants
Plants per report year. A published plant with no row for a year is absent from the source, not zero. Shares and plants not listed are of the eligible plants, in the years they are set against; other years show —, never a share of the published plants.
YearPlants listedShare of eligibleWith a valueListed, no valueEligible, not listedplantsMonitoringplant-yearsEvidenceplant-yearsFinal / provisional / unknown
20232927.1%2907627 all units monitored2 partly monitored5 estimated24 metered0 no operating hours0 / 0 / 29
20242927.1%2907827 all units monitored2 partly monitored4 estimated25 metered0 no operating hours0 / 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 missing
    0 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 computed
    4 plant-years
  • In the source, not yet includedCEMS reporting years other than those acquired; EPA and PUDL hold hourly data from 1995
    Not 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–2024
    154 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: 2024
    648 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 states
    0 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

  • 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}
    Passed

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