ERCOT logo

ERCOT Real-Time Binding Constraints

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

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

Overview

8.42M rows, 2014-05 to now. Columns: event_time, constraint_name, shadow_price_usd_mwh, plus contingency (the outage the limit is evaluated against), from_station and to_station (the ends of the constrained element), limit_mw and flow_mw. 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/ercot_constraints_rt/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')
constraint_nameLowCardinality(String)
contingencyLowCardinality(String)
from_stationLowCardinality(Nullable(String))
to_stationLowCardinality(Nullable(String))
shadow_price_usd_mwhNullable(Float64)
limit_mwNullable(Float64)
flow_mwNullable(Float64)

Sample data

event_timeconstraint_namecontingencyfrom_stationto_stationshadow_price_usd_mwhlimit_mwflow_mw
2026-10-12 09:55:19.000000WESTEXBASE CASE∅∅09873.67905.8
2026-10-12 09:55:19.000000TREADW_YELWJC1_1DBUCRGP5TREADWELYELWJCKT59.64016204.8204.8
2026-10-12 09:55:19.000000SN_STR26_ASNEWGLF8SNSTR27.39368291.9291.9
2026-10-12 09:55:19.000000KLNSW_MR1HDSALKLN5KLNSWKLNSW217.04822745.6745.6
2026-10-12 09:55:19.000000HHGTOM_1BASE CASEHHGTOMEGA66.82891750.5750.5
2026-10-12 09:55:19.000000CROSSO_PALOUS1_1SWOLPAL8PALOUSECROSSOVE0182.8172.1
2026-10-12 09:55:19.000000BLESSING_1382DSTPSTA5BLESSINGBLESSING0425.2413.1
2026-10-12 09:55:19.0000006437__FDMTSCOS5SCRCVKNAPP0229.9206.9
2026-10-12 09:55:19.000000138_FWP_MNL_1SALVTNN8FRWYPARKMAINLAND0383.8199.5
2026-10-12 09:55:19.0000001020__ADELMWWE8ELMOTMCTYE33.14442217.9217.9
2026-10-12 09:50:19.000000WESTEXBASE CASE∅∅09873.67868.4
2026-10-12 09:50:19.000000TREADW_YELWJC1_1DBUCRGP5TREADWELYELWJCKT59.53268204.8204.8
2026-10-12 09:50:19.000000SN_STR26_ASNEWGLF8SNSTR20.04672291.6291.6
2026-10-12 09:50:19.000000KLNSW_MR1HDSALKLN5KLNSWKLNSW216.85191745.5745.5
2026-10-12 09:50:19.000000HHGTOM_1BASE CASEHHGTOMEGA66.79801750.5750.5
2026-10-12 09:50:19.000000CROSSO_PALOUS1_1SWOLPAL8PALOUSECROSSOVE0182.8172.4
2026-10-12 09:50:19.000000BLESSING_1382DSTPSTA5BLESSINGBLESSING0425.1414.6
2026-10-12 09:50:19.0000006437__FDMTSCOS5SCRCVKNAPP0230206.6
2026-10-12 09:50:19.000000138_FWP_MNL_1SALVTNN8FRWYPARKMAINLAND038481.8
2026-10-12 09:50:19.0000001020__ADELMWWE8ELMOTMCTYE32.92673217.9217.9
2026-10-12 09:45:19.000000WESTEXBASE CASE∅∅09873.67891.5
2026-10-12 09:45:19.000000TREADW_YELWJC1_1DBUCRGP5TREADWELYELWJCKT59.46072204.8204.8
2026-10-12 09:45:19.000000SN_STR26_ASNEWGLF8SNSTR2.68494291.6291.6
2026-10-12 09:45:19.000000KLNSW_MR1HDSALKLN5KLNSWKLNSW216.63338745.6745.6
2026-10-12 09:45:19.000000HHGTOM_1BASE CASEHHGTOMEGA66.85232750.5750.5

Coverage

99.7% complete15 gap days4,533 days with data
Show coverage history
Coverage: 99.7%Days with data: 4,533Gaps: 15
2026
2025
2024
2023
2022
2021
2020
2019
2018
2017
2016
2015
2014
gaplessmore