CAISO logo

CAISO Day-Ahead Binding Constraints

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

Native record
constraint x delivery hour
hourly publication cadence
Evidence
Cleared day-ahead market
A market outcome, not a physical observation
Time basis
Interval-start records
UTC · event_time

Overview

463,496 rows, 2015-01 to now. Columns: event_time, constraint_name, shadow_price_usd_mwh, plus 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

  • A shadow price is the marginal value of relaxing the limit. It is not the amount of power that flowed, not a measure of how loaded the line was, and not a dollar cost anyone paid.
  • This table names the binding element. Attributing a specific location's congestion to a specific constraint additionally needs a shift factor, which is not published here.

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

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

Schema4

Column
Type
event_timeDateTime64(6, 'UTC')
constraint_nameLowCardinality(String)
constraint_causeLowCardinality(String)
shadow_price_usd_mwhNullable(Float64)

Sample data

event_timeconstraint_nameconstraint_causeshadow_price_usd_mwh
2026-10-12 05:00:00.0000007820_TL 230S_OVERLOAD_NGBase Case-2.62498
2026-10-12 05:00:00.0000007690-CONTRL-INYOKN_EXP_NGBase Case0
2026-10-12 05:00:00.00000032225_BRNSWKT1_115_32222_DTCH2TAP_115_BR_1 _1Base Case26.88696
2026-10-12 05:00:00.00000031336_HPLND JT_60.0_31370_CLVRDLJT_60.0_BR_1 _1PG1 EGLRK-SLVR-FLTN 115_M246.82198
2026-10-12 05:00:00.00000022208_EL CAJON_69.0_22408_LOSCOCHS_69.0_BR_1 _1SD1 LCOCHS-GR-MIGUEL 6919.33305
2026-10-12 04:00:00.0000007820_TL 230S_OVERLOAD_NGBase Case-1.90829
2026-10-12 04:00:00.0000007690-CONTRL-INYOKN_EXP_NGBase Case0
2026-10-12 04:00:00.00000032225_BRNSWKT1_115_32222_DTCH2TAP_115_BR_1 _1Base Case28.5222
2026-10-12 04:00:00.00000031336_HPLND JT_60.0_31370_CLVRDLJT_60.0_BR_1 _1PG1 EGLRK-SLVR-FLTN 115_M266.86533
2026-10-12 04:00:00.00000022208_EL CAJON_69.0_22408_LOSCOCHS_69.0_BR_1 _1SD1 LCOCHS-GR-MIGUEL 6913.72829
2026-10-12 03:00:00.0000007690-CONTRL-INYOKN_EXP_NGBase Case0
2026-10-12 03:00:00.00000032225_BRNSWKT1_115_32222_DTCH2TAP_115_BR_1 _1Base Case25.98305
2026-10-12 03:00:00.00000031336_HPLND JT_60.0_31370_CLVRDLJT_60.0_BR_1 _1PG1 EGLRK-SLVR-FLTN 115_M269.48135
2026-10-12 03:00:00.00000022208_EL CAJON_69.0_22408_LOSCOCHS_69.0_BR_1 _1SD1 LCOCHS-GR-MIGUEL 6941.91586
2026-10-12 02:00:00.0000007690-CONTRL-INYOKN_EXP_NGBase Case0
2026-10-12 02:00:00.00000034101_CERTANJ2_115_34116_LE GRAND_115_BR_1 _1Base Case0.11665
2026-10-12 02:00:00.00000032225_BRNSWKT1_115_32222_DTCH2TAP_115_BR_1 _1Base Case26.10744
2026-10-12 02:00:00.00000031336_HPLND JT_60.0_31370_CLVRDLJT_60.0_BR_1 _1PG1 EGLRK-SLVR-FLTN 115_M272.87762
2026-10-12 02:00:00.00000022208_EL CAJON_69.0_22408_LOSCOCHS_69.0_BR_1 _1SD1 LCOCHS-GR-MIGUEL 6963.05939
2026-10-12 01:00:00.0000007690-CONTRL-INYOKN_EXP_NGBase Case-57.04508
2026-10-12 01:00:00.00000032225_BRNSWKT1_115_32222_DTCH2TAP_115_BR_1 _1Base Case10.60139
2026-10-12 01:00:00.00000031336_HPLND JT_60.0_31370_CLVRDLJT_60.0_BR_1 _1PG1 EGLRK-SLVR-FLTN 115_M271.24316
2026-10-12 01:00:00.00000022208_EL CAJON_69.0_22408_LOSCOCHS_69.0_BR_1 _1SD1 LCOCHS-GR-MIGUEL 6969.31605
2026-10-12 00:00:00.0000007690-CONTRL-INYOKN_EXP_NGBase Case-56.24937
2026-10-12 00:00:00.00000035618_SN JSE A_115_35616_SNJOSEB _115_BR_1 _1PG1 LOSEST-METCLF 23012.08183

Coverage

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