Corrections and reformulation reports
Policy published
Every number here was transcribed from a manufacturer's own document by a person, and manufacturers reformulate without telling anyone. Both of those produce wrong numbers. This page is how they get fixed, and the record of every fix.
How to report an error or a reformulation
Email hello@bowlgrade.com. There is no form, no account and no ticket number — a static site does not need one, and a form would collect more about you than a message does.
Useful to include, in whatever order it comes out:
- The product, and the page on this site that is wrong.
- The value you are looking at — crude protein, kcal/kg, an ingredient, an AAFCO statement.
- What the label in front of you says, and where you are reading it: a photo of the guaranteed analysis panel, or a link to the manufacturer's page.
- The date on the bag, if there is one. A reformulation and a transcription error look identical without it.
The bag outranks the database
If the panel in your hand disagrees with the figure on this site, the panel is right and this site is out of date. That is not a formality: a value here is a snapshot of what a manufacturer published on the day it was captured, and nothing more.
What we do with it
We re-open the manufacturer's own source document — the one linked at the bottom of the page you are reporting — and compare it against both your report and our record. Then one of four things happens:
- We transcribed it wrong. The value is corrected, the page's capture date moves, a dated note goes on the page, and the change is logged below.
- The manufacturer changed the label. Same treatment, logged as a reformulation rather than an error, with both the old and the new value kept so the change is visible rather than erased.
- The manufacturer removed the data. The value becomes a published gap — a hatch that names them — not a stale number left standing because it used to be true.
- The source still says what we published. Nothing changes, and you get a reply with the link, because "we checked and it holds" is also an answer.
Either way you get a reply. Reports are handled by one person, so the honest expectation is days rather than minutes.
What counts as a correction
Anything that changes a number, a quoted statement, or a claim a reader could act on: a guaranteed analysis value, a calorie statement, an ingredient list, an AAFCO adequacy quotation, a recall record, a brand's corporate owner, or a derived figure that came out wrong because the arithmetic behind it was wrong.
Not logged: typos, rewritten sentences, new pages, and routine re-captures that confirm a value unchanged. Those move the capture date on the page and nothing more — see the three dates this site keeps apart.
The commitment
No number is ever silently edited. A silent edit is invisible to the reader who relied on the old value, which is exactly why it has to be surfaced. Every correction ships with three things: the value changed on the page, a dated note on that page saying what it used to say and why it changed, and a row in the log below carrying the date, the page, the field, the old value, the new value, the reason and the source.
The log is permanent. Entries are never removed or rewritten, including the embarrassing ones — a corrections page that only lists small corrections is a marketing page. This is the same standard the rest of the site is held to: 662 label values, each traceable to the document it came from and to any change made to it since.
Corrections log
| Date | Page | Field | Was | Now | Why | Source |
|---|---|---|---|---|---|---|
| All 8 Hill's Science Diet formulas | Protein, grams per 1,000 kcal | 64.8 g per 1,000 kcal (Adult Chicken & Barley, and equivalents on 7 other Hill's pages) | Not published — the column now renders a gap with an explanation | The figure mixed two bases. Hill's publishes a typical analysis on a dry-matter basis but no moisture value, while the calorie content on a US label is stated as fed. Dividing a dry-matter percentage by an as-fed calorie density overstated every one of these numbers by roughly a tenth. Deriving the as-fed percentage needs the moisture figure Hill's does not publish, so the honest output is a gap, not a corrected number. This is the exact error the site exists to point out, and it was ours. | — | |
| Puppy and all-life-stages hubs | Life-stage suitability | Eleven formulas reading 'all life stages (excl. large breed growth)' were classified as puppy foods, and nine formulas with no published AAFCO statement were listed as growth-suitable | The large-breed-growth exclusion is now read correctly, and life-stage membership requires a published AAFCO adequacy statement | A substring test matched the word 'growth' inside the phrase that excludes it, inverting the meaning of the qualifier. Separately, a life stage recorded for a formula whose manufacturer publishes no adequacy statement is an unsourced value, and this page's own note promises it reflects the published claim only. | — | |
| Ollie Beef Dish with Sweet Potatoes | AAFCO nutritional adequacy statement | “Formulated to meet AAFCO nutritional guidelines for all life stages (per Ollie's published nutrition materials; per-recipe statement not shown on public page).” | Not published — the parenthetical moved to a note, and the recipe now sits with Ollie's other four | The bracketed clause was ours, not Ollie's, and it sat inside a blockquote this site presents as quoted word for word. It also conceded the point it was attached to: a claim made in general brand materials but not on the product page is not a per-recipe adequacy statement, and everywhere else on this site a life stage requires one. Removing it makes all five Ollie fresh recipes consistent. | — | |
| All 15 brand profiles | Label transparency grade | A hand-typed grade stored per brand | Computed from publication coverage across each brand's formulas | Six of fourteen grades disagreed with the counts printed one line beneath them. Diamond Naturals and Taste of the Wild were graded 'medium' while publishing all four fields on every formula; We Feed Raw was graded 'medium' while publishing one. A grade that contradicts the evidence on its own page is worse than no grade, so it is now derived rather than asserted. | — | |
| Grain-free hub and 7 food pages | Grain-free flag | 46 formulas flagged grain-free, 7 of them with no published ingredient list | 39 — the flag now requires an ingredient list to check it against | Seven formulas asserted grain-free while their manufacturer publishes no ingredient list at all, so there was nothing to verify the claim against in either direction. We have not marked them as containing grain either; that would be the same guess inverted. The flag now behaves like the life-stage claim: it renders only where a source exists. This page is where readers arrive after the FDA's DCM reports, which makes it the worst page on the site to be confidently wrong on. | — |
Where else changes show up
The methodology explains how a value gets here in the first place, and which of the three dates on a page means what. The gaps list is the standing record of what manufacturers do not publish at all — that list moves whenever a brand starts or stops publishing, which is a change worth watching in both directions. Who compiles all of it, and how it stays independent, is on the about page.
Sources Methodology The database 5 corrections logged · policy published 2026-07-25 hello@bowlgrade.com