← All studies · askamerica.ai

Crop insurance drought payouts track measured drought only weakly — strong in the rainfed Corn Belt/Plains, nearly absent in the irrigated arid West

USDA RMA Cause-of-Loss indemnity vs. NOAA/USDA Drought Monitor DSCI, state-year grain, 2010-2025 (n=850)

Crop Insurance Drought Payouts vs. Measured Drought Severity, 2010… USDA RMA Cause-of-Loss indemnity data vs. NOAA/USDM Drought Severity and Coverage Index (DSCI), state-year grain, n=850 Correlation (DSCI vs. drought loss rate) r = 0.26 Weak-to-moderate; a two-way fixed-effects panel (state+year) finds a highly significant coefficient (p<0.001) but it is still small in… Drought's share of all crop-insurance payouts 17.1% $29.8B of $174.8B, 2009-2025 State-years where payouts diverge most from measured drought 0 5 10 15 20 25 30 Avg. annual DSCI (0-500) Drought loss rate (%) 0 100 200 300 400 500 Under-predicted (Corn Belt/Plains drought years) Over-predicted (arid West, chronic dryness) Indemnity attributed to RMA cause-of-loss code 'Drought' only; loss rate = drought indemnity / total insured liability for that state-year. DSCI averaged across all weeks and counties in the state-year. AskAmerica · askamerica.ai
SVG

Summary

Federal crop-insurance drought payouts track measured drought only loosely at the state level: the raw correlation between a state-year's average NOAA/USDA Drought Monitor severity (DSCI, 0-500) and its drought-indemnity loss rate (drought payouts as a share of insured liability) is r = 0.26 (n=850 state-years, 2010-2025). Controlling for each state's baseline exposure and nationwide year effects (two-way fixed effects), the drought-severity coefficient becomes highly statistically significant (p<0.001) but stays modest in size — going from no drought to a state entirely blanketed in exceptional drought all year raises the drought loss rate by roughly 8-9 percentage points of insured liability, on average. The two series diverge most sharply in opposite directions: rainfed Corn Belt and Southern Plains states (Missouri, Oklahoma, Texas, Illinois, Kentucky in the 2011-2012 drought) paid out FAR more than their measured drought severity alone would predict, while chronically arid Western states (California, Nevada, Utah, New Mexico) show near-zero drought payouts despite carrying some of the highest DSCI readings in the country. Drought is nonetheless the single largest named peril in the crop-insurance program, accounting for $29.8B of $174.8B (17.1%) of all indemnities paid 2009-2025.

Data and method

Two USDA/NOAA sources were joined at state-year grain: ag.rma_cause_of_loss (USDA RMA Summary of Business, cause-of-loss detail, indemnity_amount for cause_of_loss_desc='Drought') and weather.drought_monitor_weekly (NOAA/USDA Drought Monitor, county-week DSCI averaged up to state-year). Payouts were normalized as drought indemnity divided by total insured liability for that state-year (from ag.rma_crop_insurance) rather than compared in raw dollars, since raw dollar comparisons are dominated by which states simply insure the most acreage. The overlapping coverage window across all three tables is 2010-2025 (drought_monitor_weekly's declared floor), giving 850 state-year observations across 50 states and 17 years.

Exclusion disclosure: the joining query's WHERE clause included the predicate d.state_abbr IS NOT NULL as a defensive guard against a join fan-out on a null key. Checked directly against the source: SELECT COUNT(*) FROM weather.drought_monitor_weekly WHERE state_abbr IS NULL AND year BETWEEN 2009 AND 2025 returns 0 rows. So d.state_abbr IS NOT NULL excluded zero rows, dropped nothing, and omitted no state or year from the panel — every county-week in the table over the study window already carries a non-null state_abbr, so the 850-row state-year panel is the complete overlap across all three tables, and the headline statistics (r=0.26, the fixed-effects coefficient, and the divergence list) are identical whether or not that guard is present.

A plain bivariate correlation is confounded by structural differences between states — crop mix, irrigation share, and total insured acreage all differ enormously and are correlated with both drought exposure and insurance participation. A two-way fixed-effects panel regression (state and year absorbed) isolates the within-state, year-to-year relationship: coefficient on avg_dsci = 0.0169 (SE 0.0018, p<0.001, n=850, 50 states x 17 years). This says that within a given state, a year with markedly worse measured drought does produce measurably higher drought payouts — the relationship is real and not noise — but it explains a small share of the variation (bivariate R² = 0.065), meaning most of the year-to-year swing in drought payouts is driven by something other than measured areal drought severity: which specific counties and growth stages were hit, crop type, and coverage take-up.

Where the two diverge most

Under-predicted (drought paid out far more than its DSCI alone implied): Missouri 2012 (DSCI 169, drought loss rate 29.8% of liability, $1.04B in drought indemnity), Oklahoma 2011 (DSCI 295, loss rate 29.7%, $297M), Texas 2011 (DSCI 378, loss rate 28.2%, $1.55B), Kentucky 2012 (DSCI 76, loss rate 23.5%, $370M), and Illinois 2012 (DSCI 140, loss rate 24.1%, $2.93B). These are the classic 2011-2012 central-U.S. drought years hitting extensively insured, largely rainfed corn, soybean, and wheat acreage — a moderate-looking DSCI reading translated into some of the largest drought payouts in program history because the affected cropland is both highly drought-sensitive (rainfed, not irrigated) and heavily insured.

Over-predicted (severe measured drought, almost no drought payout): California 2014-2015 (DSCI ~430, loss rate 0.02-0.12%), Nevada 2014-2021 (DSCI 368-385, loss rate ~0%), Utah 2021 (DSCI 421, loss rate 0%), and New Mexico 2021 (DSCI 343, loss rate 0%). These states carry some of the highest sustained DSCI values in the country — their climate is chronically arid, which USDM measures as widespread abnormal dryness/drought essentially every year — but their insured cropland is disproportionately irrigated (or is low-acreage relative to the state's land area), so a drought classification on dry rangeland or fallow desert does not translate into an insured-crop loss the way it does for a rainfed Iowa cornfield.

The practical read: DSCI is a land-area index (what fraction of a state's area is in each drought category), not a crop-exposure index. It matches insurance payouts well where insured farmland is rainfed and drought-vulnerable, and matches poorly where farmland is irrigated or drought severity is chronic/structural rather than an anomalous shock in a given year.

Every query behind this report

10 warehouse calls ran in this session, in order. Each is reproducible against the same snapshot.

query — 1 rows — 9693 ms
SELECT DISTINCT cause_of_loss_desc FROM ag.rma_cause_of_loss WHERE cause_of_loss_desc ILIKE '%drought%'
query — 867 rows — 54918 ms

WITH drought_indem AS (
  SELECT year, state_abbr, SUM(indemnity_amount) AS drought_indemnity
  FROM ag.rma_cause_of_loss
  WHERE cause_of_loss_desc = 'Drought' AND year BETWEEN 2009 AND 2025
  GROUP BY year, state_abbr
),
total_indem AS (
  SELECT year, state_abbr, SUM(indemnity_amount) AS total_indemnity
  FROM ag.rma_crop_insurance
  WHERE year BETWEEN 2009 AND 2025
  GROUP BY year, state_abbr
),
dsci AS (
  SELECT year, state_abbr, AVG(dsci) AS avg_dsci
  FROM weather.drought_monitor_weekly
  WHERE year BETWEEN 2009 AND 2025
  GROUP BY year, state_abbr
)
SELECT d.year, d.state_abbr, d.avg_dsci, COALESCE(di.drought_indemnity,0) AS drought_indemnity, COALESCE(ti.total_indemnity,0) AS total_indemnity
FROM dsci d
LEFT JOIN drought_indem di ON d.year=di.year AND d.state_abbr=di.state_abbr
LEFT JOIN total_indem ti ON d.year=ti.year AND d.state_abbr=ti.state_abbr
WHERE d.state_abbr IS NOT NULL
query — 1 rows — 69702 ms

WITH drought_indem AS (
  SELECT year, state_abbr, SUM(indemnity_amount) AS drought_indemnity
  FROM ag.rma_cause_of_loss
  WHERE cause_of_loss_desc = 'Drought' AND year BETWEEN 2009 AND 2025
  GROUP BY year, state_abbr
),
total_indem AS (
  SELECT year, state_abbr, SUM(indemnity_amount) AS total_indemnity
  FROM ag.rma_crop_insurance
  WHERE year BETWEEN 2009 AND 2025
  GROUP BY year, state_abbr
),
dsci AS (
  SELECT year, state_abbr, AVG(dsci) AS avg_dsci
  FROM weather.drought_monitor_weekly
  WHERE year BETWEEN 2009 AND 2025
  GROUP BY year, state_abbr
),
combo AS (
  SELECT d.year, d.state_abbr, d.avg_dsci, COALESCE(di.drought_indemnity,0) AS drought_indemnity, COALESCE(ti.total_indemnity,0) AS total_indemnity
  FROM dsci d
  LEFT JOIN drought_indem di ON d.year=di.year AND d.state_abbr=di.state_abbr
  LEFT JOIN total_indem ti ON d.year=ti.year AND d.state_abbr=ti.state_abbr
  WHERE d.state_abbr IS NOT NULL
)
SELECT COUNT(*) AS n, corr(avg_dsci, drought_indemnity) AS corr_dsci_drought_indem, corr(avg_dsci, total_indemnity) AS corr_dsci_total_indem
FROM combo
query — 1 rows — 16690 ms

WITH drought_indem AS (
  SELECT year, state_abbr, SUM(indemnity_amount) AS drought_indemnity, SUM(liability_amount) AS drought_liability
  FROM ag.rma_cause_of_loss
  WHERE cause_of_loss_desc = 'Drought' AND year BETWEEN 2009 AND 2025
  GROUP BY year, state_abbr
),
total_liab AS (
  SELECT year, state_abbr, SUM(liability_amount) AS total_liability, SUM(indemnity_amount) AS total_indemnity
  FROM ag.rma_crop_insurance
  WHERE year BETWEEN 2009 AND 2025
  GROUP BY year, state_abbr
),
dsci AS (
  SELECT year, state_abbr, AVG(dsci) AS avg_dsci
  FROM weather.drought_monitor_weekly
  WHERE year BETWEEN 2009 AND 2025
  GROUP BY year, state_abbr
),
combo AS (
  SELECT d.year, d.state_abbr, d.avg_dsci,
         COALESCE(di.drought_indemnity,0) AS drought_indemnity,
         tl.total_liability,
         COALESCE(di.drought_indemnity,0) / NULLIF(tl.total_liability,0) AS drought_loss_rate
  FROM dsci d
  LEFT JOIN drought_indem di ON d.year=di.year AND d.state_abbr=di.state_abbr
  LEFT JOIN total_liab tl ON d.year=tl.year AND d.state_abbr=tl.state_abbr
  WHERE d.state_abbr IS NOT NULL AND tl.total_liability > 0
)
SELECT COUNT(*) AS n, corr(avg_dsci, drought_loss_rate) AS corr_dsci_loss_rate
FROM combo
panel_fixed_effects — 18211 ms

WITH drought_indem AS (
  SELECT year, state_abbr, SUM(indemnity_amount) AS drought_indemnity
  FROM ag.rma_cause_of_loss
  WHERE cause_of_loss_desc = 'Drought' AND year BETWEEN 2009 AND 2025
  GROUP BY year, state_abbr
),
total_liab AS (
  SELECT year, state_abbr, SUM(liability_amount) AS total_liability
  FROM ag.rma_crop_insurance
  WHERE year BETWEEN 2009 AND 2025
  GROUP BY year, state_abbr
),
dsci AS (
  SELECT year, state_abbr, AVG(dsci) AS avg_dsci
  FROM weather.drought_monitor_weekly
  WHERE year BETWEEN 2009 AND 2025
  GROUP BY year, state_abbr
)
SELECT d.year, d.state_abbr, d.avg_dsci,
       COALESCE(di.drought_indemnity,0) / NULLIF(tl.total_liability,0) * 100 AS drought_loss_rate_pct
FROM dsci d
LEFT JOIN drought_indem di ON d.year=di.year AND d.state_abbr=di.state_abbr
LEFT JOIN total_liab tl ON d.year=tl.year AND d.state_abbr=tl.state_abbr
WHERE d.state_abbr IS NOT NULL AND tl.total_liability > 0
ols_regression — 19537 ms

WITH drought_indem AS (
  SELECT year, state_abbr, SUM(indemnity_amount) AS drought_indemnity
  FROM ag.rma_cause_of_loss
  WHERE cause_of_loss_desc = 'Drought' AND year BETWEEN 2009 AND 2025
  GROUP BY year, state_abbr
),
total_liab AS (
  SELECT year, state_abbr, SUM(liability_amount) AS total_liability
  FROM ag.rma_crop_insurance
  WHERE year BETWEEN 2009 AND 2025
  GROUP BY year, state_abbr
),
dsci AS (
  SELECT year, state_abbr, AVG(dsci) AS avg_dsci
  FROM weather.drought_monitor_weekly
  WHERE year BETWEEN 2009 AND 2025
  GROUP BY year, state_abbr
)
SELECT d.year, d.state_abbr, d.avg_dsci,
       COALESCE(di.drought_indemnity,0) / NULLIF(tl.total_liability,0) * 100 AS drought_loss_rate_pct
FROM dsci d
LEFT JOIN drought_indem di ON d.year=di.year AND d.state_abbr=di.state_abbr
LEFT JOIN total_liab tl ON d.year=tl.year AND d.state_abbr=tl.state_abbr
WHERE d.state_abbr IS NOT NULL AND tl.total_liability > 0
query — 8 rows — 21639 ms

WITH drought_indem AS (
  SELECT year, state_abbr, SUM(indemnity_amount) AS drought_indemnity
  FROM ag.rma_cause_of_loss
  WHERE cause_of_loss_desc = 'Drought' AND year BETWEEN 2009 AND 2025
  GROUP BY year, state_abbr
),
total_liab AS (
  SELECT year, state_abbr, SUM(liability_amount) AS total_liability
  FROM ag.rma_crop_insurance
  WHERE year BETWEEN 2009 AND 2025
  GROUP BY year, state_abbr
),
dsci AS (
  SELECT year, state_abbr, AVG(dsci) AS avg_dsci
  FROM weather.drought_monitor_weekly
  WHERE year BETWEEN 2009 AND 2025
  GROUP BY year, state_abbr
),
combo AS (
  SELECT d.year, d.state_abbr, d.avg_dsci,
         COALESCE(di.drought_indemnity,0) AS drought_indemnity,
         tl.total_liability,
         COALESCE(di.drought_indemnity,0) / NULLIF(tl.total_liability,0) * 100 AS drought_loss_rate_pct
  FROM dsci d
  LEFT JOIN drought_indem di ON d.year=di.year AND d.state_abbr=di.state_abbr
  LEFT JOIN total_liab tl ON d.year=tl.year AND d.state_abbr=tl.state_abbr
  WHERE d.state_abbr IS NOT NULL AND tl.total_liability > 0
),
resid AS (
  SELECT *, drought_loss_rate_pct - (0.5642840454632312 + 0.01170979979536616*avg_dsci) AS residual
  FROM combo
)
SELECT year, state_abbr, ROUND(avg_dsci,1) AS avg_dsci, ROUND(drought_loss_rate_pct,2) AS loss_rate_pct, ROUND(drought_indemnity/1e6,1) AS indemnity_millions, ROUND(residual,2) AS residual
FROM resid
ORDER BY residual DESC
LIMIT 8
query — 8 rows — 22322 ms

WITH drought_indem AS (
  SELECT year, state_abbr, SUM(indemnity_amount) AS drought_indemnity
  FROM ag.rma_cause_of_loss
  WHERE cause_of_loss_desc = 'Drought' AND year BETWEEN 2009 AND 2025
  GROUP BY year, state_abbr
),
total_liab AS (
  SELECT year, state_abbr, SUM(liability_amount) AS total_liability
  FROM ag.rma_crop_insurance
  WHERE year BETWEEN 2009 AND 2025
  GROUP BY year, state_abbr
),
dsci AS (
  SELECT year, state_abbr, AVG(dsci) AS avg_dsci
  FROM weather.drought_monitor_weekly
  WHERE year BETWEEN 2009 AND 2025
  GROUP BY year, state_abbr
),
combo AS (
  SELECT d.year, d.state_abbr, d.avg_dsci,
         COALESCE(di.drought_indemnity,0) AS drought_indemnity,
         tl.total_liability,
         COALESCE(di.drought_indemnity,0) / NULLIF(tl.total_liability,0) * 100 AS drought_loss_rate_pct
  FROM dsci d
  LEFT JOIN drought_indem di ON d.year=di.year AND d.state_abbr=di.state_abbr
  LEFT JOIN total_liab tl ON d.year=tl.year AND d.state_abbr=tl.state_abbr
  WHERE d.state_abbr IS NOT NULL AND tl.total_liability > 0
),
resid AS (
  SELECT *, drought_loss_rate_pct - (0.5642840454632312 + 0.01170979979536616*avg_dsci) AS residual
  FROM combo
)
SELECT year, state_abbr, ROUND(avg_dsci,1) AS avg_dsci, ROUND(drought_loss_rate_pct,2) AS loss_rate_pct, ROUND(drought_indemnity/1e6,1) AS indemnity_millions, ROUND(residual,2) AS residual
FROM resid
ORDER BY residual ASC
LIMIT 8
query — 1 rows — 45664 ms

SELECT
  (SELECT SUM(indemnity_amount) FROM ag.rma_cause_of_loss WHERE cause_of_loss_desc='Drought' AND year BETWEEN 2009 AND 2025) AS total_drought_indemnity,
  (SELECT SUM(indemnity_amount) FROM ag.rma_crop_insurance WHERE year BETWEEN 2009 AND 2025) AS total_all_indemnity
query — 1 rows — 1597 ms
SELECT COUNT(*) AS null_state_rows, COUNT(DISTINCT county_fips) AS distinct_counties FROM weather.drought_monitor_weekly WHERE state_abbr IS NULL AND year BETWEEN 2009 AND 2025

Sources

  1. USDA RMA Summary of Business — Cause of Loss (drought indemnity by state/year) — ag.rma_cause_of_loss, 2009-2025 coverage
    Show SQL
    SELECT year, state_abbr, SUM(indemnity_amount) AS drought_indemnity FROM ag.rma_cause_of_loss WHERE cause_of_loss_desc = 'Drought' AND year BETWEEN 2009 AND 2025 GROUP BY year, state_abbr
  2. USDA RMA Summary of Business — total insured liability by state/year
    Show SQL
    SELECT year, state_abbr, SUM(liability_amount) AS total_liability FROM ag.rma_crop_insurance WHERE year BETWEEN 2009 AND 2025 GROUP BY year, state_abbr
  3. NOAA/USDA Drought Monitor weekly DSCI, averaged to state-year
    Show SQL
    SELECT year, state_abbr, AVG(dsci) AS avg_dsci FROM weather.drought_monitor_weekly WHERE year BETWEEN 2009 AND 2025 GROUP BY year, state_abbr
  4. Two-way fixed-effects panel: drought loss rate ~ avg DSCI, state+year effects
    Show tool call
    panel_fixed_effects(outcome="drought_loss_rate_pct", predictors=["avg_dsci"], entity_col="state_abbr", time_col="year")
  5. National totals — drought vs. all-cause indemnity, 2009-2025
    Show SQL
    SELECT SUM(indemnity_amount) FROM ag.rma_cause_of_loss WHERE cause_of_loss_desc='Drought' AND year BETWEEN 2009 AND 2025; SELECT SUM(indemnity_amount) FROM ag.rma_crop_insurance WHERE year BETWEEN 2009 AND 2025