Southeast Colorado alfalfa price forecasts, graded in public.

October Deep Dive β€” October 2, 2026

Status: CURRENT. Supersedes the research/18 grid. Companion files: research/grades-2026-10.md (grading), research/predictions-2026-11.md (rows #40–45, frozen today), research/21-confidence-review-2026-10-02.md (how sure we are, and why), OctoberHayReport.md/.html (share-ready), review_2026-10-02.md (the pre-publication review, unedited).

Method. Three parallel pulls (AMS hay reports for all seven states; water, rain, drought and ENSO; NASS and macro), all raw files saved under data/2026-10-02/ (ams/, wx/, macro/). Every load-bearing number was re-checked by the operator by a second method (Β§9). Then an outside reviewer read the draft against the saved files (L11 rule 9). It found 17 problems, three of them HIGH; all are fixed in this version and listed in Β§11. Pipeline update_weekly.sh ran; its only failures were the expected "grades file must state the new coverage" checks, fixed by grades-2026-10.md.


1. Bottom line

Southeast Colorado Good/Premium large-square alfalfa: about $275/ton at origin today, range $210–340, LOW confidence. No grading-target trade printed (no Southeast Good-or-better large-square sale of 100+ tons). Eight defensible ways of averaging the regional sales give $262–308, median $273.5; we round to $275. That is $5 above the Sep 19 estimate, which is noise inside the range. The number is most sensitive to geography: northern sales (Colorado, Nebraska, Wyoming) average $283, Kansas and Oklahoma $239.

What changed is the weather, not the price. Lamar Airport had 3.18" in July, 4.47" in August and 4.50" in September (normal 1.03"; that includes 2.17" on Sep 30), then 0.96" on Oct 1. Bent County went from 61% severe-or-worse drought (Sep 8) to 0% (Sep 29 map, before the Sep 30 storm). The Fort Lyon Canal, dry Sep 7–9 and Sep 11–20, is running at 371–405 cfs. We have no measured skill at turning weather into price (L10). We still cut the winter lift because of it; that is a weather-driven judgment, logged as an exception (Β§7).

Grades: Colorado's August state prices came in at our points ($235 alfalfa exactly, all-hay +$1); Kansas missed its point by $28 but stayed inside a wide range. Standing record 9 of 19 ranges contained the outcome (+2 NEAR). We also missed a categorical call: we said no Southeast per-ton farm sale would print on Sep 24, and a 25-ton Fair lot did, at $250.

2. Grading (details in research/grades-2026-10.md)

#CallOutcome
17CO alfalfa August $235 (170–300)HIT β€” $235
18CO all-hay August $230 (165–295)HIT β€” $231
19KS alfalfa August $155 (90–220)HIT β€” $127 (point off by $28)
28No SE per-ton farm sale on Sep 24MISS β€” 25 t Fair at $250

Judgment vs persistence. The rows were frozen Aug 27; the only persistence baseline available then was June (210/207/125, the anchors written into the rows). Against it, judgment won: MAE $9.7 vs $17.0 β€” it won on Colorado (errors 0 and 1 vs 25 and 24) and lost on Kansas (28 vs 2), where we bet the state average would chase cash and it moved $1. July prices (225/222/126, published Aug 31, after the freeze) would have scored $6.7; that is a later-information benchmark, not a fair test of the call. (A first draft and the pre-publication review said July persistence was the fair baseline and "judgment lost"; a second review (codex) caught the date error.)

Partial windows (graded later): Sep 24 had no SE β‰₯100-t Good-or-better trade (#29), no Colorado β‰₯500-t farm alfalfa trade (#30; the 4,320 t was millet), no NE dairy alfalfa line (#31), and demand "Good to Very Good" (#32, first half).

3. The market, report by report (primary files in data/2026-10-02/ams/)

StateReportWhat printed (conventional alfalfa, per ton)Tone (verbatim)
COThu Sep 24SE: Fair 3x4, 25 t, $250 FOB-farm, "Weedy", 3rd cut (new crop) β€” the only per-ton alfalfa trade in the state. NE: per-bale stable lots and asks only. Volume 4,431 t, of which 4,320 t is Premium millet at $200 FOB-feedlot"Trade activity Moderate. Demand Good to Very Good all markets of new crop hay." Premium small squares +25–40Β’/bale
NEThu Sep 24West G/P 3x4 700 t, $270–300, wa $291.43 FOB (same region/grade/tonnage was wa $309 on Sep 10). Rounds: East Good 700 t wa $189; Platte Valley Good 800 t wa $202.50"buyer inquiry has soften a little in the last two weeks"; diesel slowing buyers; ground/delivered in the west +$20
WYThu Oct 1East G/P 3x4 500 t, $330 FOB (new). East Good 3x4 1,600 t, $270–300, wa $281.25 β€” identical to the Sep 17 line, and AMS counts it in this week's confirmed volume again. The narrative ("sold earlier in the year and just now getting delivered") suggests a delivery of the same deal; that is inference. We count it once and show the anchors both ways (Β§4)"Demand was moderate to instances good"; "Most irrigation districts are shut down"
NMFri Sep 25Asks onlyno summary paragraph
KSTue Sep 15 (latest retrievable)35 alfalfa large-square trade lines. Good-or-better FOB squares $210–275; Fair/Good FOB squares wa $203 (4,260 t). Southeast KS, same report: Fair/Good 3x4 450 t $200 vs 150 t "Old Crop" $125the expected Sep 29 report could not be retrieved (latest URL, ESMIS, Wayback CDX, MyMarketNews, KDA site all failed). Secondary (HPJ Sep 30 reprint, not checked against USDA): "Demand remained strong… hay inventories continued to decline"; SW KS stock-cow alfalfa $265–275, grinding $240–250; SC grinding 3x4 $230–240 (βˆ’$5)
OKFri Sep 18 (Oct 2 not yet posted at 08:49 MDT)G/P 4x4 160 t $240 and 380 t $170; P/S rounds 720 t $240"calling all hay producers" (Sep 18). Secondary (OSU, Sep 30): "Many producers have already started feeding hay… hay supplies are already short"
TXFri Sep 18organic only (3,000 t $380 delivered dairy) β€” not comparableβ€”

NASS August prices (released Sep 29), alfalfa $/ton: CO 235 (+10), NM 285 (+5), WY 230 (+10), TX 230 (0), OK 193 (+5), KS 127 (+1), NE 104 (+1), US 206 (+3). US all-hay $190 (+$6). July not revised anywhere.

4. The nowcast, built in the open

Governing rule (research/18): conventional alfalfa; completed per-ton trade; large squares (3x4/4x4) only; β‰₯100 t; price at origin (FOB, FOB-farm, FOB-dairy, FOB-stables as printed); Good grade or better (Fair/Good lots are a lower grade class and are shown separately); rounds, delivered prices and organic excluded. L11(2)'s older wording ("β‰₯500-t lots in NE CO, WY, W NE, KS") is shown as a variant. Computed by scripts/comp_set.py, which reproduces both Sep 19 sets exactly (G/P $269.8 on 1,840 t; Good $268.7 on 4,050 t) before being trusted on new files.

Anchor variantLotsTons$/ton
Governing: latest report per state, Good/Premium41,740$271.3
Latest per state, Good or better (WY 1,600-t line counted)125,140$267.9
Latest per state, Good or better (WY line excluded)113,540$261.9
Rolling Sep 10–Oct 1, Good or better, WY line once (figure 08)198,790$271.4
Rolling, G/P + Good only137,090$275.6
New reports only (Sep 24–Oct 1), WY line excluded (it first printed Sep 17)21,200$307.5
L11(2): β‰₯500 t in NE CO / WY / W NE / KS, rolling86,900$277.9
L11(2), latest per state53,900$282.1

Estimate: $275 = the rounded median of the eight ($273.5). It is not a directional judgment; the spread is $262–308. Good ~$270. Fragility: the governing anchor is $299.6 without the Oklahoma $170 lot, and the rolling set is $276.0 without it. By region, northern lots (CO/NE/WY, 6,450 t) average $283 and Kansas/Oklahoma lots (2,340 t) $239; which buyers a McClave seller reaches matters more than any rule above. Lot-to-lot spread (tonnage-weighted SD) is $32, which by itself supports a Β±$65 range for any single sale. Like-for-like, western Nebraska G/P slipped $18 and Wyoming's G/P rose $35 on a different bale and basis: no trend we can claim.

Fair/Good large squares (mostly Kansas, Sep 15): wa $203 on 4,260 t, $125–245. Including them, all large squares average $249.

Import parity into Bent County (market_parity.csv, $0.157/t-mi derived from DAT flatbed $2.59/mi linehaul, wk ending Sep 25, plus fuel at $6.38 diesel): Oklahoma 4x4 lands $211–287; Kansas dairy P/S $273; western Nebraska G/P $321–351; Wyoming G/P $382. No export netback is computed (no delivered price with a known destination printed).

Regime-change rule check (forecast_policy.json): no directly comparable trade printed, so it does not fire.

5. Weather, water, drought (primary files in data/2026-10-02/wx/)

What the rain does and doesn't do (inference, not measured): it adds little 2026 hay (most districts are on their last cutting; first freeze at Lamar is typically mid-October). It does (a) green local pasture and wheat, which cuts local cow-calf hay demand this winter, (b) refill soil and start refilling John Martin for 2027, and (c) lower the grade of hay that was cut or stored uncovered. Oklahoma and Texas moved the other way. Net for SE Colorado price: two-sided.

6. Demand and costs (primary files in data/2026-10-02/macro/)

7. The grid (data/current/premium_forecast.csv, version "research/20")

MonthLowMidHighLayer
Oct 2026210275340nowcast (Β§4)
Nov–Jan215280345DISCRETIONARY, weather-driven: the +6% base-rate lift cut to ~+2% (about βˆ’$11) for local pasture recovery; OK/TX drought the offset
Feb 2027210275340Feb 1 SWE = final exit gate
Mar200265330DISCRETIONARY: drought outlook + El NiΓ±o wet lean
Apr / May / Jun190 / 180 / 170255 / 245 / 235320 / 310 / 300new-crop seasonality
H2 2027155–165220–230285–295least decision-relevant

L10 honesty note. Weather has not passed the evidence gate, and it still moved the Nov–Jan midpoint by about βˆ’$11 and the spring roll-off. The amended policy permits that only as a logged exception, and it is logged (forecast_adjustments.json). It is judgment, not a measured effect. forecast_preflight.py: OK. State-benchmark grid unchanged (Sep $240, Oct $245, Dec $255, Jan–Mar $260).

Falsifiers. Down: a Colorado β‰₯500-t farm sale at or under $240; Kansas/Oklahoma wheat-pasture reports after the rain; NE/WY tone going from "moderate" to "light". Up: any β‰₯500-t Good-or-better print at or above $300 in Colorado; Oklahoma's Oct 2 report still "calling all hay producers" with prices up; Colorado's September state price β‰₯$260 (Oct 30).

8. For the seller (holdings, grade and storage UNVERIFIED)

  1. Look at the stack first. About 13" of rain fell at Lamar Airport from July 1 to Oct 1, 3" of it on Sep 30–Oct 1. If the 2025 carryover sits uncovered, the outside of every exposed bale has taken weather. Probe-sample inside and outside bales separately. We have almost no local price evidence on weather damage: one same-report pair (Aug 28, 2025: Fair "Bleached" 1st cut $125 vs Good/Premium 2nd cut $140, 25 t each) also differs in cutting. Mold or heating can make hay unsaleable to dairy and horse buyers (general agronomy, not measured here).
  2. Then test, weigh, and get three bids on the same description. Unchanged procedure (research/19).
  3. Reference sales, not values: Southeast Kansas, same report, Fair/Good 3x4: 150 t "Old Crop" $125 vs 450 t $200 (Sep 15) β€” the only old-crop large-square trade this cycle, and the closest to the seller's hay on crop age; SE Colorado Fair weedy 3x4, 25 t, $250 FOB-farm (Sep 24, new-crop 3rd cut) β€” the closest on location; NE CO Good 3x4 2,000 t $260 (Sep 10); western NE G/P 700 t $291 (Sep 24); OK G/P 4x4 380 t $170 (Sep 18, crop age not stated).
  4. Crop-age discount evidence is heterogeneous. Same-report: βˆ’37% (Kansas, Fair/Good, n=1). Cross-season SE Colorado pairs: βˆ’8% (Good 3x4 $180 Sep 19, 2024 β†’ $165 "old crop" Jan 8, 2025) to 0% ($180 on Feb 27, 2025); those mix crop age with season and a falling market, and none measures hay held through a second summer, which is the seller's case. Working judgment for untested 2025 carryover, wide on purpose: $200–270 if it tests Good and is sound; $150–240 if Fair or weathered; lower if moldy. No trade of untested carryover printed.
  5. Holding loses on our numbers. Illustrative: $260 net bid today. Three more months cost ~$10/ton plus ~3% shrink, so January must net ($260 + $10) Γ· 0.97 = $278. On the same basis, our grid moves $275 β†’ $280 by January, so a $260 net today becomes ~$265 net in January: about βˆ’$13/ton expected, with Β±$65 around it and weather risk on an uncovered stack. Selling a meaningful share on a firm bid now beats waiting, on our numbers.
  6. On $180: $70 under the only local farm sale this cycle (a weedy Fair new-crop lot), $23 under the Kansas Fair/Good FOB average ($203), and $55 over the Kansas old-crop lot ($125). It is not under every trade. If the stack is sound and tests Good, competing bids should beat it; if it is old and weathered, $180 may be a fair bid. Test first.
  7. Exit rules unchanged and senior: Dec 1 basin SWE β‰₯ median β†’ sell everything by Christmas; never hold past the Feb 1, 2027 reading.

9. Verification table (claim | method 1 | method 2 | status)

ClaimMethod 1Method 2Status
CO alfalfa Aug $235, all-hay $231, KS $127grade_predictions.py from ESMIS agpr0926.txtoperator read of the table + title month (AUGUST); reviewerVERIFIED
SE Fair 25 t $250 FOB-farm, Sep 24agent pdftotextoperator read of the full text + parser row in the ledgerVERIFIED
No CO β‰₯100-t alfalfa trade on Sep 24agent readcomp_set.py on the file (zero rows) + operator readVERIFIED
W NE G/P 700 t wa $291.43 (Sep 24)agent readcomp_set.py parse + reviewer read of the PDFVERIFIED
WY 1,600 t line repeats Sep 17operator diff (line identical)reviewer: AMS counts it in Oct 1 volume tooVERIFIED that it repeats; ONE deal or two is UNKNOWN β€” anchors shown both ways
KS SE old-crop 150 t $125 vs 450 t $200revieweroperator read of the KS Sep 15 Southeast sectionVERIFIED
Comp-set code correctreproduces Sep 19 G/P $269.8/1,840 t and Good $268.7/4,050 t exactlyreviewer re-parsed the new files against the PDFsVERIFIED
Anchor spread $262–308, median $273.5operator script (8 variants)reviewer's independent variants ($262–308)VERIFIED
Lamar AP Jul 3.18 / Aug 4.47 / Sep 4.50 / Sep 30 2.17 / Oct 1 0.96agent + operator ACIS queriesreviewer (ACIS monthly file)VERIFIED (a first chart draft showed July 0.00 because a saved file started Aug 1 β€” caught on review)
FLCC restarted Sep 21, 405 cfs Oct 1agent CDSS telemetryoperator CDSS telemetry query + FLCC page (371 cfs headgate, Run #5)VERIFIED
FLCC Jun–Sep β‰ˆ 25–26% of 2010–25 avgCDSS monthly 26,445 AFtelemetry 25,969 AFVERIFIED, with caveat: monthly includes placeholder dailies
Bent County D2+ 0%, D1 48% (Sep 29)agent USDM county APIoperator re-read of the saved JSON; reviewerVERIFIED
State DSCI valuesagentoperator recomputed from cumulative D0–D4 (all 7 match); reviewerVERIFIED
John Martin 22,978 AFCDSS telemetryUSGS lake elevation 3802.41 ft β‰ˆ 22,900 AFVERIFIED; USACE end-of-Sep-30 storage 20,228 AF (retrieved later) is consistent with the rise
Diesel record $6.529 (Sep 21)FRED GASDESWEIA gasdiesel pageVERIFIED
Futuressaved Yahoo JSON (Oct 2 intraday)β€”SECONDARY, delayed, not settlements (a draft quoted Oct 1 values not in the saved files β€” corrected)
Kansas late-Sep pricesHPJ reprintβ€”UNVERIFIED vs USDA; not used in the nowcast
US–China truce to Jan 10, 2027DTNβ€”SINGLE SECONDARY SOURCE
Seller's holdings, grade, storageβ€”β€”UNVERIFIED

10. What we could not get

The Kansas report expected Sep 29; the Oklahoma and Texas reports due today (not posted at 08:49 MDT); the USACE John Martin morning report (retrieved later the same morning; see Β§5); the 30SEP NiΓ±o-3.4 line (posts Oct 5); Horse Creek storage. Local private asking prices for the Arkansas Valley: searched, none published (Front Range asks $340–375). Kansas and Oklahoma are the two that could move the nowcast; research/21 sizes that.

11. Pre-publication review (review_2026-10-02.md) β€” what it found, what changed

#SeverityFindingFix
1HIGHOld-crop discount (5–10%) rested on a cross-season pair; a same-report KS old-crop lot at βˆ’37% was left outKS lot cited; evidence labeled heterogeneous; seller ranges widened (Β§8.4)
2HIGHParity table said a 25-t Fair lot shows G/P "is not below ~$250" β€” floor language banned on Sep 19sentence deleted from market_parity.py/.csv
3HIGHHold-vs-sell compared a seller net ($260) with a grid level ($280); "β‰ˆ $0"restated on one basis: about βˆ’$13/ton (Β§8.5)
4MEDWY 1,600-t handling inconsistent across checksone rule; anchors shown both ways
5MED+$4 justified only by the checks above the anchor$275 restated as the rounded median of all eight variants
6MEDFair/G/P "0.87" ratio mixed basis and cuttingdropped
7MEDWeather-damage evidence weak; Fair weedy lot called "closest" to the seller's haylabeled weak; "closest on location" vs KS "closest on crop age"
8MEDProse said weather was not moved into price; the grid did exactly thatstated plainly (Β§1, Β§7)
9MEDGrade filter (Good or better) hidden; figure 08 implied the whole marketrule stated; Fair/Good lots shown separately in figure 08
10MEDState-row floor Β±$30 vs a $28 KS misskept under its written trigger; disagreement recorded in calibration_floors.json
11MED"Judgment won" measured against stale June persistenceREVERSED on second review (codex, Oct 2): July prices were published Aug 31, after the Aug 27 freeze, so June persistence IS the information-matched baseline; judgment won ($9.7 vs $17.0). July persistence kept only as a later-information benchmark (Β§2)
12MEDFutures quoted values not in the saved filesreplaced with saved values, labeled
13MED#43/#46 near-free hits; #45 likely#46 withdrawn; #43/#45 flagged low-information
14–17LOW12β†’13 lots; 39β†’35 KS lines; COF wording; rain double-count reading; placeholder dates; dangling refs; "at the farm" β†’ "at origin"fixed

12. Second review (codex, same day, after commit 358a693, before push)

#FindingAction
1signals.html still showed the superseded Oct $280 / $285 peakregenerated by rerunning the pipeline after the grid was final
2"July persistence is the fair baseline" was a date error β€” July printed Aug 31, after the Aug 27 freeze (first review's #11 was wrong, and we accepted it)reversed everywhere: judgment beat freeze-time persistence $9.7 vs $17.0; July kept only as a later-information benchmark
3"6 of 6 state rows inside their ranges" β€” #16 (KS July $126 vs $130–155) was NEARcorrected to 5 of 6 + 1 NEAR in research/21 and calibration_floors.json
4Standalone HTML linked charts by relative path, broken from archive/charts embedded inline (ids namespaced per chart); 0 external references
5plot_price_review.py would crash once September prints (est[9])statewide sentence built from whatever estimates remain; tested with a simulated release and with none left
6calibration/manifest/retro outputs stale after the failed first pipeline runpipeline rerun
7Charts under "Conditions" landed after the next section (list endings ignored)insertion handles lists and is bounded to its own section

Third review (codex, same day, after 7ecc22a): (1) the regenerated signals.html said "0 cfs in canal" β€” signal_dashboard.py summed the FLCC page's division PM column, which reads 0 until afternoon; it now reads the page's "Headgate N CFS" line (371 cfs) with the page's own update stamp (10/2/2026 7:15 a.m.). (2) "August-only rain" summed Aug 1 β†’ today (20.30") and judged timing by day-of-month; now bounded to Aug 31 and timed by full date (6.67", two-station sum). Both were pre-existing generator bugs that this run republished. (3) Figure 08: marker size capped so large lots no longer hide the next row's label; local-sale label shortened. Archive revision 3; earlier revisions kept as -rev1/-rev2.

Fourth review (codex, same day, after 73533de): (1) the FLCC fallback summed the division "AM/PM In Use" table (lateral deliveries, not headgate flow) β€” removed; no headgate line now means "unknown". (2) the dashboard stamped the USACE John Martin storage (20,228 AF, end of Sep 30) as today; it now shows the report's own period date; that also explains the gap with the 22,978 AF CDSS reading (Oct 2 08:15). (3) the SE AMS price tile silently vanished because it only looked in data/<date>/hay/; it now finds ams/ams_2905_<date>.txt saves too and shows the $250 Sep 24 lot. (4) research/21 said both "0" and "about two" comparable local outcomes; it is zero. New tests/test_dashboard_parsers.py (7 tests) pins all three parsers to the saved pages.

Fifth review (codex, full dashboard audit, after 55686ef): nine findings, all in pre-existing dashboard code except one stale line in this report. Fixed: the dashboard price chart now plots statewide all-hay actuals under the v2 all-hay forecast (it plotted alfalfa); winter snowpack tile implemented (6-station index vs its 2015–25 median, labeled a proxy for the NRCS number that decides); ENSO parsed with entities decoded, status/issue date from the page, newest saved discussion as fallback, no hard-coded August text; rain tiles refuse to publish when >10% of days are missing; seller guidance on the dashboard now comes from project_context.json β†’ seller_guidance (the old "hold to Nov–Jan, $255–265" text is gone); forecast chart limits come from the full low/high range; Bent County, diesel and Pueblo verdicts use one threshold function each, live and cached; CDSS call responses are validated and the "most senior" detail is built from the records; the John Martin limitation above is corrected (USACE retrieved later: 20,228 AF end of Sep 30).