PJM logo

PJM Generation Mix by Fuel

What is physically generating in PJM, in megawatts by fuel, one row per interval.

Native record
one row per interval, wide by fuel
hourly publication cadence
Evidence
Observed market data
Published observations from the named source
Time basis
Point-in-time records
UTC · event_time

Overview

93,886 intervals, 2016-01 to now. Columns: coal_mw, gas_mw, oil_mw, nuclear_mw, hydro_mw, wind_mw, solar_mw, storage_mw, multiple_fuels_mw, other_renewables_mw. Wide rather than long: a whole interval's mix is one row, so shares are computed across columns in that row and the timestamp does not repeat once per fuel. "Which fuel is largest" is greatest() across the columns, or simply reading the row.

Query contract

Select one exact event_time and read every fuel column from that row. A mix assembled from more than one timestamp is not a mix that ever existed.

Analysis rules

  • Compute each fuel's share against the sum of the fuel columns in that same row, not against demand and not against a total from another interval.
  • For a change over a period, resolve complete buckets and compare their canonical observations; do not query two wall-clock instants separately.

Interpretation

  • PJM publishes all eight fuels the other markets use plus two more: multiple_fuels_mw (switchable units that can burn gas or oil, PJM's analogue of NYISO's dual_fuel_mw) and other_renewables_mw. Do not fold either into gas or into a residual — PJM reports them as their own categories deliberately.
  • PJM publishes fuel_percentage_of_total per row, which implies a total, but does not publish the total itself. Sum the ten fuel columns for a total; do not divide a fuel's MW by its percentage, which recovers a total that disagrees with the column sum by rounding.

Schema12

Column
Type
event_timeDateTime64(6, 'UTC')
coal_mwNullable(Float64)
gas_mwNullable(Float64)
oil_mwNullable(Float64)
nuclear_mwNullable(Float64)
hydro_mwNullable(Float64)
wind_mwNullable(Float64)
solar_mwNullable(Float64)
storage_mwNullable(Float64)
multiple_fuels_mwNullable(Float64)
other_renewables_mwNullable(Float64)
sourceLowCardinality(String)

Sample data

event_timecoal_mwgas_mwoil_mwnuclear_mwhydro_mwwind_mwsolar_mwstorage_mwmultiple_fuels_mwother_renewables_mwsource
2026-09-19 17:00:00.000000149944359678530086916935963902156460live
2026-09-19 16:00:00.00000014493411302162997095411061012812061467live
2026-09-19 15:00:00.0000001439940323214299576741548918802149465live
2026-09-19 14:00:00.0000001409838292215299546332125831102206470live
2026-09-19 13:00:00.0000001497238501215299556591799619501716432live
2026-09-19 12:00:00.0000001581137384225299606302566308901696418live
2026-09-19 11:00:00.000000158603819322829876641259429701820421live
2026-09-19 10:00:00.00000014750377842312977065531601901717425live
2026-09-19 09:00:00.00000014481377682342970055134861901599427live
2026-09-19 08:00:00.00000014408371202332966854537911901645428live
2026-09-19 07:00:00.00000015131377662292960653436231901747422live
2026-09-19 06:00:00.00000015507395692292969854335661901817439live
2026-09-19 05:00:00.00000015371407432262995354235206101782443live
2026-09-19 04:00:00.00000015621427152233018953836016102204444live
2026-09-19 03:00:00.00000016992462643603042363532296102545442live
2026-09-19 02:00:00.000000182185061214303054762930906112687443live
2026-09-19 01:00:00.000000190955412018723060397425326112839443live
2026-09-19 00:00:00.00000019184579842030305813035179161262669438live
2026-09-18 23:00:00.0000001893558440207530565457018122851642675431live
2026-09-18 22:00:00.00000018898598092078305444195193223351652715434live
2026-09-18 21:00:00.00000018774593822026305354491240054301652762439live
2026-09-18 20:00:00.00000018664574622005305353898268076251332831452live
2026-09-18 19:00:00.000000183125678218783053535261997923302902455live
2026-09-18 18:00:00.000000180075626118933054132771700922502850458live
2026-09-18 17:00:00.000000179725601019853055511591483953702799457live

Coverage

100.0% complete0 gap days3,915 days with data
Show coverage history
Coverage: 100.0%Days with data: 3,915Gaps: 0
2026
2025
2024
2023
2022
2021
2020
2019
2018
2017
2016
gaplessmore