{
  "region_id": "powergrid_tx",
  "name": "Texas",
  "operator": "ERCOT",
  "slug": "tx",
  "generated_by": "scripts/grid_scoring/score_grid.py",
  "source": {
    "run_csv": "outputs/powergrid_tx/run.csv",
    "run_config": "configs/powergrid_tx.yaml",
    "run_generated_at_utc": "2026-04-19T04:22:42.483641Z",
    "events_file": "scripts/grid_scoring/grid_events.yaml",
    "data": "EIA-930 hourly balancing-authority data, UTC hour-ending stamps"
  },
  "standard": {
    "prediction_window_h": 168,
    "detection_window_h": 48,
    "onset_rule": "Onset is the time the grid operator declared the highest emergency level the event reached, converted to UTC.",
    "article_title": "Too early is the same as wrong",
    "article_url": "https://medium.com/@sheiser1/too-early-is-the-same-as-wrong-1ead2456261a",
    "alert_unit": "episode: consecutive alerting hours count once",
    "non_target_rule": "explained if the episode starts inside an explanatory window declared in the run config, otherwise unexplained"
  },
  "scored_period": {
    "start_utc": "2020-01-08 00:00",
    "end_utc": "2026-04-01 00:00",
    "scored_hours": 54519,
    "years": 6.229,
    "warmup_hours": 168,
    "missing_hours_in_timebase": 82
  },
  "signals": [
    "demand",
    "net generation",
    "forecast error"
  ],
  "decision": {
    "method": "grouped_consensus",
    "likelihood_threshold": 0.99,
    "warmth_window_h": 8,
    "groups_required": 2,
    "groups_total": 2,
    "min_persistence_h": 3,
    "groups": [
      {
        "name": "structure",
        "members": [
          "demand",
          "net generation"
        ],
        "min_instant_members": 2,
        "min_group_warmth": 0.45
      },
      {
        "name": "residual",
        "members": [
          "forecast error"
        ],
        "min_instant_members": 1,
        "min_group_warmth": 0.5
      }
    ]
  },
  "counts": {
    "events": 1,
    "predicted": 1,
    "detected": 0,
    "missed": 0,
    "alerts": 2,
    "alert_timesteps": 7,
    "target_first": 1,
    "target_repeat": 0,
    "explained": 1,
    "unexplained": 0,
    "non_target": 1
  },
  "rates_per_year": {
    "unexplained": 0.0,
    "non_target": 0.16
  },
  "events": [
    {
      "id": "uri",
      "title": "Winter Storm Uri",
      "short": "Uri",
      "when": "Feb 2021",
      "tagline": "Rotating outages, up to 20,000 MW of load shed",
      "note": "",
      "onset_local": "2021-02-15 01:20",
      "local_tz": "America/Chicago",
      "onset_utc": "2021-02-15 07:20",
      "onset_basis": "ERCOT entered Emergency Operations Level 3 (EEA 3) and began rotating outages",
      "source_title": "ERCOT, Review of February 2021 Extreme Cold Weather Event (Feb 24, 2021), slide 11",
      "source_url": "https://www.ercot.com/files/docs/2021/02/24/2.2_REVISED_ERCOT_Presentation.pdf",
      "window_start_utc": "2021-02-08 07:20",
      "window_end_utc": "2021-02-17 07:20",
      "first_alert_utc": "2021-02-11 00:00",
      "outcome": "PREDICTED",
      "lead_h": 103.33,
      "lag_h": null,
      "lead_lag_display": "103 h lead",
      "models_hot_at_first_alert": [
        "demand_model",
        "forecast_error_model",
        "net_generation_model"
      ],
      "repeat_alerts_utc": [],
      "superseded_config_onset": "2021-02-15 02:00:00"
    }
  ],
  "alerts": [
    {
      "n": 1,
      "start_utc": "2021-02-11 00:00",
      "end_utc": "2021-02-11 05:00",
      "hours": 6,
      "t_start": 9768,
      "t_end": 9773,
      "score_class": "target_first",
      "matched": "uri",
      "note": "Winter Storm Uri",
      "models_hot_at_start": [
        "demand_model",
        "forecast_error_model",
        "net_generation_model"
      ]
    },
    {
      "n": 2,
      "start_utc": "2022-12-23 08:00",
      "end_utc": "2022-12-23 08:00",
      "hours": 1,
      "t_start": 26093,
      "t_end": 26093,
      "score_class": "explained",
      "matched": "elliott_dec2022",
      "note": "Winter Storm Elliott, Dec 2022",
      "models_hot_at_start": [
        "forecast_error_model"
      ]
    }
  ]
}
