How we score
Here is the recipe behind every Panel Score, in full. No black boxes.
Grades and verdicts
Every score is a number from 0 to 100 with a letter grade beside it. The bar takes the grade's color; the numbers never do.
| Grade | Score | Verdict | |
|---|---|---|---|
| A | 90-100 | Pretty good | |
| B | 75-89 | Good, check the flags | |
| C | 60-74 | Proceed with caution | |
| D | 50-59 | Better options exist | |
| F | 0-49 | We'd skip it |
What goes into a score
Flags come from our ingredient library, 223 entries today. Each entry says what the ingredient is and why we flag it, and we are adding the published sources behind each one. Vague catch-alls like “animal digest” get flagged for opacity. Marketing words like “premium” and “natural” earn nothing.
| Line item | Points |
|---|---|
| Every product starts at | 96 |
| Each caution flagAn ingredient worth knowing about at typical doses. | -4 |
| Each avoid flagAn ingredient we would rather not buy. | -16 |
| Brand transparency gradeA, B, C or D. Brands we haven't graded yet take the C deduction. | -0 / -2 / -5 / -8 |
| A documented recallAttached from official recall notices, never inferred. | -4 |
When we don't give a number
A line we have no entry for costs nothing in the formula, so a panel we can only partly read would score as if the rest were clean. Instead, a product shows Not enough data when any of these is true:
- We have not checked its panel against the package.
- We recognise fewer than 90%of its ingredient lines. Claims such as “No corn” are not ingredient lines and don't count either way.
- It is a dog or cat food with fewer than 8 ingredient lines, which almost always means part of the panel is missing.
Right now that is 38 of 915products. They stay listed with their panels and flags, after every scored product. They are never a cleaner pick, and the “No flags” filters leave them out. Every product page also says how many of its lines are not in our library yet. This rule took effect on September 22, 2026.
How we choose cleaner picks
A product page offers up to three cleaner picks. Each one scores higher, comes from the same category and is for every animal the product is for, and no two come from the same brand: a brand offers only its best-scoring product. In Supplies, Cleaning & Potty, Flea & Tick, Grooming, Health & Pharmacy and Toys it is also the same kind of product: a water fountain is offered water fountains, a shampoo is offered shampoos, a flea collar is offered flea collars, a dental water additive is offered water additives, never a toothpaste, a ball is offered balls, never a chew, and a foam bed is offered foam beds, never a donut. In Dog Food and Cat Food it is also the same type of food: a dry food is offered dry foods, a wet food wet foods, and the same goes for fresh, frozen raw, freeze-dried, air-dried and dehydrated food. In Flea & Tick it is also the same class of pesticide: a product registered with EPA is offered registered products, and a minimum-risk product, one exempt from federal registration because its ingredients are on EPA's minimum-risk lists, is offered minimum-risk products. A product showing Not enough data, or an imported record we haven't reviewed yet, is never a pick.
The process, step by step
- 01
We turn it over
If the product prints an ingredient panel, we read it in full, in order, exactly as printed. If it doesn't, as with most cookware, we build the panel the manufacturer didn't provide. - 02
We check the science
Each ingredient flag links to a page on that ingredient: what it is, why it's used, and why we flag it, not just a scary name. - 03
We pull the recall record
FDA publishes every pet food and treat recall it announces. We import that list, keep the company, product, reason and the link to the official notice, and leave out anything FDA doesn't publish there, like a severity class. The list goes back to October 19, 2017, so for every brand our recall record starts there; older recalls are not included.Placeholder Attaching a recall to a specific scored product still happens by hand, because it changes that product's score. - 04
We compute the score
Flags, brand transparency, and the recall record combine into one 0-100 number and a letter grade. No brand can buy an override. - 05
We show our work
Every ingredient flag links to its page, so you can check our reasoning.Placeholder Full source citations will link from each evidence page once the citations feed is connected. Until then, ask us for the reading list.
What about testing for contaminants?
PFAS, heavy metals, phthalates, and pathogens never appear on an ingredient panel, so the label score can't see them. They only surface through lab testing. Where real, published third-party results tie to a specific product, we show them on that product's page, separate from its score. Here's the landscape as it stands.
Heavy metals track the protein source
Peer-reviewed testing of dry dog foods (Frontiers in Veterinary Science, 2018) found that arsenic, cadmium, and mercury run highest in fish-based recipes, while lead runs highest in red-meat recipes. Most foods tested safe for chronic feeding, with occasional lead outliers. We surface this as context, not a per-product score, because it depends on ingredients we can read but levels we can't measure from a label.
Source: Kim, Loftus, et al., Frontiers in Veterinary Science →
Kibble carries more than fresh
A 2026 Clean Label Project screening of 79 top-selling dog foods reported that dry, air-dried, and freeze-dried products averaged multiples more lead, arsenic, mercury, and cadmium than fresh/frozen products. Full brand-by-brand numbers are not publicly published, so we don't attach specific values to specific products, but the dry-vs-fresh pattern is worth knowing.
Source: Clean Label Project →
FDA surveillance is reassuring but coarse
The FDA's Center for Veterinary Medicine routinely screens animal food for heavy metals, mycotoxins, pesticides, and dioxin. Its 2015-2017 report found none of 318 samples exceeded tolerable limits for cadmium or mercury. This is aggregate surveillance, not brand-level results.
No brand can pay for a better score
Brands cannot sponsor us, preview scores, or request changes outside our public correction process. Our funding comes from optional reader memberships and clearly-labeled affiliate links on "cleaner picks", which never affect the number.
Spot an error? Every product page has a "dispute this score" link, and corrections are logged publicly.