Southeast Colorado alfalfa price forecasts, graded in public.

Correction After Independent Review — September 19, 2026

Status: CURRENT. This file amends research/17 and the September 19 report. The review (codex_review_2026-09-19.md, a second model's read of commit 305edb9 against the saved primary data) was right on every substantive point. Prediction rows and the graded ledger were not edited. Erratum (follow-up review, same day): the first correction commit (9c357d4) OVERWROTE archive/2026-09-19/ — the archived original report, grid, parity table and research/17 were replaced, not preserved, and this file wrongly said both revisions were kept. The original was recoverable from commit 305edb9 and has now been restored to archive/2026-09-19-rev1/ (its own hash manifest verifies); the first correction is in archive/2026-09-19-rev2/; archive/2026-09-19/ holds the final revision. archive_snapshot.py now moves a prior revision aside before any same-day rewrite, and the integrity tests hash the -revN directories too.

What was wrong, in order of consequence

  1. The "$250–260 regional floor" and "reject $180" were false as stated. The Sep 18 Oklahoma report prints 380 tons of Good/Premium large-square 4x4 at $170 FOB (Northwest; no damage note). I recorded it in the market table and left it out of parity with no exclusion rule. Landed at McClave it is ~$211, $70 under the round-bale lot I used. Kansas also printed a Good 3x4 100-t lot at $230 FOB (South Central). Both are now in market_parity.py. The floor claim is withdrawn. The honest statement: every ≥500-ton Good-or-better large-square lot in the region printed $250–300 at origin (Kansas Fair/Good squares: 500 t $195 FOB, 3,575 t $233 delivered); large-square lots of 100–500 t reached $170; large rounds ran $160–240 (Nebraska 1,000 t Good at $160).
  2. The "$222 export netback" was an assumption presented as an observation. $260 is the origin price of a NE Colorado farm sale; the buyer's location and delivered price are not published. Subtracting freight to Greeley assumes the buyer sat at that farm. Withdrawn. The row is now origin_price (comparable at origin, no freight applied); no netback is computed this cycle because no delivered price with a known destination printed.
  3. The "SE cash peaked Nov–Dec 2022 and was $40 lower by February" comparison mixed products. Nov 17, 2022: 1,000 t Good/Premium 4x4 new crop at $300. Feb 9, 2023: 25 t Good 3x4 old crop at $260. Dec: 50 t Premium at $320. Grade, age, bale and lot size all change. The same-grade Good rows go $225 (Sep) → $250 (Oct) → $260 (Feb), which is not a decline. The +23% "winter lift" also excluded the November 1,000-t lot from its winter window. The rows are consistent with a Nov–Dec peak and do not establish one. The mid-December completion plan is retained as a risk-management judgment, not a demonstrated optimum. It is not evidence that holding longer is better either.
  4. Archive coverage overstated. 242 reports is the retrieved sample, not the publication record: ESMIS stops at Sep 2025; Oct–Nov 2025, Jan–Mar 2026 and May 2026 are missing (from every source tried, which is not the same as "no copy exists"). The "2025→26 winter −11%" rests on one December trade. "2 of 8 2026 reports" is a retrieval-sample rate. The six-count filter spans Good through Supreme.
  5. Enforcement holes. (a) The calibration ratchet read its prior state from its own output; a missing or invalid calibration.json silently reset the floor to ±$41. (b) Only absolute floors ratcheted, and release pooled all families. (c) New row #37 (+3.1 ±1.3) violated the stated max(abs, pct) rule under anomaly_c's 92.9% relative floor. (d) The state_price_usd_ton family used by rows #33–35 had no machine floor. (e) Preflight checked the grid, not pending rows. (f) Row #31 ($315 ±65) is under the 21.7% relative price floor.
  6. Indicator policy stated more strongly than enforced. The drought outlook shaped the grid's post-December roll-off and milk moved #31 by $20; neither is an evidence-gated indicator, and preflight never checked what moved the midpoints.

Smaller: $325 is tied for the highest SE large-square farm-origin print (24 t Premium, Nov 11, 2022), across different grades. "Persistence landed within $5" was wrong: pure June persistence missed by $15/$14; the predictions ($220/$217) were within $5. The +$45 basis used the $235 statistical anchor; against the published $240 state-grid midpoint it is +$40. Organic volume: 4,000 t contracts + 500 t trade, not "4,500 t contracts." September diversions are partial through the retrieval date; June–August like-for-like is 26.2% of the historical mean. A qualifying Sep 24 trade would be 7 of 243, and only one meeting the grade/bale/size/basis filter counts.

What was fixed in the system (this commit)

Recomputed valuation

Tonnage-weighted comparables at origin. Comparison set, defined (follow-up review 2026-09-19): conventional alfalfa, completed per-ton trade, large square bales (3x4/4x4) only, ≥100 t, price at origin, Sep 10–18 reports. Rounds are a different product (handling, payload) and are listed but excluded; the first correction included Oklahoma rounds while silently omitting cheaper Nebraska rounds — that inconsistency is fixed here (ams_cash_benchmarks.csv, raw PDFs in data/2026-09-19/):

Grade setTonsWeighted $/tRange
Good/Premium large squares (W NE 500 @300, 200 @330; WY 500 @295, 100 @300; OK 160 @240, 380 @170)1,840$270170–330
Good large squares (NE CO 2,000 @260; WY 1,600 @281, 150 @255; W NE 200 @285; KS 100 @230)4,050$269230–285
Premium/Supreme large squares (KS 500 @250, 100 @275, 200 @237.50)800$250238–275
Large rounds — EXCLUDED by rule (NE 1,000 @160, 500 @185, 600 @202, 450 @210, 150 @190; OK 720 @240)3,420$196160–240
All large squares6,690$267170–330

Landed into Bent County (freight $0.157/t-mi, derived): $211 (OK G/P 4x4) to $336 (W NE). No netback is computable. Estimate: $270 Good/Premium large-square FOB-farm (from $280), Good ~$265, ±$65, LOW. It is a selected regional average, not an observed McClave price. No import-parity uplift is claimed on top of the origin comps, because the cheapest comparable landed ($211) sits under every origin comp.

Revised grid (premium_forecast.csv, version "research/18 correction"): Sep 270 → Oct 280 → Nov–Jan 285 → Feb 280 → Mar 270 → Jun 240 → late-2027 225. The Oct–Jan lift is a discretionary +6% (NE large-tonnage base rate, up 5 of 6 seasons); the post-February roll-off is a discretionary scenario move (drought outlook). Both are in forecast_adjustments.json.

State-benchmark grid unchanged (Aug 235 frozen, Sep 240, Dec 255, Jan–Mar 260).

Revised seller guidance (holdings still UNVERIFIED)

What the review confirmed

Scorecard 6/16 (+2 NEAR), central cluster 1/5; the 17 mechanically checkable grades; the Sep 10 Colorado report contents; NASS July prices; cattle-on-feed; the canal diversion arithmetic (25.0% Jun–Sep; 26.2% Jun–Aug like-for-like); John Martin 19,412 AF; drought indices and Bent County's collapse to 19% D2+; diesel $6.285; the 75% CPC sentence; the parser reproduces all.json with zero differences across 265 saved reports.

Lesson

L11 is amended: base rates from the local ledger must be same-product comparisons or be labeled heterogeneous; a comparable omitted from parity needs a written exclusion rule; an origin price is never a netback. Added to LESSONS.md under L11.

Follow-up review (same day, codex_followup_review_2026-09-19.md) — five more defects, all confirmed and fixed

  1. "Every ≥500-ton lot ran $240–300" was false. Nebraska sold 1,000 t of Good rounds at $160, 500 t at $185, 600 t at $202. The first correction included Oklahoma rounds while silently omitting cheaper Nebraska rounds. The comparison set is now defined (large squares only, ≥100 t, origin price) and rounds are listed and excluded by rule.
  2. The seller reference ranges had no transaction basis (no untested-carryover trade printed; the $170 lot's crop age is not stated). Replaced with named negotiating references plus one range explicitly labeled as judgment.
  3. The published chart still showed the $280 / $300–305 path. Site figure, dashboards, report HTML and artifact regenerated from the corrected grid; the $170 lot is plotted.
  4. The archive was overwritten (see erratum above). Restored and the snapshot script fixed.
  5. The private seller report was published to the site. Removed from build_site.py and the generated output; it stays in the repo, unpublished.

Also: preflight and the width test now use the room on the narrower side of the point (min(point − low, high − point)) and check ordering; the adjustments ledger covers every month of both grids; forecast_policy.json v3 says explicitly that failed indicators may move a midpoint only as a logged exception. The Wyoming western 100-t G/P 4x4 at $300 is in the comp set (mean $270). "Our estimate is lower" replaces "spot is lower" throughout.