How we score
Scoring model v1, updated September 2026
A BowlScore is a number from 0 to 100 that describes the ingredient quality of a dog or cat food, based only on what is printed on the label. The photo is read by an AI vision model, but the model only transcribes. Every point is decided by a fixed, public rubric, so the same label always gets the same score.
The three parts of a score
| Part | Points | What it looks at |
|---|---|---|
| Ingredients | 50 | What the food is mostly made of, and whether the animal sources are named |
| Nutrition | 30 | Protein, fat and estimated carbohydrate on a dry matter basis, against AAFCO minimums |
| Additives | 20 | Dyes, synthetic preservatives, sweeteners and ingredients that are unsafe for the species |
Ingredients, 50 points
Ingredients are listed by weight, so the first five make up most of the food. Every food starts at 12 points and moves from there.
- First ingredient: a named fresh meat such as chicken or salmon adds 15. A named meal such as chicken meal adds 13. A named byproduct adds 8. An unnamed source such as meat and bone meal adds 4. No animal protein in first place adds 3 for dogs and nothing for cats.
- In wet foods, water or broth is skipped when we look for the first ingredient, because it is there for processing.
- Each named meat or named meal in the first five adds 5, up to three of them.
- Plant protein boosters in the first five, such as corn gluten meal or pea protein, cost 4 each for dogs and 6 each for cats. They raise the protein number on the label without adding meat.
- Fillers in the first five, such as corn, wheat, soy or cellulose, cost 3 each for dogs and 5 each for cats.
- Ingredient splitting costs 4. That is when three or more pea or legume ingredients appear in the first ten, which can push meat higher on the list than it deserves. For dogs, two legumes cost 2 and come with a note about the FDA investigation into diet and heart disease.
- Unnamed animal ingredients anywhere on the label, such as animal fat or animal digest, cost 3 each, up to three of them.
- Small bonuses: organ meat adds 3, a named omega oil such as salmon oil adds 3, and a named animal fat such as chicken fat adds 2.
Nutrition, 30 points
Nutrition is judged only for foods that carry a complete and balanced statement, and only after the water is removed (see the dry matter math below).
- Protein, up to 14 points. Meeting the AAFCO minimum earns 6, and the rest scales up to an ideal of 30 percent for dogs and 45 percent for cats. The minimums are 18 percent for adult dogs, 22.5 for puppies, 26 for adult cats and 30 for kittens.
- Fat, up to 8 points. Full marks inside the healthy band, which is 12 to 22 percent for dogs and 15 to 28 percent for cats. Fat below the AAFCO minimum earns nothing and is flagged.
- Estimated carbohydrate, up to 8 points. Labels do not print carbs, so we estimate them as whatever is left after protein, fat, fiber and ash. For dogs, 30 percent or less earns full marks and the points step down at 45 and 55. For cats the steps are 15, 25 and 35, because cats have very little need for carbs.
If we cannot read a guaranteed analysis, the food is scored on ingredients and additives only, and those 70 points are rescaled to 100. The result screen says so. Treats, toppers and foods labeled for supplemental feeding are scored the same way.
Additives, 20 points
Every food starts with all 20 points and loses them for things that do not need to be there.
- Artificial colors such as Red 40, Yellow 5, Blue 2 or titanium dioxide: 4 each, up to 8.
- Synthetic preservatives BHA, BHT, ethoxyquin and TBHQ: 5 each, up to 10.
- Propylene glycol: 5. Added sugar or syrup: 3. Carrageenan: 2. Menadione: 2.
- Garlic: 4. Onion: 8. Xylitol: 10.
Foods preserved with mixed tocopherols (vitamin E) or rosemary extract get a positive note.
Hard caps
Some findings limit the final score no matter how good the rest of the recipe is.
| Finding | Dogs | Cats |
|---|---|---|
| Xylitol | Capped at 5 | Capped at 20 |
| Onion in any form | Capped at 30 | Capped at 25 |
| Garlic | Penalty only | Capped at 35 |
| Propylene glycol | Penalty only | Capped at 15 |
| Protein below the AAFCO minimum | Capped at 45 | Capped at 45 |
Rules that apply only to cats
- Taurine. Cats cannot make enough taurine on their own and need it for heart and eye health. A complete cat food with no taurine on the label gets a critical flag and loses 8 points.
- Higher protein. Cats are obligate carnivores, so the protein minimum is 26 percent on a dry matter basis (30 for kittens) and full marks need 45 percent. Plant proteins, fillers and carbs all cost more than they do for dogs.
- Propylene glycol. The FDA prohibits it in cat food under 21 CFR 589.1001 because it damages feline red blood cells. It caps a cat food at 15.
- Garlic. Cats are especially sensitive to the onion family, so garlic caps a cat food at 35.
Dry matter math
The guaranteed analysis on a label is printed as fed, water included. A can of wet food is mostly water, so its protein number looks tiny next to kibble. AAFCO minimums are set on a dry matter basis, so we remove the water before judging anything.
Dry matter percent = as fed percent, divided by (100 minus moisture percent), times 100.
A worked example with a wet cat food that prints 10 percent protein, 5 percent fat and 78 percent moisture:
- The solids are 100 minus 78, which is 22 percent of the can.
- Protein is 10 divided by 22, times 100, which is 45.5 percent on a dry matter basis.
- Fat is 5 divided by 22, times 100, which is 22.7 percent.
A kibble that prints 26 percent protein and 10 percent moisture works out to 26 divided by 90, or 28.9 percent. The wet food that looked weak on the label is the higher protein food. When a label does not print moisture, we assume 10 percent for dry food, 78 for wet, 70 for raw, 30 for soft moist food and 5 for freeze dried.
Grade bands
| Score | Grade |
|---|---|
| 75 to 100 | Excellent |
| 50 to 74 | Good |
| 25 to 49 | Poor |
| 0 to 24 | Bad |
What a score does not measure
- We do not test food in a lab. We cannot see contamination, heavy metals or whether the bag matches its label.
- We do not audit sourcing, manufacturing or digestibility.
- We do not know your pet. Allergies, kidney disease, weight and age all change what the right food is.
- Label photos are read by software, and software makes mistakes. Glare, curved cans and tiny print can cause a misread. Always check the ingredient list the app shows against the bag.
BowlScore is an educational tool, not veterinary advice. Scores reflect ingredient lists, not your pet's individual health needs. Talk to your veterinarian before changing your pet's diet, especially for puppies, kittens, seniors, or pets with medical conditions.
Sources
- AAFCO: Dog and Cat Food Nutrient Profiles for the dry matter minimums, plus the official ingredient definitions and labeling rules.
- FDA, 21 CFR 589.1001: propylene glycol is prohibited in cat food.
- FDA Center for Veterinary Medicine: the investigation into legume heavy diets and canine dilated cardiomyopathy.
- Merck Veterinary Manual: taurine requirements in cats, and onion, garlic and xylitol toxicity.
- WSAVA Global Nutrition Guidelines: how veterinarians assess a diet and a manufacturer.
Independence
Brands cannot pay for a score. We do not run ads, we do not accept sponsored placements, and scores are calculated the same way for every food. BowlScore earns money from subscriptions, and from affiliate commissions when you buy a suggested food through our link. Commissions never change a score or the order of the suggestions.
Versions and corrections
This page describes Scoring model v1. Whenever a number in the rubric changes, the version number changes and the change is listed here.
- v1, September 2026: first public version.
Think a score is wrong? Email support@bowlscore.app with the product name and a photo of the label. Every report gets read.