Maple: store the rule, not the constant

The first batch where verification passed cleanly: 5 figures, every quote matched character-for-character, no row claimed a human-only grade, and the trial build and audit came back clean. One figure at 2/2 model consensus, four resting on a single model and flagged for human attention.

FieldValueAgreement
sap_to_syrup_ratio40 gal sap : 1 gal syrup2/2
sap_sugar_content2% (range 1–5)1/1
sap_per_tap_per_season20 (lo 10) gal/tap1/2 disagree
taps_per_tree2 (lo 1)1/1
season_lengthno numberquote present, value null

The null is correct

season_length returned a quote but no number, and that is the right output. The source gives calendar windows — “mid-February to early April in Southern Maine, mid-March to late April in Northern Maine” — not a duration. Turning that into “about six weeks” is our arithmetic, not the source’s. Either store the windows verbatim, or find a source that states a duration; quietly subtracting two dates and calling it measured is exactly the move the corpus exists to refuse.

The strongest source contributed nothing — and it is not a retrieval bug

Everyone knows “40 gallons of sap to a gallon of syrup.” The University of Vermont’s Rule of 86 states the real relationship: gallons of sap per gallon of syrup = 86 ÷ the sap’s sugar concentration in °Brix. Sap runs 1% to 5%, so the true ratio runs 86:1 down to 17:1 — a five-fold spread in which every value is correct, for a different tree on a different day. The famous 40 is the rule evaluated at 2°Brix, rounded.

The initial hypothesis was that the UVM passage never reached the model — thin chunking, truncation, retrieval miss. Checking killed the theory on every count: the PDF was small enough to be exactly one chunk, never split; the item listed exactly two URLs, so both chunks were retrieved and in front of the model; and the fetched text demonstrably carries “one divides 86 by the sugar content of sap.” Both models saw the rule and quoted the folk constant anyway. That is a model preference, not a pipeline fault — and the gate cannot catch it, because 40 is not wrong; it is the rounded form, and the UVM document itself says “close to 40:1” a sentence later.

The consequence for promotion: cite the source that explains the number and store the rule with its 2°Brix basis — otherwise the corpus records a constant that is only true at one sugar concentration. The human review made exactly that reversal. Store the reason, not the rounding.

Conflicts recorded rather than resolved

Per-tap season yield: one extension service says 10–20 gallons, another says 5–15. A genuine regional spread, kept as a range, not averaged away.

Portability, paid for in this run

Verification could not initially complete on the Windows extraction host, for two reasons unrelated to the data, both fixed: file reads without an explicit encoding died on and en dashes (YAML is UTF-8 by spec; the read is now explicit), and a temp-directory teardown failure was discarding an audit verdict already correctly arrived at. Neither touches what the gate checks.


Adapted from the project’s review record batch-07-maple-REVIEW.md (CC BY 4.0). The figures were subsequently promoted to the corpus in v1.9.0, citing the Rule of 86.