Customer Outages by County

Live county-level customer outage snapshots from ORNL/DOE's ODIN public county map API.

Native record
county x public outage snapshot
10-minute snapshot publication cadence
Evidence
Observed market data
Published observations from the named source
In Ask the Grid
Customer outages on the ERCOT map
Values for the live grid surface

Overview

Ask the Grid queries the nationwide grid='us' archive and derives each live product map from its exact state-FIPS scope, so every supported grid uses the same accumulated history. Each row is an active county outage at that snapshot with county FIPS, state FIPS, affected meters, contributing utility rows, and the ODIN county polygon. Missing county rows at a snapshot mean zero or cleared public ODIN outage, not stale carry-forward. This is distribution/customer outage data, not ISO generation or resource outage data.

Query contract

Select one exact event_time snapshot before aggregating meters_out or outage_count.

Analysis rules

  • Use the grid and state_fips predicates required for the active product map. For a named county, preserve county_fips and county_name; for a broad total, describe the returned state or state-set geography rather than calling it the exact ISO footprint.
  • county_fips is the full five-digit national FIPS code. Copy a selected county_fips exactly; never remove its two-digit state prefix.

Interpretation

  • The product map uses state-based ODIN coverage: Texas for ERCOT, California for CAISO, New York for NYISO, and 13 states plus DC for PJM. Those boundaries can include territory outside the electrical ISO footprint, and public utility-feed coverage can be incomplete. A broad total is not an exact ISO-footprint count, estimate, upper bound, or lower bound.
  • This is distribution/customer outage evidence, not ISO generation, transmission, or resource outage evidence.

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/odin_active_county_outages/query

Schema10

Column
Type
event_timeDateTime64(6, 'UTC')
gridLowCardinality(String)
state_fipsString
county_fipsLowCardinality(String)
county_nameNullable(String)
meters_outNullable(Float64)
outage_countNullable(Int64)
utilities_jsonNullable(String)
feature_geojsonNullable(String)
ingested_atDateTime64(6, 'UTC')

Sample data

event_timegridstate_fipscounty_fipscounty_namemeters_outoutage_countutilities_jsonfeature_geojsoningested_at
2026-09-30 04:03:24.000000us55__empty_55__∅00[]∅2026-09-30 04:03:27.176967
2026-09-30 04:03:24.000000us51__empty_51__∅00[]∅2026-09-30 04:03:27.176967
2026-09-30 04:03:24.000000us50__empty_50__∅00[]∅2026-09-30 04:03:27.176967
2026-09-30 04:03:24.000000us46__empty_46__∅00[]∅2026-09-30 04:03:27.176967
2026-09-30 04:03:24.000000us45__empty_45__∅00[]∅2026-09-30 04:03:27.176967
2026-09-30 04:03:24.000000us44__empty_44__∅00[]∅2026-09-30 04:03:27.176967
2026-09-30 04:03:24.000000us40__empty_40__∅00[]∅2026-09-30 04:03:27.176967
2026-09-30 04:03:24.000000us38__empty_38__∅00[]∅2026-09-30 04:03:27.176967
2026-09-30 04:03:24.000000us35__empty_35__∅00[]∅2026-09-30 04:03:27.176967
2026-09-30 04:03:24.000000us33__empty_33__∅00[]∅2026-09-30 04:03:27.176967
2026-09-30 04:03:24.000000us32__empty_32__∅00[]∅2026-09-30 04:03:27.176967
2026-09-30 04:03:24.000000us31__empty_31__∅00[]∅2026-09-30 04:03:27.176967
2026-09-30 04:03:24.000000us30__empty_30__∅00[]∅2026-09-30 04:03:27.176967
2026-09-30 04:03:24.000000us28__empty_28__∅00[]∅2026-09-30 04:03:27.176967
2026-09-30 04:03:24.000000us26__empty_26__∅00[]∅2026-09-30 04:03:27.176967
2026-09-30 04:03:24.000000us23__empty_23__∅00[]∅2026-09-30 04:03:27.176967
2026-09-30 04:03:24.000000us22__empty_22__∅00[]∅2026-09-30 04:03:27.176967
2026-09-30 04:03:24.000000us21__empty_21__∅00[]∅2026-09-30 04:03:27.176967
2026-09-30 04:03:24.000000us18__empty_18__∅00[]∅2026-09-30 04:03:27.176967
2026-09-30 04:03:24.000000us17__empty_17__∅00[]∅2026-09-30 04:03:27.176967
2026-09-30 04:03:24.000000us15__empty_15__∅00[]∅2026-09-30 04:03:27.176967
2026-09-30 04:03:24.000000us13__empty_13__∅00[]∅2026-09-30 04:03:27.176967
2026-09-30 04:03:24.000000us11__empty_11__∅00[]∅2026-09-30 04:03:27.176967
2026-09-30 04:03:24.000000us09__empty_09__∅00[]∅2026-09-30 04:03:27.176967
2026-09-30 04:03:24.000000us05__empty_05__∅00[]∅2026-09-30 04:03:27.176967

Coverage

98.9% complete1 gap days91 days with data
Show coverage history
Coverage: 98.9%Days with data: 91Gaps: 1
2026
gaplessmore