HailAlmanac

How we count hail days

Every number on this site is computed by a documented, repeatable process from public NOAA and Census files. No figure is written by hand or by an AI model.

The records

NOAA's Storm Events Database, kept by the National Centers for Environmental Information (NCEI), is the official record of hail reports from National Weather Service offices since 1955. Each report has a date and time, the hail size in inches, the county, a location described from the nearest town ("3 mi NE of Frisco") and, for most years, coordinates rounded to about 1 km. NCEI publishes each month about three months after it ends; its record currently runs through Jun 30, 2026.

Preliminary reports. For later dates we use the National Weather Service's Local Storm Reports, as archived by the Iowa Environmental Mesonet at Iowa State University. These arrive within hours but are unchecked: NOAA later merges duplicates and drops some reports. In June 2026, for example, the preliminary feed held about 40% more reports of 1-inch hail nationwide than NOAA's final record for the month. Every 2026 report on this site is labeled preliminary, including the months NCEI has already published, because NOAA can still revise them.

NOAA's Storm Prediction Center publishes a cleaned copy of the same reports, but its website asks automated programs not to download from it, so we use NCEI's archive.

What a hail day is

A hail day is a calendar date, in local standard time, with at least one report of hail 0.75 inch or larger. We count days rather than reports because one storm can produce dozens of reports. A "1-inch hail day" has at least one report of 1 inch or more, the size at which the National Weather Service has called hail severe since 2010; a "2-inch hail day" has one of 2 inches or more. Reports with the same date, time, size and location are counted once.

Matching reports to cities

A report counts for a city, town or census-designated place when its coordinates fall inside the place's boundary or within 3 km (2 miles) of it. Boundaries come from the Census Bureau's 2025 cartographic boundary file. The buffer allows for NOAA's rounding of coordinates (about 1 km) and for spotters who describe a location to the nearest mile or so, but it also means neighboring places share some hail days. Distances are measured on a flat local projection, which is accurate to a few meters at this scale.

City figures start in 1996. Earlier rows often lack coordinates, and in the mid-1990s almost none have them:

YearHail reports in TX, OK, COWith coordinates
19851,052100%
19861,351100%
1987857100%
1988815100%
19891,663100%
19901,385100%
19911,833100%
19922,408100%
19931,9210%
19942,6040%
19952,9180%
19963,22698%
19972,378100%
19982,401100%
19992,787100%
20002,37998%

Counties, metros and states

County figures use the county NOAA assigned to each report, so they run back to 1955 without needing coordinates. A city belongs to the county that contains its Census internal point, even when the city spreads into neighboring counties. Metro areas are the Office of Management and Budget's 2023 metropolitan statistical areas: Dallas–Fort Worth, Houston, San Antonio, Austin, Oklahoma City, Denver, Colorado Springs, Amarillo. We started with the first six and added Colorado Springs and Amarillo because their main cities had more 1-inch hail days in 2016–2025 than San Antonio, the middle of the first six.

Which pages search engines see

We publish a page for every city, town and census-designated place in these metro areas, but ask search engines to index only those that pass a stated test, so that thin pages stay out of search results:

38 of 772 place pages pass today. A county page is listed when at least 2 of its cities are, and a state page when one of its counties is. Unlisted pages stay online and linked.

What the records cannot tell you

How often the data changes

We check NCEI for new or corrected files every day and fetch preliminary reports daily. Each page shows the date its own figures last changed. The full pipeline is code: it downloads the files, checks every row against a schema, and rebuilds the site.