Hay Stocks — Methodology & Analytical Workups
What the data correlates with, how the relationships have held historically, and how we processed the raw NASS series. Back to main stocks page.
Note: R² and regression coefficients reported below are in-sample fit statistics, not forecast accuracy. They describe how much of historical variance the features explain — not how accurately they predict the future. Walk-forward backtests are not implemented yet.
Data filtering & quality
All analyses filter to NASS source_desc='SURVEY' (annual estimates) and exclude source_desc='CENSUS' (5-year Census of Ag) to keep the time series methodologically consistent.
National-level raw correlation between SURVEY-only stocks and SURVEY-only price (sum across states, no normalization): -0.147 level-on-level, -0.271 YoY-change-on-YoY-change. Per-state normalized correlation (more robust): -0.313 (5-yr median baseline window).
Historical stock-drop events (≥20% YoY drop)
Years where national May 1 stocks dropped at least 20% from the prior year, with subsequent annual avg price action.
| Year | Stocks YoY | Price YoY | Year avg price | Direction |
|---|---|---|---|---|
| 2018 | -37.1% | +12.7% | $152/ton | price up |
| 1989 | -35.3% | +13.7% | $87/ton | price up |
| 2013 | -33.8% | +4.6% | $185/ton | price up |
| 1960 | -33.1% | +7.8% | $26/ton | price up |
| 2007 | -29.8% | +16.4% | $119/ton | price up |
| 1984 | -28.4% | +4.4% | $74/ton | price up |
| 1975 | -27.0% | +6.3% | $53/ton | price up |
| 2001 | -26.3% | +13.6% | $95/ton | price up |
| 1993 | -25.2% | +9.7% | $79/ton | price up |
| 1981 | -23.6% | -7.3% | $67/ton | price down |
| 1977 | -23.5% | -0.3% | $60/ton | price down |
| 2006 | -23.1% | +8.3% | $102/ton | price up |
| 1962 | -22.4% | +5.3% | $26/ton | price up |
Of 13 events, 11 had positive price moves that year. Two exceptions (1977, 1981) had near-flat or slightly negative price action.
Lag structure
Per-month correlation of May 1 stocks (year Y) against monthly price for the next 12 months. Signal peaks in June then decays through the year.
| Price month | Correlation | R² |
|---|---|---|
| Jun | -0.382 | 0.146 |
| Jul | -0.336 | 0.113 |
| Aug | -0.315 | 0.099 |
| Sep | -0.309 | 0.095 |
| Oct | -0.290 | 0.084 |
| Nov | -0.297 | 0.088 |
| Dec | -0.288 | 0.083 |
| Jan (Y+1) | -0.227 | 0.051 |
| Feb (Y+1) | -0.239 | 0.057 |
| Mar (Y+1) | -0.202 | 0.041 |
| Apr (Y+1) | -0.158 | 0.025 |
| May (Y+1) | -0.141 | 0.020 |
Drought × Stocks — compound signal (696 obs, 2000-2026)
Pooled state-year observations split into quartiles on both axes. Cell shows mean June price (normalized to that state's 5-yr median).
| Regime | Observations | Mean normalized price | vs baseline |
|---|---|---|---|
| Low stocks + Low drought | 174 | 1.216 | +21.6% |
| Low stocks + High drought | 174 | 1.267 | +26.7% |
| High stocks + Low drought | 174 | 1.001 | +0.1% |
| High stocks + High drought | 174 | 1.030 | +3.0% |
Multi-feature regression progression
Nested OLS models adding one feature at a time. R² is in-sample fit on pooled state-year observations. Sample size shrinks as each feature adds a narrower coverage window.
| Model | n | R² | Note |
|---|---|---|---|
| 1. Stocks only | 1,339 | 0.135 | |
| 2. + Drought (USDM DSCI Jan-May) | 696 | 0.217 | |
| 3. + Prior-year price (momentum) | 696 | 0.458 | |
| 4. + Drought change YoY | 670 | 0.458 | |
| 5. + Corn condition (% good+excellent) | 483 | 0.556 | |
| 6. + Wheat winter condition | 381 | 0.561 | |
| 7. + Cattle inventory (beef cows, normalized) | 349 | 0.563 | |
| 8. + Corn silage acres (substitute feed) | 349 | 0.563 | No marginal lift |
| 9. + Diesel state-monthly avg Jan-May | 349 | 0.596 | +3.3pp from input-cost signal |
| 10. + Cattle on feed placements | 80 | 0.672 | +7.6pp BUT n=80 (overfit risk) |
Per-state M3 fit (stocks + drought + prior_price)
Same model fit separately for each state with ≥5 years of overlapping data. Median per-state R² = 0.493. Plains + Midwest states rank highest.
| State | n | R² |
|---|---|---|
| KY | 26 | 0.728 |
| KS | 26 | 0.728 |
| NE | 26 | 0.719 |
| CO | 26 | 0.694 |
| MI | 26 | 0.658 |
| MN | 26 | 0.632 |
| IA | 26 | 0.610 |
| WI | 26 | 0.597 |
| WY | 20 | 0.590 |
| IL | 26 | 0.585 |
| SD | 26 | 0.570 |
| MO | 26 | 0.549 |
| NV | 26 | 0.506 |
| ND | 26 | 0.493 |
| MT | 26 | 0.486 |
| NM | 26 | 0.478 |
| OH | 26 | 0.465 |
| PA | 26 | 0.429 |
| AZ | 26 | 0.424 |
| UT | 26 | 0.418 |
| ID | 26 | 0.390 |
| NY | 26 | 0.373 |
| OR | 26 | 0.350 |
| WA | 26 | 0.321 |
| TX | 26 | 0.292 |
| OK | 26 | 0.286 |
| CA | 26 | 0.254 |
Baseline window sensitivity
| Baseline window | Median per-state corr |
|---|---|
| 3 years | -0.373 |
| 5 years | -0.313 |
| 10 years | -0.275 |
| 20 years | -0.260 |
Back to main stocks page.