CountyGuard Research

How Often the Official Storm-Damage Record Carries a Damage Value

A completeness benchmark for county-coded NOAA storm events in Colorado, Ohio, Oklahoma, Pennsylvania, and Texas, complete years 2015–2025.

Executive Summary

Across five states and eleven complete years, 83.8% of county-coded storm-event records carry a stored property-damage value. That overall figure hides the variation that matters to anyone comparing places. For the same event type in the same year, the share with a stored value differs across states by a median of 25.5 percentage points. Pooled over the period, for example, the field is populated in 42.1% of Colorado hail records and 96.9% of Ohio hail records. The typical ordering also persists from year to year: the median Spearman rank correlation is 0.850000 across the window's ten consecutive year pairs.

The audience is anyone using this record to compare damage across places: analysts, practitioners, journalists, and researchers who need governed public-data comparisons. The paper provides a reusable reference map for checking whether the field is usually filled in for the relevant slice before making a comparison.

The most important limitation is what "populated" means: a stored value, and a stored zero counts as stored. Of the 82,121 in-window records, 54.7% carry a reported zero and only 29.1% carry a positive amount. A stored zero is not a blank, and it is not evidence that damage was zero. Nothing here measures whether any recorded amount is accurate or how severe an event was.

The permitted implication is narrow: assess whether a damage comparison is defensible for the relevant slice and qualify it when it is not. The benchmark identifies no cause, grades no office, and supports no operational action.

Business Question

For county-coded storm events in Colorado, Ohio, Oklahoma, Pennsylvania, and Texas over complete calendar years 2015–2025: how often does a record carry a populated property-damage field, does that share differ materially across states for the same event type in the same year, and is the state ordering stable enough from year to year to reuse?

The reader is a professional research reader who needs governed public-data comparisons. This is a reference benchmark, not an operational or consumer-decision paper, and it names no actor who must do anything.

The question is worth asking because the record's publisher is candid about its damage figures but does not say how often the field is populated. The Storm Events Database FAQ calls property and crop damage "a broad estimate," entered as a best guess, and warns that the National Weather Service does not guarantee its accuracy or validity. NOAA's Storm Prediction Center is blunter about its own severe-weather database: "Monetary loss information is highly suspect and should be used with caution, if at all." A 2016 review extended the concern to missingness, reporting damage figures absent from more than half of records nationally. None of those sources supplies the local reference an analyst needs: for a particular state, event type, and year, is the field usually populated?

The supported branch is the one observed — completeness varies materially and stably enough to reuse, which turns a standing caution into a lookup. The null branch would have been just as useful: uniformly high completeness would have narrowed the national missing-damage critique and defended careful local use of the same record.

Data & Scope

The source is NOAA's Storm Events Database, distributed by the National Centers for Environmental Information and entered by NOAA's National Weather Service. The analysis uses the county-coded storm-event table only: one row is one recorded storm event carrying a county code, and the measured field is the recorded property-damage value on that event.

The universe is the five governed states — Colorado, Ohio, Oklahoma, Pennsylvania, and Texas — over complete calendar years 2015 through 2025. That five-state scope holds throughout: nothing is narrowed to a subset and nothing generalizes beyond them. The grain is state × event type × year, with state × year and state × event type rollups.

The analysed extract holds 83,162 rows with 83,162 distinct event identifiers and no duplicates; 82,121 fall inside the primary window. No row was dropped for a missing state, event type, or year, and none carried a negative damage value.

Three exclusions apply. The partial year 2026 is excluded from every primary and sensitivity statistic, because the record publishes on a lag and a partial final year mixes an incomplete event count with an incomplete damage-entry backlog; it appears once as a labelled disclosure, 1,041 events at a populated share of 85.3%. Forecast-zone events are excluded as a different geographic unit, and their scale bounds what this benchmark does not describe: 49,035 in-window events at a populated share of 74.8%. Cells below the minimum size are excluded from every comparison, a cell entering only with at least 20 non-malformed events; of 428 cells in the window, 285 are reportable and 143 are suppressed and never named with a completeness figure.

Nothing is imputed: an unpopulated damage field is the measurement, not a gap in it.

Method

Every recorded damage value falls into exactly one of four classes: unpopulated (null or non-finite — nothing stored), reported zero (exactly zero), positive (above zero), and malformed (negative, of which the window contains none). In-window, the split is 13,283 unpopulated, 44,927 reported zero, and 23,911 positive.

The primary measure is the populated share — reported-zero and positive records together over all non-malformed records in the cell — and its companion is the positive share, positive records only over the same denominator: populated share = (reported zero + positive) / non-malformed events and positive share = positive / non-malformed events. The two are always published together, because a reported zero proves a value was stored, not that damage was zero in fact.

An unadjusted state comparison would also compare event mixes and reporting eras. Two design rules limit that problem. A stable-period cohort admits an event type only if it has at least one county-coded event in every year of the window pooled across the five states and at least 30 in each state across the window. Five types qualify: Flash Flood, Flood, Hail, Thunderstorm Wind, and Tornado. Without that rule, a completeness difference could simply record the year an office began entering a value for a type at all. Second, the primary comparison is made inside a single event type and a single year: for each stratum with at least three reportable state cells the analysis takes the range of populated share across those states, then the median of that range across all 55 qualifying strata. The materiality threshold, fixed before any result was inspected, is 0.200 — the smallest gap that changes whether a state's slice is usable for a damage comparison.

Stability is the second condition, because a reusable benchmark needs a typical ordering that persists over time. The analysis takes the Spearman rank correlation of the five states' cohort-pooled populated share between consecutive years, and the median across the ten pairs, against a threshold of 0.600.

Three sensitivity tests were prespecified and all pass: conclusions recomputed on all event types as well as on the cohort; each state's event-type mix standardized to the pooled five-state mix of the same year; and the minimum cell size moved to 10 and 50 alongside the primary 20. A tier affects the verdict only if it independently clears the same coverage floors as the primary analysis, and all three do. A fourth statistic — the range of populated share across event types within a state and year — is disclosed at every tier but is explicitly non-grading and supports no conclusion here. Full detail is in the method notes below.

Findings

Completeness varies by state, and the typical ordering persists over time.

Damage-field completeness by state and year for the five stable-period cohort event types, 2015 to 2025. Five state lines run between about 13% and 100%; Ohio is highest and Colorado lowest across most of the window.

Scroll chart horizontally to read all labels.

Share of county-coded stable-period-cohort storm events whose property-damage field is populated — a reported zero or a positive amount. Partial 2026 excluded. Populated means a value is stored, not that the amount is accurate.

Full chart description

Line chart. Horizontal axis: calendar years 2015 to 2025. Vertical axis: share of county-coded storm events in the five stable-period cohort event types whose property-damage field is populated, from 0 to 100 per cent. Five lines, one per state. Ohio runs from 99.2% in 2015 to 98.5% in 2025, pooled 97.9% over the window; Pennsylvania runs from 94.5% in 2015 to 87.1% in 2025, pooled 88.4% over the window; Texas runs from 90.6% in 2015 to 86.7% in 2025, pooled 87.3% over the window; Oklahoma runs from 73.4% in 2015 to 44.8% in 2025, pooled 77.0% over the window; Colorado runs from 62.2% in 2015 to 13.0% in 2025, pooled 50.2% over the window. Factual takeaway: for the same event type in the same year the range of populated share across reportable state cells has a median of 0.254902 across 55 qualifying strata, at or above the locked 0.200 materiality threshold, and the five-state ordering carries from one year to the next at a median consecutive-year Spearman rank correlation of 0.850000, at or above the locked 0.600 threshold. Limitations: this measures whether a damage field is populated, never whether an amount is correct; a reported zero and an unpopulated field are different classes and are never merged; recorded events are not all events; no difference is attributed to any office, forecaster, agency or person; the chart covers county-coded events only in Colorado, Ohio, Oklahoma, Pennsylvania and Texas for complete calendar years 2015-2025 at one warehouse generation.

Pooled over the window, the cohort populated share is 97.9% in Ohio, 88.4% in Pennsylvania, 87.3% in Texas, 77.0% in Oklahoma, and 50.2% in Colorado. That is not a fixed ranking: Colorado's cohort share falls from 62.2% in 2015 to 13.0% in 2025, and Oklahoma runs above 98% in each year from 2017 through 2020 and no higher than 50.0% in each of the last three. The typical order is more stable than the level, though it does change in some years.

The measured result is the within-slice comparison. Across the 55 qualifying event-type-and-year strata, the median range of populated share between reportable states is 0.254902 — 25.5 percentage points — against the prespecified 0.200 threshold. The state-by-type view shows where it comes from:

Event typeColoradoOhioOklahomaPennsylvaniaTexas
Flash Flood100.0%100.0%100.0%100.0%100.0%
Flood100.0%100.0%100.0%100.0%100.0%
Hail42.1%96.9%64.1%80.3%82.9%
Thunderstorm Wind43.9%97.6%78.3%86.5%87.0%
Tornado81.3%94.9%98.2%80.0%83.4%

Every reportable state-year cell for the two flood types is fully populated. The three convective types are where exposure to blank fields varies by state: a hail comparison treating Colorado and Ohio as equally complete sources compares a slice populated four times in ten with one populated more than nine times in ten.

The stability condition is met at a median consecutive-year Spearman rank correlation of 0.850000 across 10 year pairs, against the 0.600 threshold, so both conditions of the supported case hold. The spread across individual reportable cells is wide: the 10th percentile of populated share is 60.1%, the median 97.9%, the 90th percentile 100.0%. Most reportable cells are nearly complete; a substantial minority are not, and are identifiable in advance.

The second figure carries the qualification that must travel with every completeness figure.

Populated share and positive share by state for the stable-period cohort, 2015 to 2025 pooled. Filled bars show populated share from 97.9% in Ohio to 50.2% in Colorado; outlined bars show positive share from 52.8% in Ohio to 5.2% in Colorado.

Scroll chart horizontally to read all labels.

A populated field is a reported zero or a positive amount; a positive share counts only amounts above zero. A stored zero proves the field was stored, not that damage was zero.

Full chart description

Grouped bar chart with one pair of bars per state. The filled bar is the share of stable-period-cohort county-coded storm events whose property-damage field is populated; the outlined bar is the share carrying a positive amount. Ohio populated 97.9%, positive 52.8%; Pennsylvania populated 88.4%, positive 49.8%; Texas populated 87.3%, positive 20.9%; Oklahoma populated 77.0%, positive 20.6%; Colorado populated 50.2%, positive 5.2%. Factual takeaway: a large part of the populated record is a reported zero rather than a positive amount, so the two shares must always be read together. Across the whole in-window record the populated share is 83.8% while the positive share is 29.1%. Limitations: a stored zero proves non-null storage, not an affirmative damage estimate; nothing here measures the accuracy of any amount; no difference is attributed to any office, forecaster, agency or person; five states, complete calendar years 2015-2025, county-coded events, one warehouse generation.

Across the whole in-window record, 54.7% of events carry a reported zero and 29.1% carry a positive amount. Ohio's cohort records are populated 97.9% of the time and positive 52.8% of the time; Colorado's are populated 50.2% and positive 5.2%. Neither figure in a pair can be inferred from the other, which is why the two are always published together.

Together, these measurements show which slices carry stored damage values and that the typical ordering is stable enough to use as a reference. They do not explain why; this analysis establishes no cause.

Association Analysis

One association test is justified by the question this paper asks, and it is the stability test already reported: the Spearman rank correlation of the five states' cohort-pooled populated share between consecutive years.

Year pairStates comparedSpearmanAt or above 0.600
2015→201650.70yes
2016→201751.00yes
2017→201850.80yes
2018→201950.90yes
2019→202050.90yes
2020→202150.30no
2021→202250.70yes
2022→202350.30no
2023→202450.90yes
2024→202550.90yes

Eight of the ten pairs clear the threshold and two do not; the median is 0.85. The two weaker transitions are worth naming: the ordering is durable in the typical year, not immutable in every year, so a reader relying on the map for a specific year should check that year's cell rather than the pooled order. The same correlation computed on event-mix-standardized shares gives a median of 0.900000, so the stability is not an artifact of states experiencing different mixes of storms.

No further association test is justified. Testing completeness against state characteristics, office attributes, or time trends would import an explanatory or causal inference this evidence cannot support. Association is not causation, and here even the association is descriptive: it establishes that an ordering persists, not that anything produces it.

Business Implications

This is a reference benchmark, and its use is comparison rather than action.

Before running a damage comparison across states, a reader can check whether the slices being compared are populated at similar rates. A hail-damage comparison between Colorado and Ohio is not like-for-like; it is substantially a comparison of how often each state's records carry a stored value at all. The reportable-cell table supplies the specific state, event type, and year figures.

A reader can also choose a caveat deliberately. Where the populated share is high, a comparison in that slice needs only an ordinary completeness note. Where it is low, the honest statement is that the record does not support the comparison — not that damage was low.

Three things this benchmark does not license. It supports no statement about whether recorded amounts are accurate; a populated field is a stored value and nothing more. It supports no attribution of a difference to any office, forecaster, agency, person, competence, effort, or quality. And it names no decision for anyone to take.

Limitations

Completeness describes populated fields, not the accuracy of amounts. The publisher's own documentation calls its damage figures a broad estimate and a best guess that may be unverified, and nothing here bounds accuracy in either direction.

A recorded zero is not an unpopulated field. The two classes are separated by an explicit parsing rule and both shares are reported together throughout; neither may be read as the other.

Damage totals inside a state-year are highly concentrated: a median 77.1% of a state-year's positive property damage sits in its ten largest events. Stored values across many small records say little about the dollars.

Recorded events are not all events; unreported events are unmeasurable in this record and are never inferred. The benchmark covers the county-coded table only, and the excluded forecast-zone universe — 49,035 in-window events at a populated share of 74.8% — bounds what it does not describe. The scope is complete calendar years 2015–2025 in five states at a single data snapshot, so nothing generalizes to other states, later data vintages, or the partial 2026 year, and cells below 20 non-malformed events are never named.

Four questions remain open. Why a state's recording pattern takes the level it does — no cause is established here and none may be offered. Whether the same pattern holds outside these five states, in forecast-zone events, in later vintages, or in 2026. Whether populated amounts are accurate, which this design cannot address. And how much of the year-to-year movement inside a state reflects changed procedure rather than changed event mix; standardization bounds the event-mix half only.

Sources and method notes

Sources

All external sources were verified on 11 August 2026.

Field definitions

TermDefinition
EventOne recorded storm event carrying a county code, identified by a unique event identifier.
UnpopulatedThe property-damage field is null or non-finite.
Reported zeroThe property-damage field stores exactly zero.
PositiveThe property-damage field stores a value above zero.
MalformedThe property-damage field stores a negative value. None occur in the window.
Populated share(reported zero + positive) ÷ non-malformed events in the cell.
Positive sharepositive ÷ non-malformed events in the cell.
CellOne state × event type × year combination.
Reportable cellA cell with at least 20 non-malformed events.
Stable-period cohortEvent types with at least one event in every year of the window pooled across the five states, and at least 30 events in each of the five states across the window.

Method and sensitivity notes

Coverage floors and observed values: at least 3 cohort types, observed 5; at least 30 qualifying strata, observed 55; at least 8 years with all five states reportable in the cohort, observed 11.

Stable-period sensitivity. The material and stable conclusions are identical computed on all event types and restricted to the cohort.

Event-mix standardization. The median state range of populated share is 0.432911 crude and 0.333924 after each state's event-type mix is directly standardized to the pooled five-state mix of the same year. Both are material at the 0.200 threshold, and the standardized stability median is 0.900000.

Minimum-cell sensitivity. All three tiers independently clear the coverage floors and are therefore graded, on the within-type-and-year range and the year-to-year stability.

Minimum cellReportable cellsStrataWithin-type-and-year rangeMaterialStabilityStableNon-grading across-type rangeTier role
10322610.254902yes0.850000yes0.214491graded
20285550.254902yes0.850000yes0.214491graded
50213430.282766yes0.850000yes0.178133graded

The final column is the range of populated share across event types within a state and year. It is computed and disclosed at every tier, it is explicitly non-grading, and it supports no claim in this paper. Its value falls below 0.200 at the strictest tier; that movement affects nothing here, because the two graded statistics are identical at all three tiers.

Zero-handling disclosure. Recomputing the within-type-and-year comparison on positive share instead of populated share gives a median state range of 0.504638 — materially larger — which is why the primary claim stays bounded to whether a field is populated.

Concentration disclosure. The median share of a state-year's positive property damage carried by its ten largest events is 0.771123.

Scope disclosures. Forecast-zone universe: 49,035 in-window events at a populated share of 0.748139. Excluded partial year 2026: 1,041 events at a populated share of 0.853026.

Chart notes

Series are separable by colour, dash pattern, and marker or fill, so neither depends on colour perception. The chart-data files carry the exact labels, values, series order, units, stored rounding, and display rounding behind each figure. Figures are stored at six decimal places and displayed to one decimal place as percentages.