Southeast Colorado alfalfa price forecasts, graded in public.

Independent Review of the September 19 Report

Don’t trust the selling advice yet. Claude ignored cheaper comparable hay, misused freight costs, and compared different hay grades to justify selling earlier. Many source numbers are correct; the conclusions need fixing.

Reviewed commit 305edb9 against its parent, the saved primary-source data, current USDA/EIA/CPC pages, and executable checks on September 19, 2026. Verdict: request changes before relying on the price bracket or seller advice. Much of the data collection is useful and reproducible. The central valuation and timing conclusions are materially less secure than the report suggests.

This is a review, not a replacement forecast. Finding faults in $280 does not establish a different correct local price. Published reports, frozen predictions, archives, and production code were left unchanged.

Findings, ordered by consequence

1. High: the claimed regional floor is contradicted by a directly relevant trade omitted from parity

Locations: SeptemberHayReport.md:11, SeptemberHayReport.md:72, scripts/market_parity.py:44.

The report says Good hay has a $250–260 FOB floor in every surrounding state and uses this to say ā€œReject $180.ā€ But the September 18 Oklahoma report includes 380 tons of Good/Premium large-square 4x4 alfalfa at $170/ton FOB in Northwest Oklahoma. It also includes 720 tons of Premium/Supreme rounds at $240. Claude records the $170 square-bale trade in the research and parity row's note, but only the $240 rounds enter the calculation.

Using the report's own Northwest Oklahoma distance and freight assumptions, the square-bale comparison lands at approximately $170 + 265 Ɨ $3.60 / 23 = $211.48/ton, rather than the selected round-bale comparison's $281.48. That is a $70 difference within the same region. It does not prove this lot is still available or equivalent to the seller's stack; those questions apply to the higher-priced comparisons too. There is no documented exclusion rule that resolves the discrepancy.

Separately, Kansas has a Good large-square FOB new-crop trade at $230 (South Central, page 5), also below the asserted floor. Its lower-priced Fair/Good and old-crop transactions are additional evidence against assigning an untested carryover stack a universal minimum.

Correction: include the $170 trade, investigate its comparability, and show the sensitivity of the nowcast to its inclusion. Withdraw the categorical regional-floor claim. Obtain forage quality, condition, weights, and actual competing bids before recommending rejection of a particular offer. The report's recommendation to test and weigh is sensible; its declaration that untested carryover ā€œis a Good-grade commercial lotā€ is not established by those descriptors.

Primary sources: Oklahoma AMS, page 3, Kansas AMS, page 5. Saved dated copies are in data/2026-09-19/.

2. High: $222 is not an observed export netback

Locations: scripts/market_parity.py:40, SeptemberHayReport.md:11, SeptemberHayReport.md:55.

The previous parity input was a delivered dairy transaction. The new input is $260 FOB-Farm/Ranch, but its calculation type remains export_netback: $260 minus $38 freight = $222. The Colorado report does not give the buyer's delivered price or destination. A regional origin price is not a delivered buying bid to which this subtraction can simply be applied. Greeley is also a regional proxy, not a disclosed destination of this transaction.

The subtraction itself is arithmetically correct. Presenting the result as what the McClave seller nets shipping to that buyer is unsupported. It could be retained as an explicitly assumed destination-price scenario, but it cannot substantiate the report's lower valuation bound.

Correction: use an actual delivered bid and its destination, or label this an unverified scenario. Preserve freight terms as structured input and reject unsupported netback calculations. Existing tests check arithmetic, not whether the source price has the right economic meaning.

Primary sources: Colorado AMS, page 2; USDA hay glossary, which defines FOB as origin price excluding transportation.

3. High: the earlier selling deadline relies on a changing mix of hay, not a measured same-product decline

Locations: SeptemberHayReport.md:13, SeptemberHayReport.md:53, SeptemberHayReport.md:70; research/17 sections 3.3–3.4.

The $40 fall from November 2022 to February 2023 compares 1,000 tons of Good/Premium 4x4 new crop at $300 with 25 tons of Good 3x4 old crop at $260. December's $320 is a 50-ton Premium lot. Those differences confound seasonality with grade, lot size, crop age, and bale format. The ledger's same named Good-grade observations instead go $225 in September, $250 in October, and $260 in February; even these differ in crop age and are not a controlled index.

The stored +23% calculation is also more fragile than the prose: it compares Aug–Oct's 269 tons, weighted price about $244, with Dec–Feb's 75 tons, weighted price $300. It excludes the November 1,000-ton transaction from the winter calculation, despite the report describing the lift as into November–December. The February transaction is below the project's 100-ton grading threshold.

Correction: describe the historical rows as heterogeneous observations consistent with several explanations. The available evidence does not establish a comparable local market peak followed by a $40 decline. Keep a mid-December completion plan, if desired, explicitly as a risk-management judgment rather than a historically demonstrated optimal selling window. Do not interpret this finding as evidence that holding longer is better.

Evidence: data/2026-09-19/wayback_2905/build/analysis.txt, especially ā€œLARGE-SQUARE ONLYā€ and ā€œLS winter liftā€; underlying dated report text and the historical CSV reproduce these rows.

4. Medium: archive coverage is materially incomplete, particularly for the latest winter

Locations: SeptemberHayReport.md:9, research/17-september-reckoning-local-cash-history-2026-09-19.md:47, research/predictions-2026-10.md:13.

I reproduced six qualifying reports out of the 242 collected reports. That sample arithmetic is correct. It is not a complete six-year publication record. The saved coverage table has no October–November 2025 reports, no January–March 2026 reports, no May 2026 reports, and only eight reports total in 2026 through September 10. The ESMIS index stops in September 2025; later observations come from Wayback and local snapshots. The public statement that the 242 reports came from USDA's own file server is therefore also too broad.

Most notably, the ā€œ2025→26 winter āˆ’11%ā€ result has just one December transaction and no January or February reports. It cannot measure a complete Dec–Feb window. ā€œ2 of 8 2026 reportsā€ is a retrieval-sample frequency, not an established current-year reporting probability. The research discloses missing months, but the public conclusions and categorical prediction anchors omit their significance. ā€œNo primary copy exists anywhereā€ also exceeds what failed retrieval can establish.

Correction: disclose missing coverage alongside base rates; distinguish missing reports from reports with no qualifying trade; label incomplete seasonal windows as incomplete. Keep the useful finding that this target is sparse, with appropriately limited probability claims. The six-count filter also spans Good through Supreme; do not silently equate it with only the exact Good/Premium grade.

5. Medium: the advertised calibration enforcement has holes

Locations: scripts/calibration.py:96, scripts/forecast_preflight.py:27, research/predictions-2026-10.md:33, data/current/calibration.json.

The new ratchet retains the absolute price floor of $65 when the existing calibration output is present. However:

Correction: keep durable, explicit family floor state; fail closed if required state is lost; define the new family's initial floor; enforce all pending-row widths; add isolated regression tests. Clarify which constraints are absolute-only and whether ratchet release is per family. Preserve already frozen predictions and document any erratum rather than silently rewriting them.

6. Medium: the indicator policy is stated more strongly than it is enforced or followed

Locations: scripts/forecast_preflight.py:40, data/current/forecast_policy.json, research/17 section 7.

The indicator screen approves none of the added indicators. Policy says failed indicators may influence scenarios or monitoring but not numeric midpoints. The research nevertheless says the drought outlook is why the peak is not carried beyond December and Jan–Feb midpoints roll off; prediction #31 also assigns a $20 adjustment to lower milk prices. These may be legitimate judgments, but there is no quantified, separately auditable adjustment record demonstrating policy compliance or an explicit exception.

Preflight computes and prints the approved list; it never checks which indicators affected the forecast. It therefore cannot enforce the central indicator restriction claimed by the learning system. A price path typed into a CSV can pass regardless of how it was chosen.

Correction: record the adjustment ledger in structured data and check it, or narrow the enforcement claim and explicitly label discretionary exceptions. Calling confidence LOW is useful but does not repair a false claim of mechanical enforcement.

Additional corrections

Checks that passed and review limits

Disposition: retain the source collection, explicit uncertainty, and honest scorecard. Correct the parity model and exclusions, qualify the seasonal inference and incomplete archive, and close or accurately describe the enforcement gaps. Issue a dated correction to any already published report; do not overwrite its frozen archive. Recompute the valuation only after those changes, rather than assuming either the existing $280 or a lower replacement is validated.