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.
| Field | Value | Agreement |
|---|---|---|
sap_to_syrup_ratio | 40 gal sap : 1 gal syrup | 2/2 |
sap_sugar_content | 2% (range 1–5) | 1/1 |
sap_per_tap_per_season | 20 (lo 10) gal/tap | 1/2 disagree |
taps_per_tree | 2 (lo 1) | 1/1 |
season_length | no number | quote 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.