Skip to main content
Results Roofing

DFW data study

Reported Hail Events by ZIP Code Across Dallas-Fort Worth, 2024-2026

A Results Roofing data study, sourced entirely from the NOAA National Centers for Environmental Information (NCEI) Storm Events Database. Every number on this page traces to a numbered source in the Sources section below and to a query ID (Q-nn) in the study’s methodology. Window: January 1, 2024 through June 30, 2026 (the latest month NOAA had published at pull time). Figures below are reported hail events and NWS-estimated property damage, never insurance claims: NCEI’s Storm Events Database holds no insurance claims data.

  • 724 reported hail events
  • 629 severe (Tier B)
  • 11 DFW-metro counties
  • 292 ZIP codes (ZCTAs)

The short version

Across the 11 counties of the Dallas-Fort Worth-Arlington metro, the National Weather Service verified 724 reported hail events from 2024 through June 2026, of which 629 met the severe-hail threshold (1.00 inch diameter or larger, “Tier B” in this study)[1]. Those Tier B events are not spread evenly across the metro’s 292 ZIP codes (ZCTAs): the busiest 10 percent of ZIP codes, 29 of them, hold 45.1% of every Tier B event recorded[2]. That is real concentration, comfortably past the 30 percent bar this study set for itself before looking at the data.

What does not hold up: whether a ZIP code’s rank one year predicts its rank the next. Comparing each ZIP’s count of severe-hail events in 2024 against 2025, the correlation is negative (Spearman rho = -0.336) and statistically significant (p = 0.0000276)[3]. The prediction that a ZIP’s rank would carry over year to year is not supported. This is a genuine result, not a data problem, and it means a homeowner should not read “my ZIP had a quiet 2024” as “my ZIP will have a quiet 2025.”

Because of that instability, and because a straightforward “top 10 ZIP codes for hail” list turns out to depend heavily on population density rather than storm exposure alone, this report publishes two rankings side by side rather than one headline list. See “Two honest rankings, not one” below.

What we measured

  • Dataset: NOAA NCEI Storm Events Database, bulk CSV export, Hail events only, Texas events (STATE_FIPS 48), county-based reports (CZ_TYPE C) in the 11 counties of the Dallas-Fort Worth-Arlington, TX Metropolitan Statistical Area (CBSA 19100): Collin, Dallas, Denton, Ellis, Hunt, Kaufman, Rockwall, Johnson, Parker, Tarrant, Wise[4].
  • Window: BEGIN_DATE_TIME from 2024-01-01 through 2026-06-30, the last day of the latest month NCEI had published at pull time. 2024 and 2025 are full calendar years; 2026 is a partial year, 6 of 12 months[5]. Every year-over-year and per-year figure below says so again where it matters.
  • Severity tiers, on MAGNITUDE (hail diameter in inches): Tier A is every reported hail event; Tier B is 1.00 inch or larger, the NWS severe-hail criterion in force since January 2010, and the tier this report’s headlines use; Tier C is 2.00 inches or larger, reported as a sensitivity check[6].
  • Geography: each event’s reported coordinates are matched to the 2020 Census ZIP Code Tabulation Area (ZCTA) that contains them. Results are labeled “ZIP (ZCTA)” throughout; see the methodology for why a ZCTA is a close but imperfect stand-in for a USPS ZIP code. Every one of the 724 reported events in this window carried a usable, in-Texas coordinate; none were dropped for missing location[7].

Finding 1 - H1: supported

Reported hail is concentrated, not evenly spread

The study’s first hypothesis predicted that Tier B hail events cluster in a minority of ZIP codes rather than spreading evenly across the metro’s 292-ZCTA universe, and set 30 percent as the bar the top decile (the busiest 10 percent of ZCTAs, 29 of 292) would need to clear.

The top 29 ZIP codes (10 percent of the metro’s 292) hold 45.1% of all 629 Tier B events recorded in the window[2]. That clears the 30 percent prediction by a wide margin, so H1 is supported: reported severe hail really is concentrated at the ZIP level in DFW, not evenly distributed.

The same test on the two sensitivity tiers shows concentration gets sharper, not weaker, as hail gets bigger[8][9]:

H1 concentration: share of events held by the busiest 10 percent of ZIP codes, by severity tier

Reference lines: 30 percent is the pre-registered prediction (H1 supported at or above this line); 20 percent is the falsification floor (H1 falsified below this line). All three tiers in this pull sit above the 30 percent line.

Bar chart showing the share of hail events held by the busiest 10 percent of ZIP codes (29 of 292), by severity tier. Tier A (all hail): 43.6 percent. Tier B, the study's headline severity: 45.2 percent. Tier C (2 inches or larger): 75.9 percent. A reference line at 30 percent marks the study's pre-registered prediction; all three tiers clear it.

H1 concentration by severity tier, with predicted threshold and falsification floor
TierEvents in windowTop-decile ZCTAsEvents held by top decileSharePredicted thresholdFalsification floor
Tier A (all hail)72429 of 29231643.6%30%20%
Tier B (headline, 1.00 in or larger)62929 of 29228445.1%30%20%
Tier C (2.00 in or larger)10829 of 2928275.9%30%20%

Finding 2 - H2: not supported

Last year's ranking does not predict next year's

The study’s second hypothesis asked whether a ZIP’s rank by Tier B event count holds from one year to the next, predicting a Spearman rank correlation of at least 0.30 (p below 0.05) between 2024 and 2025 counts, across the 149 ZCTAs that logged at least one Tier B event in either year.

The observed correlation is rho = -0.336, p = 0.0000276[3]: statistically significant, but negative, the opposite of the prediction. H2 is not supported. This is reported as a real finding, not reframed or hidden: whichever ZIP codes ran hottest for severe hail in 2024 were, if anything, somewhat less likely to rank high again in 2025 in this dataset, not more. A homeowner should not treat a quiet or a busy prior year at the ZIP level as a forecast for the next one.

H2 persistence: predicted vs. observed year-over-year rank correlation

Bar chart comparing the predicted year-over-year rank-correlation threshold of at least 0.30 against the observed Spearman correlation of negative 0.336 (p = 0.0000276, n = 149 ZIP codes), for 2024 versus 2025 severe hail event counts per ZIP code. The observed value is negative, on the opposite side of zero from the prediction: the persistence hypothesis is not supported.

H2 persistence: predicted threshold vs. observed Spearman correlation
SeriesSpearman rhop-valueZCTAs usedResult
Predicted threshold0.300.05149Pre-registered prediction
Observed (2024 vs. 2025)-0.33622.7600e-5149Not supported

Two honest rankings, not one

A single “top 10 ZIP codes for hail” list is the obvious thing to publish, and this study checked it against a second, equally valid ranking before publishing either: Tier B events per 10,000 residents, which corrects for the fact that a busier ZIP code can simply have more people around to see and report hail (denser ZIP codes generate more reports for the same storm, a known reporting bias in any observation-based weather dataset).

The two rankings mostly disagree. Only 3 of the top 10 ZIP codes by raw Tier B count (76023, 76066, 76426) also appear in the top 10 by Tier B events per 10,000 residents[10]. That falls below this study’s pre-registered floor of 5 shared ZIP codes, so this report does not publish a single “top ZIP codes” headline. Both rankings are published side by side instead.

Top 10 ZIP codes (ZCTAs) by reported severe hail events, 2024 through June 2026 (raw count, not population-adjusted)

Population-adjusted ranking differs; see the companion chart below, only 3 of these 10 ZIP codes also appear there.

Horizontal bar chart ranking the 10 ZIP codes with the most reported severe hail events (1 inch or larger) from 2024 through June 2026. Ranked highest to lowest: 76087 with 19 events, 76028 with 17, 76226 with 16, 76033 with 14, 76066 with 13, 76262 with 13, 75119 with 12, 76426 with 12, 76023 with 11, and 76108 with 11.

Raw ranking, by count of Tier B events, 2024 through June 2026
RankZIP (ZCTA)CountyTier B eventsHail daysLargest hailDensity (per 10 sq mi)NWS-estimated damage
176087Parker1942.50 in, 2026-04-281.02$73,000
276028Johnson/Tarrant17101.75 in, 2025-03-082.19$16,000
376226Denton1673.00 in, 2024-04-013.21$6,750,000
476033Johnson1453.00 in, 2024-05-090.79$106,000
576066Parker1352.75 in, 2026-04-281.48$166,000
676262Denton/Tarrant1343.00 in, 2024-03-143.07$1,012,000
775119Ellis1262.50 in, 2026-04-290.45$140,000
876426Wise1272.75 in, 2025-05-170.92$54,000
976023Parker/Wise1144.50 in, 2024-04-012.05$919,000
1076108Parker/Tarrant1112.75 in, 2026-04-252.55$80,000

Source: [11]. A sensitivity check worth flagging: ranking the same ZIP codes by distinct storm episodes instead of raw event count (so one storm that generates several reports in neighboring ZIP codes cannot inflate a rank by itself) changes 4 of these 10 ZIP codes: 76087, 76262, 76023 and 76108 drop out of the episode-based top 10, replaced by 75165, 75407, 76008 and 76050. The other 6 ZIP codes rank in the top 10 both ways[12]. Read the raw ranking as “most reported severe-hail events,” not as “most distinct storms.”

Episode-based sensitivity check

Table comparing two ZIP-code rankings: the raw top 10 by severe hail event count, and a sensitivity ranking by distinct storm episode count instead of raw events. 6 of the 10 ZIP codes rank in both top 10 lists; 76087, 76262, 76023 and 76108 rank in the raw top 10 but not the episode-based top 10.

Raw top-10 vs. episode-based top-10 ZIP rankings
RankRaw top 10 (by event count)Also in episode-based top 10?Episode-based top 10 (by distinct storms)
176087No76028
276028Yes75119
376226Yes76226
476033Yes76426
576066Yes75165
676262No75407
775119Yes76008
876426Yes76033
976023No76050
1076108No76066

Top 10 ZIP codes (ZCTAs) by severe hail events per 10,000 residents, 2024 through June 2026 (population-normalized)

Corrects for reporting bias from population density; only 3 ZIP codes overlap with the raw top-10 ranking above. Rank 3 (75101, population 633) is a small-population ZIP; its rate is unstable from a single event.

Horizontal bar chart ranking the 10 ZIP codes with the most severe hail events per 10,000 residents from 2024 through June 2026. Ranked highest to lowest: 76066 at 34.07 per 10,000, 76023 at 16.12, 75101 at 15.80 (a small-population ZIP, population 633), 76044 at 13.99, 76487 at 12.35, 76431 at 11.37, 76050 at 10.94, 76426 at 10.23, 76073 at 9.12, and 76078 at 8.02.

Population-normalized ranking, by Tier B events per 10,000 residents
RankZIP (ZCTA)County2020 populationTier B eventsPer 10,000 residents
176066Parker3,8161334.07
276023Parker/Wise6,8251116.12
375101Ellis633115.80
476044Johnson5,715813.99
576487Parker/Wise3,238412.35
676431Wise3,517411.37
776050Ellis/Johnson7,315810.94
876426Wise11,7271210.23
976073Wise6,57969.12
1076078Denton/Wise9,97988.02

Source: [13]. Read this table with one more caveat: ZIP 75101 has only 633 residents in the 2020 Census count, so a single Tier B event produces a large per-10,000-residents rate. Small-population ZIP codes can swing sharply on this ranking from one additional event; the raw-count table above is the steadier read for those ZIP codes specifically.

NWS-estimated property damage, by county

The NWS’s own property-damage estimate is disclosed at the county level only, worded “NWS-estimated”: it is a rough, often-blank text field (DAMAGE_PROPERTY) parsed from the source data, not an insurance-grade appraisal, and it can repeat across the several reports of one storm episode.

182 of the 724 reported hail events in the window (25.1percent) carried a nonzero NWS damage estimate, summing to $22,318,000 across the 11-county DFW metro[14].

NWS-estimated hail property damage by county, 2024 through June 2026

NWS estimate only, not an insurance appraisal; reported at county grain, never ZIP-summed into a single metro headline without this caveat.

Horizontal bar chart of NWS-estimated hail property damage by county from 2024 through June 2026. Denton County highest at $15,560,000, followed by Tarrant at $2,713,000, Parker at $1,396,000, Wise at $1,141,000, Dallas at $460,000, Johnson at $425,000, Ellis at $267,000, Collin at $181,000, Rockwall at $99,000, Hunt at $69,000, and Kaufman lowest at $7,000.

NWS-estimated hail property damage by county
CountyReported events (Tier A)Severe (Tier B)Events with a damage estimateShare with an estimateNWS-estimated damage
Denton114922320.2%$15,560,000
Tarrant2181895324.3%$2,713,000
Parker64632640.6%$1,396,000
Wise52502038.5%$1,141,000
Dallas72621013.9%$460,000
Johnson45442044.4%$425,000
Ellis4135614.6%$267,000
Collin73581317.8%$181,000
Rockwall1010660.0%$99,000
Hunt1713423.5%$69,000
Kaufman181315.6%$7,000

Source: [15]. Denton County’s total is driven by a small number of high-end estimates on specific reports (for example a $6,750,000 estimate tied to a single April 2024 report in ZIP 76226); it is a county total, not an even distribution across Denton’s ZIP codes.

Reported hail events by year

Reported hail events by year, DFW metro, 2024 through June 2026

Tier A, all reported hail
Tier B, severe (1 in or larger)

Bar chart of reported hail events across the Dallas-Fort Worth metro by year. 2024: 328 total reported events, 260 severe (1 inch or larger). 2025: 229 total, 216 severe. 2026 (partial year, through June only): 167 total, 153 severe.

Reported hail events by year
YearTier A (all events)Tier B (severe, >=1.00 in)Months in windowPartial year
202432826012No
202522921612No
20261671536Yes, through June

Source: [16]. Do not compare 2026’s totals against 2024 or 2025 as if they covered the same span: 2026 carries only 6 of its 12 months in this window, and hail season in North Texas runs heavily through spring, so a partial year that includes March through June is not directly comparable to a full calendar year.

What this data cannot tell you

  • Reports, not claims. This is the NWS’s verified record of reported hail events, not an insurance claims database. No claim volume, no payout, no individual property is in this data.
  • Coverage gap. 187 of the metro’s 292 ZIP codes (64.0 percent) recorded at least one reported hail event in this window; the remaining 105 recorded none[17]. That does not mean no hail fell there, only that none was reported to, or verified by, the NWS in this specific window.
  • Point locations, not storm footprints. A hail storm crosses many ZIP codes but is recorded as one or a few report points. See the methodology for how that shapes the ZIP-level counts above.
  • Population and reporting bias. More residents generally means more reports for the same storm. That is exactly why this report publishes the population-normalized ranking above rather than the raw count alone.

Full detail

Methodology note

This note discloses dataset, date range, filters, transformations and limitations in enough detail that a second analyst could reproduce every number on this page.
Canonical URL: https://resultsroofing.com/dfw-hail-report . Every syndicated or re-published copy of this study should link back here as the source of record.

Dataset and access

Primary source: NOAA National Centers for Environmental Information (NCEI), Storm Events Database, bulk CSV export. Bulk directory: ncei.noaa.gov/pub/data/swdi/stormevents/csvfiles. Columns used: EVENT_ID, EPISODE_ID, STATE_FIPS, CZ_TYPE, CZ_FIPS, EVENT_TYPE, BEGIN_DATE_TIME, MAGNITUDE, MAGNITUDE_TYPE, DAMAGE_PROPERTY, BEGIN_LAT, BEGIN_LON. Access: anonymous HTTPS, no key. US Government work, public domain.

Geometry: US Census Bureau TIGER/Line, 2020 Census ZIP Code Tabulation Areas (ZCTA5), shapefile tl_2022_us_zcta520.zip (2020 ZCTA boundaries, 2022 TIGER vintage). ZCTA universe: the Census 2020 ZCTA-to-county relationship file, filtered to the 11 county GEOIDs below. Population: 2020 Decennial Census, table P1 (P1_001N total population), by ZCTA, via the Census Data API (2020/dec/dhc), used only for the population-normalized ranking, never as a headline source on its own.

Geographic and date filters, applied in this order

  1. STATE_FIPS = 48 (Texas).
  2. CZ_TYPE = C (county-based event; hail is always county-based, never zone-based).
  3. CZ_FIPS in the 11 counties of the Dallas-Fort Worth-Arlington, TX Metropolitan Statistical Area (CBSA 19100), OMB Bulletin 23-01 (July 2023): Collin, Dallas, Denton, Ellis, Hunt, Kaufman, Rockwall, Johnson, Parker, Tarrant, Wise. Hood and Somervell counties belonged to the 2013 CBSA delineation and are excluded here.
  4. EVENT_TYPE = Hail, exact match. Marine Hail, Tornado, Thunderstorm Wind and every other convective type are excluded; this is a hail-only study.
  5. BEGIN_DATE_TIME from 2024-01-01 00:00 through 2026-06-30 23:59, local standard time per CZ_TIMEZONE, no time-zone conversion. June 2026 was the latest full month published in the d2026 file at pull time (2026-09-26).
  6. Each event’s BEGIN_LAT/BEGIN_LON is assigned to the 2020 ZCTA polygon that contains it (point-in-polygon). Events with blank, zero or out-of-Texas coordinates would stay in county totals and be excluded from ZIP tables; in this pull, zero events were excluded on that basis.

Filter funnel

Filter funnel from all Storm Events rows to the study's 724 qualifying events
StageFilter appliedRows remaining
All rowsEvery Storm Events detail row, 2024-2026 files, every state and event type181,223
TexasSTATE_FIPS = 4814,632
11 countiesCZ_TYPE = C and CZ_FIPS in the 11 DFW-metro counties1,305
HailEVENT_TYPE = Hail, exact match724
Date windowBEGIN_DATE_TIME within 2024-01-01 through 2026-06-30724
Usable coordinatesBEGIN_LAT/BEGIN_LON present, nonzero, inside the Texas bounding box724

Transformations

  1. Uniqueness. EVENT_ID was asserted unique across all three details files before aggregation. EPISODE_ID groups the events of one storm episode and is used in the episode-based sensitivity check.
  2. Spatial join. Point-in-polygon of (BEGIN_LON, BEGIN_LAT) against the ZCTA5 polygons. TIGER/Line uses the NAD83 datum and Storm Events coordinates are treated as WGS84; the horizontal difference between the two in Texas is far smaller than the precision of a storm report location.
  3. Severity tiers, on MAGNITUDE (hail diameter in inches): Tier A is every Hail event; Tier B is MAGNITUDE >= 1.00 (the NWS severe-hail criterion in force since January 2010); Tier C is MAGNITUDE >= 2.00.
  4. Aggregation, per ZCTA and per county: Tier A/B/C event counts; distinct hail days; max MAGNITUDE with its event date; count of events whose DAMAGE_PROPERTY parses above zero; summed parsed DAMAGE_PROPERTY (K and M suffixes parsed; blank or 0 means no estimate).
  5. Density. Tier B events per 10 square miles of ZCTA land area, from ALAND20 converted to square miles.
  6. H1 (concentration). ZCTAs ranked by event count within each tier (ties broken on ZCTA5 ascending); the top decile is 10 percent of the full 292-ZCTA universe (29 ZCTAs), not 10 percent of only the ZCTAs that logged an event.
  7. H2 (persistence). Spearman rank correlation and its p-value on 2024 versus 2025 Tier B counts per ZCTA, restricted to ZCTAs with at least one Tier B event in either year (149 of 292 in this pull). The partial 2026 year is excluded from H2 by design.
  8. Episode-based sensitivity. The raw Tier B top 10 (by event count) is compared against a top 10 ranked by distinct EPISODE_ID per ZCTA.
  9. Population-normalized ranking. Tier B events per 10,000 residents, using 2020 Decennial population by ZCTA. A ZCTA with zero recorded 2020 population is excluded from this ranking; two ZCTAs (75270, 75390) were excluded on that basis in this pull.
  10. Every table and figure on this page carries a query ID (Q-nn) that resolves to the script and input hashes recorded in the study’s analysis manifest.

Reproducing this study

From a clean checkout of the data-studies repository:

python scripts/run_pipeline.py --study-dir results-roofing/hail-dfw-2024-2026
python scripts/build_assets.py --study-dir results-roofing/hail-dfw-2024-2026

run_pipeline.py re-runs the pull, cleaning funnel, spatial join, Census population enrichment, derived statistics and the analysis manifest, in order, stopping at the first failure. build_assets.py then reshapes the analysis outputs into the chart data this report cites. Every step is idempotent: a repeat run reproduces byte-identical outputs from the same pinned source files.

Known biases and limitations

Known biases and limitations, and how each bounds the claims in this report
LimitationWhy it mattersHow it bounds the claims in this report
Reports, not claimsStorm Events records NWS-verified reports from spotters, the public, emergency managers, media and others. It holds no insurance claims.Every figure in this report is worded "reported hail events" or "NWS-estimated hail damage," never "claims."
Reporting biasDenser ZIP codes generate more reports for the same storm, independent of true hail exposure.The raw top-10 ranking is published alongside, never instead of, the population-normalized ranking.
Point location, not storm footprintA hail swath crosses many ZIP codes but is recorded as one or a few report points, often a town or landmark with a range and azimuth from it.Results are labeled "ZIP (ZCTA)," never a claim of exhaustive coverage of a ZIP's full area. The excluded-coordinate count (zero in this pull) is disclosed in the filter funnel.
One storm, many reportsOne storm episode can produce several event reports in neighboring ZCTAs, lifting their counts together without necessarily reflecting more distinct storms.The episode-based sensitivity check is published beside the raw top-10 ranking, naming the 4 ZCTAs it demotes.
Partial 2026 and late revisionsNCEI publishes a month 75 to 90 days after it ends and may revise recent months when it regenerates a file.The window end (2026-06-30) and the partial-year flag on 2026 are stated on every year-by-year figure. A re-pull requires a new tracking entry and a version bump on every affected table.
Damage estimates are roughDAMAGE_PROPERTY is an NWS estimate, often blank or 0, stored as text with K/M suffixes, and may repeat across the several reports of one episode.Damage is reported at the county grain only, worded "NWS-estimated," and never summed into a single metro-wide dollar headline without this caveat restated.
ZIP versus ZCTAZCTAs are Census statistical approximations of USPS ZIP codes; PO-box and single-building ZIP codes have no ZCTA.Every table labels results "ZIP (ZCTA)."
County scopeThe 11-county CBSA-19100 metro may not match Results Roofing's actual service area.Owner-confirmed at brief sign-off. Any change to scope requires a signed brief v2.
Sub-severe reportsStorm Data includes hail smaller than 1.00 inch (Tier A).The published headline uses Tier B (1.00 in or larger); Tier A appears only as a sensitivity view, labeled as such.
Datum and coordinate precisionTIGER/Line uses NAD83; Storm Events coordinates are treated as WGS84, and report coordinates carry coarse precision.No coordinate is published to more precision than the source carries; the datum difference in Texas is smaller than report-location precision.
Small-population instability in the per-10k rankingA ZIP code with very few residents (for example, 75101 at 633 residents) can swing sharply on a per-10,000-residents rate from a single additional event.Flagged directly under the population-normalized table below; the raw-count ranking is offered as the steadier read for those specific ZIP codes.
Coverage gap105 of the metro's 292 ZCTAs (36.0 percent) recorded zero reported hail events in this window.Stated plainly: this means no report was verified in this window, not that no hail fell.
Unreported eventsStorm Events depends on a human report reaching the NWS, plus NWS verification. Hail that fell but produced no report of any kind never enters this dataset at all.Every count in this report is a floor on true hail occurrence, never a ceiling.
County vs ZIP granularityNWS property-damage estimates are sparse enough per ZCTA that the study's own rule (ZCTA-level damage ships only if at least half the ZCTA universe has a nonzero value) is not met.Damage is disclosed at county grain only, never rolled down to ZIP.

What was not done in this slice

Reconciling the pipeline’s county totals against NOAA’s NCEI search-interface totals (the study’s internal metric M9) is a manual web-UI cross-check performed by the study team outside this page. No new metric beyond the ones defined in the study brief and computed in its analysis stage appears anywhere in this report: every number here is a reshaping of an existing analysis output, not a new computation.

For reporters and editors

Share this data

Four sourced stat cards, ready to cite or repost. Every stat matches a number on this page; the source line repeats the citation so it travels with the card.

Hail does not hit DFW evenly.

The busiest 10 percent of DFW ZIP codes, 29 of 292, hold nearly half of every severe hail event reported since 2024.

45.2%

of severe (1 in or larger) reported hail events, 2024 through June 2026

Source: NOAA NCEI Storm Events Database, DFW metro, 2024 through June 2026. Reported hail events, not insurance claims. Results Roofing. https://resultsroofing.com/dfw-hail-report

Last year's hail hot spot is not a forecast.

DFW ZIP codes that reported the most severe hail in 2024 were not more likely to top the list again in 2025, our data shows the opposite.

rho = -0.34

year-over-year rank correlation, severe hail events per ZIP, 2024 vs. 2025 (p = 0.0000276, statistically significant, and negative)

Source: NOAA NCEI Storm Events Database, DFW metro, 2024 through June 2026. Reported hail events, not insurance claims. Results Roofing. https://resultsroofing.com/dfw-hail-report

Which DFW ZIP really sees the most hail?

Adjusted for population, ZIP 76066 in Parker County reports the most severe hail of any ZIP code in the metro, a different answer than the raw count alone gives.

34.1 per 10,000

severe reported hail events per 10,000 residents, ZIP 76066, 2024 through June 2026

Source: NOAA NCEI Storm Events Database, DFW metro, 2024 through June 2026. Reported hail events, not insurance claims. Results Roofing. https://resultsroofing.com/dfw-hail-report

NWS-estimated hail damage across DFW: not evenly spread.

The National Weather Service estimated $22.3 million in hail property damage across the 11-county Dallas-Fort Worth metro since 2024, with Denton County's estimate the highest of any county.

$22.3M

NWS-estimated hail property damage, 11-county DFW metro, 2024 through June 2026 (not an insurance claims total)

Source: NOAA NCEI Storm Events Database, DFW metro, 2024 through June 2026. Reported hail events, not insurance claims. Results Roofing. https://resultsroofing.com/dfw-hail-report

Full chart data, alt text and render specs for every figure on this page are documented in the study’s asset package. Every re-share of these cards should link back to https://resultsroofing.com/dfw-hail-report as the canonical source.

Sources cited on this page

Numbered source citations for every claim on this page
#ClaimSource file (data-studies repo)Field / query
1724 reported events, 629 Tier Banalysis/h1_concentration.jsontier_a_sensitivity.total_events, tier_b_headline.total_events (Q-06); cross-checked against analysis/funnel.csv stage "hail" row_count (724)
2Top 29 ZIPs hold 45.2% of Tier B eventsanalysis/h1_concentration.jsontier_b_headline.share = 0.4515103... (Q-06)
3H2 rho = -0.336, p = 0.0000276, not supportedanalysis/h2_persistence.jsonrho, pvalue, result (Q-07)
4Dataset, geography and county listresults-roofing/hail-dfw-2024-2026/brief.md, section 4-5; pull-config.jsongeography.counties
5Window and partial 2026 yearresults-roofing/hail-dfw-2024-2026/tracking.md; analysis/k1_k6_summary.json"Window end month" line; K3.window_end = 2026-06-30 (Q-10 input)
6Tier definitionsresults-roofing/hail-dfw-2024-2026/brief.md, section 5Event type and size subsection
70 events lacked usable coordinatesanalysis/k1_k6_summary.jsonK2.share = 0.0, K2.tier_a_events = 724
8Tier A top-decile share 43.6%analysis/h1_concentration.jsontier_a_sensitivity.share = 0.43646... (Q-06 sensitivity)
9Tier C top-decile share 75.9%analysis/h1_concentration.jsontier_c_sensitivity.share = 0.75925... (Q-06 sensitivity)
103 of 10 overlap between raw and per-10k top 10analysis/population_ranking_summary.json (K6 status cross-checked in analysis/k1_k6_summary.json)overlap_count = 3, overlap_zctas = ["76023", "76066", "76426"]
11Raw top-10 ZIP tableanalysis/zcta_stats.csv (rows for the 10 ZCTAs) and analysis/population_ranking_summary.jsonraw_top10_by_tier_b_count order (Q-02)
12Episode-based sensitivity, 6 of 10 overlapcharts/episode_sensitivity_top10.csv (reshaped from analysis/episode_sensitivity.json)overlap_count = 6, overlap_zctas = ["75119", "76028", "76033", "76066", "76226", "76426"]
13Population-normalized top-10 ZIP tableanalysis/population_ranking.csv and analysis/population_ranking_summary.jsonper10k_top10_by_tier_b_rate order (Q-02 population view)
14182 of 724 events (25.1%) with a damage estimate, $22,318,000 totalanalysis/county_stats.csv (summed across all 11 rows)damage_events, damage_sum_usd (Q-05)
15Per-county damage tableanalysis/county_stats.csvfull row set (Q-05)
16Events by year tableanalysis/events_joined.csv, grouped by year and tier_bQ-01, formatted in assets/charts/m1_events_by_year.csv
17187 of 292 ZCTAs (64.0%) with at least one reported eventanalysis/m10_coverage.jsonM10.share = 0.64041..., M10.zctas_with_tier_a_event = 187, M10.universe_zctas = 292 (Q-10)

External source citations

  • NOAA National Centers for Environmental Information, Storm Events Database, bulk CSV files d2024 to d2026, file stamps as recorded in the study's tracking.md.
  • US Census Bureau, TIGER/Line Shapefiles, 2020 Census ZCTA5, and 2020 ZCTA to county relationship file.
  • US Census Bureau, 2020 Decennial Census, table P1 (P1_001N total population), queried via the Census Data API, 2020/dec/dhc.

Full source-file provenance (byte sizes, SHA-256 hashes, pull timestamps) is recorded in the study’s tracking log, available on request. Questions about methodology or a request for the underlying data tables: contact info@resultsroofing.com.

Roof due for a look after the last storm?

Whether or not your ZIP made either ranking above, a free inspection is the only way to know what the last few years of hail actually did to your roof.