MISO logo

MISO Real-Time Binding Constraints

Which transmission facilities bound in MISO'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

80k rows, 2026-08-12 to now. Columns: event_time, constraint_name, shadow_price_usd_mwh, plus constraint_type (real_time for transmission constraints, sub_regional for power-balance constraints, reserve for reserve constraints). The contingency is inside constraint_name after a _flo_ or _FLO_ marker; there is no contingency column. 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

Interpretation

  • shadow_price_usd_mwh is negated from MISO's published negative values so that, as in every other market here, a larger positive number is a more expensive binding constraint.
  • constraint_type is a population selector: filter it before counting or ranking, because reserve and sub-regional rows are not transmission constraints.

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/miso_constraints_rt/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_typeLowCardinality(String)
shadow_price_usd_mwhNullable(Float64)

Sample data

event_timeconstraint_nameconstraint_typeshadow_price_usd_mwh
2026-10-17 04:55:00.000000IPL13095_HANNAIPL_132-30_1real_time35.38
2026-10-17 04:55:00.000000RDT_SO_MW (South_North) - STR+Lost_Gen Zone_1reserve15.37
2026-10-17 04:55:00.000000NDEXreal_time39.96
2026-10-17 04:50:00.000000IPL13095_HANNAIPL_132-30_1real_time56.69
2026-10-17 04:50:00.000000EA16106_WYNN_S_WYNN_S_HAMRIK5_1real_time98.52
2026-10-17 04:50:00.000000RDT_SO_MW (South_North) - STR+Lost_Gen Zone_1reserve24.84
2026-10-17 04:50:00.000000NDEXreal_time49.98
2026-10-17 04:45:00.000000RDT_SO_MW (South_North)sub_regional11.35
2026-10-17 04:45:00.000000EA16106_WYNN_S_WYNN_S_HAMRIK5_1real_time98.15
2026-10-17 04:45:00.000000RDT_SO_MW (South_North)real_time11.35
2026-10-17 04:45:00.000000NDEXreal_time36.32
2026-10-17 04:45:00.000000RDT_SO_MW (South_North) - STR+Lost_Gen Zone_1reserve0.16
2026-10-17 04:45:00.000000IPL13095_HANNAIPL_132-30_1real_time27.57
2026-10-17 04:40:00.000000NDEXreal_time55.59
2026-10-17 04:40:00.000000IPL13095_HANNAIPL_132-30_1real_time65.37
2026-10-17 04:40:00.000000RDT_SO_MW (South_North) - STR+Lost_Gen Zone_1reserve30.84
2026-10-17 04:35:00.000000EA16106_WYNN_S_WYNN_S_HAMRIK5_1real_time73.19
2026-10-17 04:35:00.000000IPL13095_HANNAIPL_132-30_1real_time61.16
2026-10-17 04:35:00.000000NDEXreal_time52.83
2026-10-17 04:35:00.000000RDT_SO_MW (South_North) - STR+Lost_Gen Zone_1reserve25.75
2026-10-17 04:30:00.000000IPL13095_HANNAIPL_132-30_1real_time17.03
2026-10-17 04:30:00.000000NDEXreal_time32.29
2026-10-17 04:25:00.000000IPL13095_HANNAIPL_132-30_1real_time17.73
2026-10-17 04:25:00.000000NDEXreal_time39.22
2026-10-17 04:25:00.000000RDT_SO_MW (South_North) - STR+Lost_Gen Zone_1reserve3.3

Coverage

No time-indexed data — coverage isn’t applicable to this dataset.