data
How to Verify a Storm Claim Independently
A step by step procedure for checking a storm claim against free federal records, with the limits of each source stated as you go.
Most arguments about a storm claim reduce to one question: did severe weather reach this address on this date? The federal record can speak to that, but only if you ask it in the right order. Each layer of the record arrives at a different time, carries a different label, and fails in a different way. Work the layers in sequence and you end up with something you can hand to someone who disagrees with you. Work them out of order and you end up quoting a preliminary report as though it were settled.
Fix the date before you search anything
Start with the date of loss, then test it. The Storm Prediction Center groups its daily storm reports by a 1200 UTC to 1159 UTC day, not by local midnight. The same page describes that boundary in local terms: today's reports begin updating at 6 AM CST or 7 AM CDT, and yesterday's reports cover 6 AM to 6 AM local time.
Two things follow. A storm late in the evening local time already carries the next calendar date in UTC, so a search keyed to the UTC date can look right past the file the report is actually sitting in. And a storm in the small hours after midnight belongs to the previous report day, which is the costlier version of the mistake. Before you query anything, write down the local date, the UTC date, and which of the two conventions the source you are querying uses.
Pull the near real time record first
The fast layer is SPC's daily storm reports. They are drawn from NWS Local Storm Reports, usually sent in near real time, and those underlying reports are collected by local NWS offices from damage surveys, emergency managers, and SKYWARN spotters. Archived days can be retrieved by date, and SPC offers KML files and a REST service alongside the web pages.
Two limits matter, and SPC states both itself. It labels these reports preliminary and shows them as is, which means a row can change or vanish once a local office finishes its review. And SPC does not decode non-thunderstorm Local Storm Reports, such as hurricane-related wind, so an absence in this layer can mean nothing more than that the report was of a type SPC never parsed. Use this layer to form a hypothesis. Do not use it as your answer.
Wait for the settled record
After the lag, the version that holds up appears. The NWS says it plainly: both the Storm Data publication and reports in the Storm Events Database are available 90 to 120 days after the event. The Storm Events Database covers tornadoes since 1950, severe thunderstorms since 1955, and all other weather events since 1996, so for hail and wind you are working with a record that begins in the mid 1950s.
SPC also publishes a severe weather database compiled from the same Storm Data, with tornado reports back to 1950 and hail and damaging wind reports back to 1955. The current year in that database is preliminary. That single fact explains most cases where two people pull the same event and get different rows: one of them pulled the preliminary year and the other pulled it after revision. Note the date you pulled, every time.
A screenshot of a preliminary page is not a document. Certified, official copies must be requested from NCEI, not from a local NWS office. Ask early, because the publication the certified copy is drawn from is itself subject to the 90 to 120 day lag.
Check the radar-derived record
Reports only exist where a person was standing. The radar layer does not carry that constraint, and NCEI's Severe Weather Data Inventory is where it is archived. SWDI holds NEXRAD Level-III hail signatures in a filtered version and an all-signature version, along with storm cell structure, mesocyclone and tornado signatures, and lightning strikes from Vaisala NLDN. You can reach it through an interactive map, a bulk download of the entire database as CSV, or a REST service, in Shapefile, KMZ, CSV and XML.
Read the page's own caveats before you quote a row from it. SWDI adds no quality control beyond archival processing. Missing data does not mean no severe weather occurred. And much of the automatically derived data is radar based, representing probable rather than confirmed conditions. A hail signature over the address says the storm had the right structure overhead. It does not say a stone hit that roof.
Interpret an absence correctly
This is where independent checks go wrong most often. The NWS supplies the correct reading: if an event is missing from both Storm Data and the Storm Events Database, it was not reported to the National Weather Service. That is a sentence about reporting, not a sentence about weather.
The rest of the record agrees with that reading. SPC says its data are used for NWS warning verification and may not capture all storm events. SWDI says outright that missing data does not mean no severe weather occurred. An empty result is a weak negative. Write it down as what it is.
Read the result honestly
The agencies publishing this data document its biases, and the biases run in a known direction. Reports cluster around population centers. A wind report is usually backed by a fallen tree rather than a measured gust, so wind reports lean toward wooded ground. Monetary loss figures in the database are described as highly suspect, which is reason enough never to cite one in a dispute that is about money.
The hail series also has a seam in it. The NWS raised the severe hail threshold from 0.75 inch to 1.00 inch in 2010, and for legacy purposes 0.75-inch reports remain in the annual hail files, so users may need to filter. A count of severe hail reports that spans that change is not a like-for-like count unless you did the filtering yourself.
The size of the undercount has been measured. Looking at 2012 to 2019 across the contiguous United States, Wendt and Jirak found that severe hail hours estimated from MESH can be 2 to 4 times greater than those estimated from Storm Data, even in plains areas where population density is relatively high, with larger differences where population density is low. Their MESH estimates of severe hail hours per year are higher than report-based estimates at every location in the contiguous United States. The paper allows that MESH likely overestimates severe hail to some degree and still concludes that severe hail is plausibly going underreported where few people live.
Why the date carries legal weight in at least one state
Verification is not only about persuasion. Florida Statutes section 627.70132 (2024) provides that for claims resulting from hurricanes, tornadoes, windstorms, severe rain or other weather-related events, the date of loss is the date the hurricane made landfall or the event is verified by the National Oceanic and Atmospheric Administration. In that state the federal record does not merely support a claim. It sets the date the clock runs from.
The same section ties its notice windows to that date. A claim or reopened claim, but not a supplemental claim, is barred unless notice of the claim was given to the insurer in accordance with the terms of the policy within 1 year after the date of loss. A supplemental claim is barred unless notice was given within 18 months after the date of loss. Florida is the only state checked here. Other states set their clocks differently and your policy may set its own terms, so read your own state's statute and your own policy rather than carrying this across a state line.
What to write down
Keep your check as structured as the records you checked.
- The local date, the UTC date, and which convention each source you queried uses.
- The preliminary SPC rows you found, with time, location and reported size, labeled preliminary.
- The Storm Data or Storm Events entry once the lag has passed, plus the date you pulled it.
- Whether you asked NCEI for a certified copy, and when.
- The SWDI query, which variant you used, filtered or all, and the caveats that come with it.
- What you looked for and did not find, written as "not reported", never as "did not happen".
Anyone who opens the file later should be able to tell which layer each statement came from.