Ground beef: three failure modes, no pipeline bug
Verification failed; nothing accepted. Four items sent, three figures returned, one rejected by the gate — and of the two that passed, one is subtly wrong in a way no automated check can see.
The re-scout, and why it was worth doing
Every URL was re-fetched with the pipeline’s own fetcher and checked to contain its figure, rather than trusted from a browser — a lesson from the silk batch. That caught a blocker before any model time was spent: the USDA FSIS website returns HTTP 403 to the pipeline, site-wide. A browser renders JavaScript and sends a browser user-agent; the pipeline does neither. A URL verified from one tool is not verified for another. The affected item was excluded — carefully, because an item that loses its URLs but keeps its question doesn’t get skipped, it inherits the previous item’s URLs, which would have asked a burger article how grinder lots are structured and invited a verbatim, confident, wrong answer.
What came back
| Field | Value | Agreement | Verdict |
|---|---|---|---|
cattle_per_patty_typical | 100 | 2/2 | passes, but see below |
patty_mass_standard | 112 g | 1/1 | passes, and is misleading |
provenance_can_it_be_known | 4 | 1/1 | rejected — correctly |
beef_per_animal_proxy | — | — | no figure returned |
The rejection is the gate at its best
none of the reported values (4, 4, 4) appear in the quoted sentence
The quote names Nebraska, Texas, Uruguay and a South Dakota trim plant. Four
is the right answer — and the model reached it by counting entities in a
sentence, which is derivation, not extraction. The digit 4 is nowhere in the
text. The gate refused it for exactly the right reason: derived is a claim
about provenance, and only a human may make it. A correct answer, correctly
refused.
The row to actually worry about: 112 g
patty_mass_standard verifies perfectly and means something other than what
was asked. Its quote:
To achieve uniform sizing for the broiled and pan-broiled patties, 112 grams of ground beef were pressed into each patty mold.
That is a laboratory’s test-patty size from a cooking-yield methods section — an internal protocol detail, not a retail or foodservice standard. The item asked for a market patty weight and named the quarter-pound (113.4 g) as its source. What makes it dangerous is the near-miss: 112 g sits about one gram from the real quarter-pound, so nothing looks wrong. A real number, from the right document, on the right subject, stripped of the context that gave it meaning.
And the one that passed is a ceiling wearing a point value
cattle_per_patty_typical stored lo = mode = hi = 100 from:
Meat from more than 100 cows can be used to make one hamburger.
That is a maximum, and a hedged one. The batch spec warned about this exact misreading in as many words — and predicting it did not prevent it, which is the second time a spec’s own warning failed to stop the thing it named. Storing it as a typical value with zero spread is the one reading the sentence does not support.
Conclusion
Three rows, three different failure modes, none of them a pipeline bug: one correct refusal, one context-stripped near-miss, one ceiling flattened into a point. The re-scout and the gate both did their jobs. Nothing here gets promoted without reading each quote against its own document first.
Adapted from the project’s review record
batch-06-ground-beef-REVIEW.md
(CC BY 4.0).