Every product gets a 0–100 composite score combining three ingredient measurements (protein quality, top-5 deck cleanliness, controversy severity), then layered with regulatory and brand-trust signals (AAFCO compliance, FDA recalls, WSAVA-aligned manufacturing). When data is incomplete, we shrink scores toward the category prior so premium-no-GA products can't dominate without evidence.
quality = 0.50 × protein_subscore + 0.30 × deck_subscore + 0.20 × controversy_subscore
Each ingredient slot is weighted by w(i) = 0.85^i — roughly [1.00, 0.85, 0.72, 0.61, 0.52, 0.44, 0.38, 0.32] for the first eight slots. Smooth exponential decay; no cliff at position 5.
A 60/40 blend of protein quality and protein density. Tiers: named whole (chicken, salmon) = 10, named meal (chicken meal) = 8, named by-product = 4, unnamed meal = 2, unnamed by-product = 1. Quality normalizes against the observed protein slots — saturates trivially. Density normalizes against an absolute anchor of four named-whole proteins in the top four slots — much harder to saturate, rewards genuine high-meat formulations.
Cleanliness of the top 5 ingredient slots. Filler grains (corn, corn gluten meal, wheat, soy, brewers rice) and protein stretchers (pea protein, pea fiber, potato protein, tapioca starch) are penalized; whole-food carbs (sweet potato, brown rice, oatmeal) are not.
Severity- and position-weighted. High-severity flags (BHA, BHT, ethoxyquin, propylene glycol, carrageenan, artificial colors, menadione, animal digest) cost 25 points; medium 10; low 3. Position decides loudness: pos 1 multiplies 3.0×, pos 2-5 multiplies 2.0×, pos 6-10 stays 1.0×, pos 11-20 decays to 0.7×, pos 21+ to 0.4×.
shrunk = c × raw + (1-c) × cohort_prior where c is 1.0 for full data, 0.7 for ingredients-only, 0.6 for nutrition-only, 0.3 for minimal. The cohort prior is the median raw score of full-data products in the same (pet_type, category) bucket; cohorts under 30 products fall back to the per-pet-type prior.Single-ingredient chews and many treats have no animal protein in the deck — the standard composite would collapse. For non-food categories with no detected protein, we reweight to 0.60 × deck + 0.40 × controversy and apply a junk-density penalty for refined sugars, refined fats, and refined-flour bases in the top 5 (sucrose, dextrose, palm oil, hydrogenated oil, wheat flour, etc.).
Brand-direct scrapers — Hill's Pet Nutrition (Science Diet + Prescription Diet), Royal Canin US, Open Farm, Wellness Pet Food, Tiki Cat, Weruva, Stella & Chewy's, Spot & Tango, Sundays For Dogs, The Farmer's Dog, and Ollie are each pulled from the manufacturer's own product pages.
Aggregators & community data — PetSmart (broad US catalog, ~110 brands, prices and GTINs); Open Pet Food Facts (community CC-BY-SA database, filtered to US-relevant brands); Dog Food Advisor (public guaranteed-analysis numbers only — we do not use DFA's editorial ratings).
Regulatory & research — FDA Pet Food Recalls (official RSS, refreshed daily); AAFCO Official Publication (nutrient profiles and ingredient definitions); WSAVA Global Nutrition Toolkit (criteria for vet-recommended manufacturers); PubMed (peer-reviewed citations on controversial-ingredient flags).
We do not accept payment for placement or rankings. The algorithm has no knob for sponsorship. Revenue comes from Amazon Associates affiliate links on outbound buy buttons; the tag has zero effect on the score.