CAISO logo

CAISO Real-Time Binding Constraints

Which transmission facilities bound in CAISO's real-time market and what each one cost, one row per interval and constraint.

Native record
constraint x dispatch interval
5-minute publication cadence
Evidence
Observed market data
Published observations from the named source
Time basis
Interval-start records
UTC · event_time

Overview

6.43M rows, 2015-01 to now. Columns: event_time, constraint_name, shadow_price_usd_mwh, plus constraint_type ('intertie', 4.06M rows, or 'nomogram', 2.36M), direction, and constraint_cause. The shadow price is the marginal cost of the binding limit — what the market would have saved from one more megawatt of capability on that element. This is the table that answers WHY congestion appeared; a price spread between two locations shows that they separated but not which facility separated them.

Query contract

A row means this constraint was binding in this interval. Absence of a row means it was not binding, not that it does not exist.

Analysis rules

  • Rank constraints by summed or averaged shadow price over a window, and say which — a constraint that binds rarely but hard ranks differently from one that binds constantly and cheaply.
  • Count binding INTERVALS, not rows, when describing how often a constraint bound.

Related analysis

  • explaining why a location's congestion component moved in an interval · align on event_time; the constraint explains the market-wide congestion pattern, not one location's share of it

Interpretation

  • This table unions CAISO's two published real-time shadow-price feeds — interties and nomogram branches. constraint_type says which one a row came from, and the two are not comparable populations: filter on it before ranking or counting.
  • CAISO publishes no branch-level real-time shadow prices here, so this is not a complete account of every binding element in the market.

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/caiso_constraints_rt/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')
constraint_nameLowCardinality(String)
constraint_typeLowCardinality(String)
directionLowCardinality(String)
constraint_causeLowCardinality(String)
shadow_price_usd_mwhNullable(Float64)

Sample data

event_timeconstraint_nameconstraint_typedirectionconstraint_causeshadow_price_usd_mwh
2026-10-12 08:25:00.00000031227_HGHLNDJ2_115_31950_CORTINA _115_BR_1 _1nomogramPG1 EGLRK-SLVR-FLTN 115_M80.01099
2026-10-12 08:20:00.00000031227_HGHLNDJ2_115_31950_CORTINA _115_BR_1 _1nomogramPG1 EGLRK-SLVR-FLTN 115_M75.41476
2026-10-12 08:15:00.00000031227_HGHLNDJ2_115_31950_CORTINA _115_BR_1 _1nomogramPG1 EGLRK-SLVR-FLTN 115_M75.74348
2026-10-12 08:10:00.00000031227_HGHLNDJ2_115_31950_CORTINA _115_BR_1 _1nomogramPG1 EGLRK-SLVR-FLTN 115_M76.94807
2026-10-12 08:05:00.00000031227_HGHLNDJ2_115_31950_CORTINA _115_BR_1 _1nomogramPG1 EGLRK-SLVR-FLTN 115_M79.50977
2026-10-12 08:00:00.00000031227_HGHLNDJ2_115_31950_CORTINA _115_BR_1 _1nomogramPG1 EGLRK-SLVR-FLTN 115_M80.15897
2026-10-12 07:55:00.0000007690-CONTRL-INYOKN_EXP_NGnomogramBase Case-409.92493
2026-10-12 07:55:00.00000031227_HGHLNDJ2_115_31950_CORTINA _115_BR_1 _1nomogramPG1 EGLRK-SLVR-FLTN 115_M71.81036
2026-10-12 07:50:00.0000007690-CONTRL-INYOKN_EXP_NGnomogramBase Case-51.46833
2026-10-12 07:50:00.00000031227_HGHLNDJ2_115_31950_CORTINA _115_BR_1 _1nomogramPG1 EGLRK-SLVR-FLTN 115_M72.23655
2026-10-12 07:45:00.0000007690-CONTRL-INYOKN_EXP_NGnomogramBase Case-51.47717
2026-10-12 07:45:00.00000035202_USWP-WKR_60.0_33777_SBTAP _60.0_BR_1 _1nomogramBase Case46.71969
2026-10-12 07:45:00.00000031227_HGHLNDJ2_115_31950_CORTINA _115_BR_1 _1nomogramPG1 EGLRK-SLVR-FLTN 115_M72.25578
2026-10-12 07:40:00.0000007690-CONTRL-INYOKN_EXP_NGnomogramBase Case-52.29799
2026-10-12 07:40:00.00000031336_HPLND JT_60.0_31370_CLVRDLJT_60.0_BR_1 _1nomogramPG1 EGLRK-SLVR-FLTN 115_M261.61845
2026-10-12 07:35:00.0000007690-CONTRL-INYOKN_EXP_NGnomogramBase Case-52.34888
2026-10-12 07:35:00.00000031336_HPLND JT_60.0_31370_CLVRDLJT_60.0_BR_1 _1nomogramPG1 EGLRK-SLVR-FLTN 115_M262.00945
2026-10-12 07:30:00.0000007690-CONTRL-INYOKN_EXP_NGnomogramBase Case-52.3982
2026-10-12 07:30:00.00000035202_USWP-WKR_60.0_33777_SBTAP _60.0_BR_1 _1nomogramBase Case47.81635
2026-10-12 07:30:00.00000031336_HPLND JT_60.0_31370_CLVRDLJT_60.0_BR_1 _1nomogramPG1 EGLRK-SLVR-FLTN 115_M262.38838
2026-10-12 07:25:00.00000031336_HPLND JT_60.0_31370_CLVRDLJT_60.0_BR_1 _1nomogramPG1 EGLRK-SLVR-FLTN 115_M274.80634
2026-10-12 07:20:00.00000031336_HPLND JT_60.0_31370_CLVRDLJT_60.0_BR_1 _1nomogramPG1 EGLRK-SLVR-FLTN 115_M279.75029
2026-10-12 07:15:00.0000007690-CONTRL-INYOKN_EXP_NGnomogramBase Case-53.78297
2026-10-12 07:15:00.00000031336_HPLND JT_60.0_31370_CLVRDLJT_60.0_BR_1 _1nomogramPG1 EGLRK-SLVR-FLTN 115_M275.59888
2026-10-12 07:10:00.0000007690-CONTRL-INYOKN_EXP_NGnomogramBase Case-246.06906

Coverage

100.0% complete1 gap days4,302 days with data
Show coverage history
Coverage: 100.0%Days with data: 4,302Gaps: 1
2026
2025
2024
2023
2022
2021
2020
2019
2018
2017
2016
2015
gaplessmore