PJM logo

Real-Time 5-Minute LMP (Unverified)

Locational marginal prices from PJM's real-time energy market, published every five minutes for each pricing node (pnode) before settlement verification.

Native record
pricing node x 5-minute interval after revision collapse
5-minute publication cadence
Evidence
Observed market data
Published observations from the named source
In Ask the Grid
LMP nodes on the PJM map
Values for the live grid surface

Overview

Each row carries total LMP plus congestion and marginal-loss components in dollars per MWh. Components support node-level price decomposition, but price differences do not identify a named binding facility or prove topology. This is the freshest PJM price feed; use the settled hourly feed for the verified record published roughly 18 hours later. Point classes span transmission zones, trading hubs, external interfaces, and aggregate nodes. Source: PJM Market Data.

Query contract

Use argMax(value, ingested_at) per pricing node and interval.

Analysis rules

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

Related analysis

  • diagnose live reserve scarcity during an energy price episode · Match five-minute event_time; select one reserve area and product. Report shortage_indicator with reserve_quantity and reserve_requirement. Dispatch and pricing runs differ; do not reconstruct energy LMP or infer a unit trip from these rows.

Interpretation

  • To find a pnode by name, or to label pnode_ids, read atg.pjm_locations (location_id = toString(pnode_id), name, kind) rather than deriving pnode_name from this price table: `SELECT location_id, name, kind FROM atg.pjm_locations WHERE positionCaseInsensitive(name, 'CARDINAL') > 0`. Then filter the prices on pnode_id.

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_rt_unverified_fivemin_lmps/query

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

Schema8

Column
Type
event_timeDateTime64(6, 'UTC')
pnode_idLowCardinality(String)
pnode_nameNullable(String)
pnode_typeNullable(String)
total_lmpNullable(Float64)
congestion_priceNullable(Float64)
marginal_loss_priceNullable(Float64)
ingested_atDateTime64(6, 'UTC')

Sample data

event_timepnode_idpnode_namepnode_typetotal_lmpcongestion_pricemarginal_loss_priceingested_at
2026-10-12 07:50:00.00000098370535BEAVER 13.8 KV WL60BUS16.560.8-0.132026-10-12 07:56:25.323831
2026-10-12 07:50:00.00000098370533BEAVER 13.8 KV WL50BUS16.570.8-0.122026-10-12 07:56:25.323831
2026-10-12 07:50:00.00000098370531BEAVER 13.8 KV WL40BUS16.570.8-0.122026-10-12 07:56:25.323831
2026-10-12 07:50:00.00000098370529BEAVER 13.8 KV WL30BUS16.570.8-0.122026-10-12 07:56:25.323831
2026-10-12 07:50:00.00000098370527BEAVER 13.8 KV WL20BUS16.570.8-0.122026-10-12 07:56:25.323831
2026-10-12 07:50:00.00000098370525BEAVER 13.2 KV WL-ABUS16.560.8-0.132026-10-12 07:56:25.323831
2026-10-12 07:50:00.00000098370523BEAVER 13.2 KV WL-BBUS16.560.8-0.132026-10-12 07:56:25.323831
2026-10-12 07:50:00.00000098370505ROBERTOE138 KV GENDUMMYBUS17.3110.422026-10-12 07:56:25.323831
2026-10-12 07:50:00.00000098370497NILES 14 KV CTBUS16.110.68-0.462026-10-12 07:56:25.323831
2026-10-12 07:50:00.00000098370491NEWCASOE14 KV G4BUS15.820.39-0.462026-10-12 07:56:25.323831
2026-10-12 07:50:00.00000098370489NEWCASOE14 KV G3BUS15.740.36-0.512026-10-12 07:56:25.323831
2026-10-12 07:50:00.00000098370487NEWCASOE16 KV G5BUS15.820.39-0.462026-10-12 07:56:25.323831
2026-10-12 07:50:00.00000098370485NEWCASOE23 KV EMDS-BBUS15.830.39-0.452026-10-12 07:56:25.323831
2026-10-12 07:50:00.00000098370483NEWCASOE23 KV EMDS-ABUS15.830.39-0.452026-10-12 07:56:25.323831
2026-10-12 07:50:00.00000098370477DAVISBES25 KV DB10BUS16.490.83-0.232026-10-12 07:56:25.323831
2026-10-12 07:50:00.00000098370469MTNROAD 35 KV HENRICLFBUS18.011.740.382026-10-12 07:56:25.323831
2026-10-12 07:50:00.0000009837046709YANKEE12.5 KV YANKESPBUS17.171.020.262026-10-12 07:56:25.323831
2026-10-12 07:50:00.00000098370465VIRGINIA25 KV VACTYG1BUS16.351.17-0.712026-10-12 07:56:25.323831
2026-10-12 07:50:00.00000098370463MEADOWL434.5 KV MEDLK4WFBUS16.251.02-0.662026-10-12 07:56:25.323831
2026-10-12 07:50:00.00000098370461MEADOWLK34.5 KV MEDLK3WFBUS16.251.02-0.662026-10-12 07:56:25.323831
2026-10-12 07:50:00.00000098370459MEADOWLK34.5 KV MEDLK2WFBUS16.251.02-0.662026-10-12 07:56:25.323831
2026-10-12 07:50:00.00000098370457CROOKSVI138 KV SUBURBLFBUS16.960.980.092026-10-12 07:56:25.323831
2026-10-12 07:50:00.00000098370455THIRTYST34.5 KV CHSTNTWFBUS14.49-1.530.132026-10-12 07:56:25.323831
2026-10-12 07:50:00.00000098370453EAGLEVAL34.5 KV SANRIGWFBUS14.51-1.650.272026-10-12 07:56:25.323831
2026-10-12 07:50:00.00000098370449EFLEMING35 KV FRNCHSPBUS11.64-4.13-0.122026-10-12 07:56:25.323831

Coverage

100.0% complete0 gap days99 days with data
Show coverage history
Coverage: 100.0%Days with data: 99Gaps: 0
2026
gaplessmore