Summary
This page is the single source for the accuracy figure Flash publishes. Any other page that quotes up to 99.6% links here, and the figure is always printed with its window, its ground truth and the words “up to”.
Read plainly, up to 99.6% is a hit rate on the one-hour window: of the cloud-to-ground strikes recorded by the ground-truth network, up to 99.6% landed inside a cell Flash had already flagged at Advisory or higher during the previous hour, over a five-year verified dataset across the contiguous United States. It is not a claim about exact strike points, about intra-cloud lightning, or about sites outside our coverage, and the sections below say so. The “up to” is not hedging: the hit rate moves with season and geography, and the section on it says by how much.
Ground truth
Every score on this page is computed against cloud-to-ground (CG) strike records from an independent national lightning-detection network, the same kind of reference most U.S. safety programmes use. The network reports a located CG stroke within seconds of it happening; we treat each located stroke as one ground-truth event. Flash never scores itself against its own output.
Intra-cloud flashes are excluded from both the forecast target and the score. They do not reach the ground, and counting them would flatter the hit rate.
Unit of measure
One hit, defined
A hit is a CG strike inside a 1×1 km cell that Flash flagged at Advisory or higher within the preceding hour.
A miss is a CG strike in a cell with no flag in that window. A false alarm is a flagged cell-window with no CG strike inside it. An all-clear is correct when no CG strike follows it within the return-to-play window your policy sets.
- Clear
- Advisory · counts as flagged
- Watch
- Warning
How the score is built
Every flag Flash issues and every ground-truth strike are placed on the same 1×1 km grid, on the same clock. Each event is then classified by the definitions above, and the score is read off. The arithmetic is fixed before the data arrives, so nobody can move the goalposts after the fact.
Align. Flags and strikes are matched cell by cell and hour by hour. A strike is compared only with the flags issued for its own cell in the hour before it.
Classify. Every strike becomes a hit or a miss. Every flagged cell-window with no strike becomes a false alarm. Nothing is dropped and nothing is counted twice.
Score. Accuracy is hits divided by all strikes. The false-alarm side is tracked beside it, because a forecast that flagged every cell all day would score a perfect hit rate; both are reviewed together before a figure is published.
Only the one-hour window is scored. The 5-hour lightning probability is planning guidance and is not scored here.
Why “up to”
The figure is always written “up to 99.6%”, because the hit rate moves with season and geography. In fall, winter and spring, when thunderstorms are organised along fronts, it reaches up to 99.6%. In summer, with air-mass thunderstorms that build and collapse in place, it is closer to 96%. Florida and Colorado see more air-mass storms, so their figure falls to about 96% at times too.
Up to 99.6% is the five-year verified figure over the contiguous United States, computed exactly as the sections above describe. The full method, including the event definition, the validation data and period, the geographic scope and how false alarms and missed events are counted, is available on request.
Why the hit rate is this high
We are asked all the time how the hit rate reaches 96% or better. It is not a fair fight.
Traditional weather models update every one to six hours. The typical life cycle of a thunderstorm is about 30 minutes. A model that updates once an hour misses whole events, which lowers its probability of detection (POD).
Flash re-runs every 2 minutes and downscales its resolution to under 1 km, so it rarely, if ever, misses an event. The same refresh lowers the false-alarm rate (FAR), because a cell is unflagged as soon as the storm weakens.
A higher POD and a lower FAR together are what produce the accuracy figures on this page.
Worked example
Illustrative example · Not live weather
Three cells on one made-up afternoon. The times exist only to show the arithmetic; they do not describe a real storm or a real site.
| Cell | Flash flag | Ground-truth strike | Result |
|---|---|---|---|
| Cell A · north field | Advisory at 2:10 PM | 2:47 PM, inside the cell | Hit |
| Cell B · car park | Advisory at 2:12 PM | None by 3:12 PM | False alarm |
| Cell C · east range | No flag | 2:30 PM, inside the cell | Miss |
Over the real scoring period, hits divided by hits plus misses is the published figure of up to 99.6%. The false-alarm count is reviewed beside it and never folded into it.
What it does not cover
Intra-cloud lightning. Only cloud-to-ground strikes are forecast and scored.
Sites outside the continental United States. No forecast is issued there, so nothing is scored.
Hail. Hail is predicted by its own model, up to 55 minutes before the first stone falls, with size to the hundredth of an inch, at 1×1 km resolution with updates every five minutes, built on four years of convective storm data across the CONUS (2021 through 2024). It is verified by its own method and has no separate published accuracy figure yet; verification examples are available on request. The up to 99.6% on this page is a lightning figure only.
Second check: real cases
Flash also verifies its lightning predictions through its partnership with StruckByLightning.org, the lightning-safety education site that keeps a record of lightning injuries and deaths. We take past cases from that record and run the algorithms on them to see how much lead time Flash would have given before each strike.
StruckByLightning.org (opens in a new tab) (opens in a new tab) · StruckByLightning.org: lightning-safety education and the strike record, a partner of Flash Weather
Reproduce it
Anyone can re-run the score. Request the validation dataset and compute the figure yourself; the definitions above fix the arithmetic before the data arrives.
Email support@flashweather.ai with the subject “Validation dataset”. You receive a CSV: cell id, cell centroid, flag timestamp, alert level, and the matched ground-truth strike timestamp or none.
Recompute. Accuracy = hits ÷ (hits + misses). False-alarm ratio = false alarms ÷ flagged cell-windows. The worked example above is the whole of the arithmetic.
Compare. Your accuracy should match the figure on this page, up to 99.6% over the five-year period. If it does not, write to us and we will publish the discrepancy here.
Reviewer

Jason Deese
Founder & CEO, Flash Weather
A 20-year National Weather Service veteran and former Chief Meteorologist at Atlanta Hartsfield-Jackson International Airport. Responsible for the method and every figure on this page.
Reviewed · Current method
Questions about the method: support@flashweather.ai · phone on request via the demo form

