Methodology — how the restoration estimate is computed
Updated 2026-10-07 · reviewed 2026-10-06 · Methodology version 2026-10-06.v4 · Every figure on this page is written into the running software, not a target.
Most outage maps tell you that the power is out. The question people actually have is when it comes back — and a utility's map often shows no restoration time, or a placeholder in place of one. So we compute an independent estimate from the outage's own recovery trend, publish it whether or not the utility has posted a time, and then grade our county-wide estimates in public against when power actually returned.
This page explains exactly how that works, including the cases where we deliberately show you nothing.
1. The measurement: what we actually observe
Every ~15 minutes we record how many customers are out in each county. We also read hundreds of utilities' own live outage maps: a map with customers out is usually read more often than that, though some can only be read about every 15 minutes. That series — not a model of the weather, not a guess — is the input. An outage is tracked as one continuous event from the first reading of 100 or more customers out until the count has fallen to 5% of the event's peak (never below 20 customers) and stayed there for 3 hours; events that never reach 200 customers are not kept. Inside that event, each graded reading is measured against one yardstick: the next reading at which the count is at 10% of the event's peak or below — the "90% restored" mark, not the last single customer.
2. The estimate: recovery rate, then a bounded correction
- Rate. We take the change in the number of customers out across a ~2.5-hour window (150 minutes) — recent enough to reflect the crews working now, long enough not to swing on a single reading.
- Projection. Remaining customers ÷ that rate = hours until the count would reach zero at the current pace.
- Deceleration correction. Large outages have a slow tail: the last stragglers are scattered single-service repairs, not one big feeder. When the largest count we have recorded for the place reached 1,000+ customers, once more than half of it has come back we stretch the estimate by up to 2×, scaling in gradually. It is capped at 2× and switched off entirely when that largest count is under 1,000, so it can never run away. That largest count is kept for as long as the place stays in the outage data (an area on a utility's own map keeps it through up to 3 hours with no customers out), so where one outage runs into the next it can be an earlier, larger outage's peak rather than this one's. A stretched time is never labelled "at the current pace": where it is quoted, it reads "allowing for a slower final stretch", or, when it was also weighed against past outages here (section 4), says that instead.
- Ceiling on the wording. Past 48 hours we stop quoting a number and say "restoring slowly" with the measured rate instead — an hour figure that precise is not credible that far out.
3. When we refuse to answer
This is the part that matters most. We would rather show nothing than show a confident wrong number.
- Too small to model. Below 5 customers out in a county the arithmetic is noise, and the county's page says so instead of estimating. An area on a utility's own outage map, such as a town or neighborhood, gets no live estimate of its own below 10. A ZIP code, or a single reported outage, that we add into its town's count shows the town's estimate rather than one of its own, whatever its own count.
- No usable trend. If the count is changing by less than 5 customers an hour or 1% of those still out, whichever is larger, the page says there is no clear recovery yet and gives no live time. Where at least 4 matched past outages here back it (section 4), it says how long those typically ran instead.
- The peak may not have passed. An outage still growing can look like it's recovering for one reading. Before quoting a county-wide time we score whether the peak is credibly behind us, on a 0–1 scale that must reach 0.60. Evidence in favour: readings that have stopped rising (+0.25 once two in a row have not risen, +0.15 more at four; a reading up to 2% plus 2 customers above the one before still counts as not rising), time since the largest count we have recorded for the place (+0.20 at an hour, +0.10 more at three), and how much of that count has already come back (up to +0.20, in full once 30% is back, plus +0.15 once 80% is back). Evidence against, subtracted: a National Weather Service tornado, severe thunderstorm, high wind, hurricane, tropical storm, ice storm, blizzard or flash flood warning active for the county (−0.30); current wind gusts at or above 35 mph, which we sample only where 100 or more customers are out (−0.20); and, where the federal county data names the utility with the most customers out in the county, the other counties where that utility also has the most out still climbing (up to −0.15, in proportion to the share of them whose count rose at the latest reading). Below the threshold the page says "may still be growing" and withholds the live time; where at least 4 matched past outages here back it, it says how long those typically ran instead.
- The federal count stopped updating. When the federal county outage data has not updated for an hour, a county whose count it supplies in whole, or a tenth or more of it, gets no estimate until it updates, and the page says the count is delayed.
The accuracy record grades our estimate only at readings after an outage's peak, and skips every one where the time was withheld (the peak gate, a delayed federal count) or the pace showed no clear recovery. At each other reading above the "90% restored" mark it re-runs the live projection, aimed at that mark and corrected with the outage's own peak, and scores it against when the count next reached the mark. That is the live pace alone: a time also weighed against past outages is graded without that weighting, and a time past 48 hours, which the page shows only as "restoring slowly", is graded too.
4. History: what past outages here actually did
A brand-new outage has no trend yet. When we have enough local history we describe it — as history, never disguised as a live prediction.
- Matching. Past events at the same place are matched by weather type and by outage size, which is matched in bands of under 500, 500–2,000, 2,000–10,000, 10,000–50,000 and 50,000 or more customers: on both first, then on weather alone, then on size alone, then on neither, taking the first match with at least two events; past outages shorter than half an hour are left out. Once the outage has run 24 hours, past outages here that also ran that long are tried first, and the page calls them past multi-day outages. An outage's weather type is the worst it has seen since its event opened (section 1), from the weather alerts in force over it and the measured wind and heat, which is how every past outage is filed, so an outage whose storm warnings have lapsed is still matched with past storm outages. With no event open (the count has not reached 100 since the last one ended), it is matched on the weather alerts in force now. Where we have no weather to match, any weather matches: in Canada, which National Weather Service alerts don't cover, unless the measured wind or heat gives a weather type, and in an area on a utility's own map, whose past outages we record without the weather. For a range we additionally require past events whose peak was within 2.5× of the current one. A 300-customer blip and a 40,000-customer storm are not "similar outages", and we no longer describe them as such. Without a range, we give the time the matched events typically ran, and the page names what they had in common: their size band ("past outages here of 2,000–10,000 customers"), the weather ("… in the same kind of weather"), or both. Every past outage we keep reached 200+ customers at its peak, so a match on neither says "of 200+ customers". We don't use an outage's age or size when it has fewer than 100 customers out, is in the last stretch of an event (no more than 20% of its peak out for 24 hours), or is what is still out after an event has ended by the rule above. Such an outage is matched on the weather alone, or on neither, never on size, so its label names its past outages "of 200+ customers".
- Minimum evidence. A restoration estimate's label says what the typical past outage here did only when at least 4 matched past outages back it; with fewer, the label makes no such claim. Two or three can still pull an improving live estimate toward history, and its label, when it quotes the time, then says it weighed past outages here. A published range additionally requires that the spread be tight: the 75th percentile no more than 3× the 25th, or 3 hours when the 25th is under an hour. (The outage history on county and city pages is a record, not an estimate: it gives the typical restoration across as few as two past outages, and says how many.)
- Blending. Once a live trend exists, how far history pulls it depends on how many readings we hold for the place, which can include readings from before this outage began: with 12 or more the live pace barely moves, with fewer it leans more on history, most of all under 4, and either way the pull is weighted by how closely the history is matched. History is blended only into an outage whose age we use; without one there is no time left to weigh history against, so the live pace stands on its own.
- Cold start. When we read a county's own record and it holds fewer than two past outages of half an hour or more, we fall back to federal records. We read at most 500 county records an update, the counties with the most customers out first, so a county we don't reach that update, or whose record fails to load, gets the federal records instead if it has fewer than 5 customers out, however many past outages its own record holds, and no history at all that update if it has 5 or more. The federal records are 1.2 million county outage events reconstructed by replaying the U.S. Department of Energy / Oak Ridge National Laboratory EAGLE-I dataset (2014–2025) through the event rules in section 1, with any reading above twice the county's estimated number of customers first lowered to that level. Unlike our own record, their counts and typical times include outages shorter than half an hour. They are county-specific only, matched on the size band alone, or on all of the county's outages when its band has fewer than two or a typical time under half an hour, or when no size is used; there is no national average standing in for your county. A label that leads with them gives their span, "over 12 years of records", but not their source; a live time weighed against them says at most that it weighed past outages here.
5. Calibration: the range comes from our own past errors
When we show "likely 2–5 hr" beside a county-wide time, that band is empirical. At the close of every county outage we take the projections of 9 minutes or more that the accuracy record grades (section 3), divide the time each one actually took by the time it projected, and pool those ratios by confidence tier: how many of the outage's own readings had been taken by then (under 4, 4 to 11, or 12 or more). A live time takes the band of the tier the county's readings put it in, counted as in section 4, so readings from before this outage began can count. A tier publishes no range until 50 real samples back it, and each tier keeps only its most recent 400 so the band tracks current conditions rather than last year's.
6. Grading — ours and the utilities'
Every county outage that reached 200 customers is checked when it closes, and scored when at least one of its readings can be graded (section 3); the results are published on the accuracy page with the misses included. The published figures cover a rolling window — the 600 most recently graded outages, a few days' worth at current volume — next to a running count of every outage ever graded, so they move with each new storm rather than settling over time. The record also covers the times utilities post:
- We grade the restoration times utilities post through the federal county outage data against the same ground truth as ours. A posted time is graded at every reading that carried one while the count was above the "90% restored" mark, before the peak as well as after it, so the readings graded are not the same as ours (section 3). The time-matched comparison grades ours and theirs only at the readings where both gave a time.
- We count how often those posted times slip later. Once an outage's time has been a county's posted time, we follow that outage until it's restored, and each time its own time has moved back by more than half an hour in all before the county's count falls to 5% of its peak (never below 20 customers) for the last time, at the start of the 3 hours that end the event (section 1), that's recorded. A county's posted time is the earliest of the times posted for its outages, so it also jumps when the earlier outage is restored; that jump is not counted (methodology v3, 2026-09-26).
Published breakdowns are held back until there's enough data, so a handful of outages can't masquerade as a pattern: a state's figures appear once 5+ of its graded outages carried a posted time, and a utility is named at 10+. Each of those figures is taken over the outages that carry it: the posted-time error over those whose posted time could be graded, and the slip figures, which appear only once 5+ (for a state) or 10+ (for a utility) of its outages were followed outage by outage from their start. Below those counts a state or utility gets no figures of its own (a utility with 5 to 9 is counted without its name), though its outages still count in the national figures. Because the window spans only a few days, one large storm can still supply most of a breakdown.
7. Known limitations
- Coverage is not uniform. We read hundreds of utilities' own live outage maps; other utilities we see only in the county-level federal count, and a utility that reports into neither is missing from our counts. Missing data is not the same as zero outages, and pages say so rather than showing a reassuring zero.
- We report; we don't measure. Customer counts come from the figures reported by the utilities and by ODIN, the U.S. Department of Energy's county outage data, and we never add outages a source didn't report. Some reported figures are adjusted to agree with each other. Where a utility reports a total for a region and counts for the areas within it, the areas we can place in counties keep their own counts when they come to 90–100% of the total; otherwise, when all of the areas together come to at least 90% of it, those we can place are scaled to their share of the total; and when they come to less, the areas are set aside and the region's total is not divided: it goes whole to one county when we can tell which (from the region's own location, for example), or to none. Counts for the places within an area that add up to more than the count we place for that area are scaled down to it.
- An estimate is not a promise. A second storm, a transmission failure, or a re-prioritised crew can invalidate any trend-based estimate instantly. Your utility remains the authority for your account.
- County-wide outlooks are county-wide. Where a utility publishes only county totals, your street may be restored well before or after the county figure suggests — the page labels that explicitly.
Sources and how often they update: sources page. Live scored track record: accuracy page. How content is produced and corrected: editorial policy.