PJM logo

Generation by Fuel Type

PJM's hourly operating generation snapshot broken out by fuel type — gas, nuclear, coal, solar, wind, hydro, storage, and others.

Native record
event_time x fuel_type
hourly publication cadence
Evidence
Observed market data
Published observations from the named source
Time basis
Point-in-time records
UTC · event_time

Overview

This is the current metered fuel-mix signal for the RTO and the appropriate live actual for PJM's renewable forecasts; the settlement-derived wind and solar tables lag and can carry provisional zeros at the operational edge. Source: PJM Market Data.

Query contract

Preserve one canonical row per (event_time, fuel_type) before aggregating.

Analysis rules

  • Group only after preserving the declared grain: event_time, fuel_type.

Access

Query from your own tools

Use the guarded HTTP endpoint directly, or connect an MCP client and load the dataset contract with describe_data before calling query_data.

HTTP endpoint
POST /api/v1/datasets/pjm_gen_by_fuel/query

Need the full history of this dataset in Snowflake, Databricks or your own storage? Data services delivers it on a schedule.

Schema6

Column
Type
event_timeDateTime64(6, 'UTC')
fuel_typeLowCardinality(String)
mwNullable(Float64)
fuel_percentage_of_totalNullable(Float64)
is_renewableNullable(Bool)
ingested_atDateTime64(6, 'UTC')

Sample data

event_timefuel_typemwfuel_percentage_of_totalis_renewableingested_at
2026-10-12 20:00:00.000000Wind65560.065true2026-10-12 21:14:13.050682
2026-10-12 20:00:00.000000Storage00false2026-10-12 21:14:13.050682
2026-10-12 20:00:00.000000Solar102300.102true2026-10-12 21:14:13.050682
2026-10-12 20:00:00.000000Other Renewables4010.004true2026-10-12 21:14:13.050682
2026-10-12 20:00:00.000000Oil10080.01false2026-10-12 21:14:13.050682
2026-10-12 20:00:00.000000Nuclear258600.258false2026-10-12 21:14:13.050682
2026-10-12 20:00:00.000000Multiple Fuels33510.033false2026-10-12 21:14:13.050682
2026-10-12 20:00:00.000000Hydro32290.032true2026-10-12 21:14:13.050682
2026-10-12 20:00:00.000000Gas348650.348false2026-10-12 21:14:13.050682
2026-10-12 20:00:00.000000Coal146580.146false2026-10-12 21:14:13.050682
2026-10-12 19:00:00.000000Wind66340.067true2026-10-12 21:14:13.050682
2026-10-12 19:00:00.000000Storage00false2026-10-12 21:14:13.050682
2026-10-12 19:00:00.000000Solar104720.106true2026-10-12 21:14:13.050682
2026-10-12 19:00:00.000000Other Renewables4020.004true2026-10-12 21:14:13.050682
2026-10-12 19:00:00.000000Oil9270.009false2026-10-12 21:14:13.050682
2026-10-12 19:00:00.000000Nuclear258580.261false2026-10-12 21:14:13.050682
2026-10-12 19:00:00.000000Multiple Fuels32260.032false2026-10-12 21:14:13.050682
2026-10-12 19:00:00.000000Hydro31020.031true2026-10-12 21:14:13.050682
2026-10-12 19:00:00.000000Gas337620.341false2026-10-12 21:14:13.050682
2026-10-12 19:00:00.000000Coal143920.145false2026-10-12 21:14:13.050682
2026-10-12 19:00:00.000000Wind66340.067true2026-10-12 20:14:14.818522
2026-10-12 19:00:00.000000Storage00false2026-10-12 20:14:14.818522
2026-10-12 19:00:00.000000Solar104720.106true2026-10-12 20:14:14.818522
2026-10-12 19:00:00.000000Other Renewables4020.004true2026-10-12 20:14:14.818522
2026-10-12 19:00:00.000000Oil9270.009false2026-10-12 20:14:14.818522

Coverage

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