ERCOT logo

Constraint Shift Factor Runs

One row per COMPLETED nightly estimation of ERCOT constraint shift factors, and the only record that a run finished.

Native record
one completed estimation run
nightly (one row per completed run) publication cadence
Evidence
Reference data
Stable context used to interpret other datasets
Time basis
Point-in-time records
UTC · computed_at

Overview

Resolve the latest usable run here — computed_at = (SELECT max(computed_at) FROM atg.ercot_constraint_sensitivity_runs) — and never off max(computed_at) of the sensitivities themselves, because a run writes its rows in blocks that all carry the new timestamp and an unfinished or abandoned run would otherwise look like the newest one. Each row also carries how much evidence that run had: interval_coverage is the fraction of published dispatch intervals that survived admission, intervals_refused_unexplained counts intervals showing congestion with no constraint recorded as binding (an unobserved binding set), constraint_feed_lag_minutes is how far the constraint feed trailed the price feed, and constraints_seen / constraints_in_fit / constraints_reported show how many constraints bound, how many were good enough to control for, and how many earned a published estimate.

Query contract

The newest row is the newest COMPLETE run: computed_at = (SELECT max(computed_at) FROM atg.ercot_constraint_sensitivity_runs). Use that value to filter atg.ercot_constraint_sensitivities.

Analysis rules

  • One row per run. Counting rows counts runs, not constraints, nodes or intervals — those are columns on each row.

Interpretation

  • A run appears here only after every one of its node blocks has landed. That is the point of the table: rows go into the sensitivities table block by block, all carrying the new computed_at, so a run still being written — or one that died halfway — would otherwise look like the newest. Absence of a row means the run did not finish, not that it did not happen.
  • This is provenance about an estimation job. Nothing in it measures the grid: it says how much evidence a run had, not what congestion occurred.

Schema18

Column
Type
computed_atDateTime64(3, 'UTC')
run_idString
isoLowCardinality(String)
window_startDateTime64(3, 'UTC')
window_endDateTime64(3, 'UTC')
rows_writtenUInt64
rows_estimatedUInt64
constraints_seenUInt32
constraints_in_fitUInt32
constraints_reportedUInt32
nodesUInt32
n_intervalsUInt32
intervals_publishedUInt32
intervals_refused_thinUInt32
intervals_refused_unexplainedUInt32
interval_coverageFloat32
constraint_feed_lag_minutesFloat32
method_versionLowCardinality(String)

Sample data

No preview available.

Coverage

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