eagle-i-outage-data-gotchas

ORNL EAGLE-I County-Level Outage Data: Known Gotchas

If you’re building anything on top of ORNL’s EAGLE-I county-level outage dataset (Figshare, CC BY 4.0, 2014–2025), here are three issues we hit building PowerOutageHistory that aren’t obvious from the file headers alone. Sharing in case it saves someone else the debugging time.

1. MCC.csv’s customer-count denominator is wrong for ~21.7% of counties

Any “% of customers affected” or reliability metric needs a denominator — how many customers actually live in the county. The obvious source, MCC.csv, is unusable as-is for a meaningful share of counties.

Example: Henderson County, NC — MCC.csv lists 24 total customers. Raw snapshot data shows 131,460 customers without power during a single event. Uncorrected, that’s a county reporting 547,750% of its customers out — which, left unchecked, would have made Henderson County rank #1 worst grid reliability in the entire country in our first pass. It’s a data bug, not a real event.

Fix: reconcile three independent estimates — MCC.csv, the embedded per-row total_customers field in the newer (2024+) files, and US Census ACS occupied-household counts — and take the max. Biasing toward the larger denominator understates rather than overstates severity, which is the safer direction to be wrong in.

2. DQI.csv is FEMA-region-level, not county-level

It’s tempting to use DQI.csv as a per-county data-quality gate — the name suggests it. It doesn’t work: the file is aggregated to 10 FEMA regions for 2018–2022 only. It cannot tell you anything about an individual county. Build your own quality gate from the raw event data (years-reporting coverage, event density, over-attribution share) instead.

3. Even a correct denominator doesn’t fully fix over-attribution

About 2.1% of county-years show a peak outage count that exceeds even the reconciled (correct) denominator. This isn’t a denominator problem — it’s the source data itself misattributing a multi-county utility feed to a single FIPS code during major storms. No amount of denominator fixing solves it; you have to flag and exclude these county-years explicitly (we cap displayed values and exclude them from ranking/grading).

Validation, if you want a sanity check for your own pipeline

We cross-checked our state-level severity rankings against the EIA’s own 2024 utility reliability filings (SAIDI, schedule “Reliability_States”). Spearman correlation: 0.976 (p < 0.0001, n = 51 states/DC) — strong independent confirmation the underlying event-reconstruction method is sound, once the above three issues are handled.

Method for reconstructing discrete outage events

EAGLE-I is 15-minute snapshots, not pre-built “events.” We reproduced PNNL’s published method (filter to customers_out ≥ 200, then strict 15-minute contiguity — any gap ends the event) and validated it against their own published Hurricane Uri (Feb 2021, Texas) numbers: 1,012 vs their 1,008 events, matching first-event timing and max duration (311.8h) almost exactly. For small counties, a fixed 200-customer threshold erases real signal — we use min(200, max(10, 0.5% of reconciled denominator)).


Full write-up of how this feeds into a public tool: PowerOutageHistory methodology. Data itself: ORNL EAGLE-I on Figshare (CC BY 4.0). Covered on: We Almost Told the Internet a Rural County Had 547,750% of Its Power Out