Scoring Methodology
The in-depth version of How We Score: the units, conversions and equations behind every Puglib score, so the method can be checked against the science it rests on.
Methodology version 2 · Last updated:
In short: each food is scored from its label. Nutrients are converted to a dry matter and a per-calorie basis so foods of different moisture and energy compare fairly. Protein quality is measured with a DIAAS-type amino acid score against the National Research Council (2006) canine requirements, combined with protein quantity into usable protein per 1000 kcal, and compared with the requirement for the dog's life stage. Fat is gated on the AAFCO minimums and credited for omega-3s. The protein and fat axes form the Puglib score (0 to 10). Per dog, foods are filtered on life stage, size, protein avoidances and large breed growth, then ordered by score with a small, capped adjustment for activity.
What this page leaves out, on purpose: the relative weights of the score's parts, the calibration constants of its curves, and our ingredient and processing tables. Publishing them would let a formula be tuned to our score instead of to the dog. Everything else is here.
1. Data: what we read from a label
Every input comes from the brand's own public US product page or packaging:
- Guaranteed analysis: crude protein (minimum), crude fat (minimum), crude fiber (maximum), moisture (maximum), and any further guarantees the brand prints: calcium, phosphorus, omega-6, omega-3, EPA and DHA, glucosamine.
- Ingredient list, in label order (by weight before processing).
- Calorie content (ME, kcal/kg and kcal per cup).
- Nutritional adequacy statement (which AAFCO profile the food claims: growth, adult maintenance, or all life stages, and any large breed exclusion).
- Feeding chart, for daily amounts.
Ingredients are matched to USDA FoodData Central records for their amino acid composition. Every match is reviewed by hand, and the record used for each ingredient is pinned so a score is reproducible.
2. As fed and dry matter
A label states nutrients as fed, including the water in the food. Requirements are stated on a dry matter (DM) basis, so every comparison converts first:
Example: 26% protein at 10% moisture is 26 / 0.90 = 28.9% protein on a dry matter basis. When a label gives no moisture, a typical dry food moisture is assumed. A few brands publish typical analyses already on a dry matter basis; those are used as published, without a second conversion.
3. Metabolizable energy (ME)
ME is the energy a dog can actually use, in kcal per kg of food. We take it in this order of preference:
- The ME the label states, in kcal/kg.
- The label's kcal per cup, divided by the grams per cup implied by the brand's own feeding chart.
- Only when neither exists, an estimate with the modified Atwater factors used for pet food:
CP is crude protein and NFE the nitrogen-free extract (mostly starch and sugars). When ash is not on the label, a typical value for dry food is used. Because a guaranteed analysis states protein and fat as minimums, this estimate runs systematically low; it is corrected against foods whose ME is declared, and every score records which of the three sources its ME came from. A declared value always wins.
On a dry matter basis:
4. Nutrients per 1000 kcal and AAFCO energy correction
A dog eats to meet its energy need, so how much of a nutrient it gets depends on the food's energy density, not on the percentage alone. Requirements are therefore compared per 1000 kcal:
The AAFCO nutrient profiles are stated for a food of 4000 kcal ME per kg of dry matter. For an energy-dense food the minimums rise in proportion, as the profiles' own footnote requires:
5. Protein quality: a DIAAS-type amino acid score
DIAAS, the Digestible Indispensable Amino Acid Score defined by the FAO (2013), rates a protein by its most limiting indispensable amino acid. We apply the same structure with canine reference patterns:
- Amino acids scored (i): the ten indispensable for dogs: arginine, histidine, isoleucine, leucine, lysine, methionine + cysteine (sulfur amino acids, scored together), phenylalanine + tyrosine (aromatic amino acids, scored together), threonine, tryptophan and valine. Arginine is included because dogs cannot make enough of it, unlike humans.
- Reference pattern (Req_i): the National Research Council (2006) canine minimum requirements, as tabulated by Templeman & Shoveller (2022), with separate patterns for adult maintenance and for growth.
- Composition (AA_i, P): the ingredient's USDA FoodData Central record.
- Processing: an ingredient named in a processed form (a meal, a dried or rendered ingredient) is scored in that form, using amino acid losses reported in the processing literature (for example Wang & Parsons, 1998), rather than as the fresh ingredient.
6. From ingredients to a food's protein quality
A food's protein comes mostly from its first ingredients. Its quality score is a weighted average over the leading part of the ingredient list:
- The weights decline with position on the list, because the list is ordered by weight.
- Limited ingredient diets, built on one or two named proteins, concentrate the weight on those.
- An ingredient with no protein (an oil, for example) contributes zero instead of being skipped, so a fat can only pull the score down, never raise it by leaving the average.
7. Usable protein and the protein axis
Quality and quantity combine into usable protein: the grams of protein that meet a dog's amino acid needs.
That is compared with the protein requirement for the dog's life stage, from the same NRC (2006) tables:
Measuring an adequacy ratio rather than a raw score matters: the growth amino acid pattern is less demanding than the adult one while the growth protein requirement is higher, and dividing by the requirement cancels that out, so puppy foods aren't flattered by their yardstick. The protein axis maps the ratio onto 0 to 10 with a saturating curve:
h is the ratio that scores 5 and k sets how sharply the curve separates foods around it. Both are calibrated on the foods actually on the market: no complete diet sits near the bare requirement, so a curve centered on the requirement would rate every food the same. Seniors use the adult requirement, because AAFCO has no separate senior profile.
8. The fat axis
The fat axis has a base and a bonus.
Base: two thresholds from the food's own AAFCO profile, on a dry matter, energy-corrected basis (section 4):
- Crude fat at or above the profile minimum. A food that misses it scores zero on the whole axis: the fatty acids are carried in the fat, so a shortfall can't be bought back with fish oil.
- Linoleic acid (omega-6) at or above the profile minimum. If the label doesn't state it, the food is not penalized, because silence on a minimum is not evidence of a shortfall (section 9).
Bonus: credit for disclosed omega-3s, long-chain (EPA + DHA) and alpha-linolenic acid. Credit starts only above a level where the nutrient does something, and saturates smoothly:
x is the stated amount on a dry matter basis. The curve is exactly zero at the floor and flat at the top, so neither edge is a cliff, and it works in log space because concentrations vary by multiples. A label that prints only the legal trace earns nothing. Long-chain omega-3s count for more in puppies (the AAFCO growth profile recommends a minimum) and in seniors, where the evidence for fish oils is strongest.
9. AAFCO adequacy: what a label can prove
A guaranteed analysis states minimums for most nutrients and maximums for a few. A minimum is a lower bound on what is in the food, never the actual amount, so each comparison can only be decided one way:
| Label states | Against AAFCO | What it proves |
|---|---|---|
| a minimum at or above the AAFCO minimum | minimum | Proven compliant |
| a minimum below the AAFCO minimum | minimum | Not proven either way (the real amount may be higher) |
| a value above the AAFCO maximum | maximum | Proven to exceed it |
| a value at or below the AAFCO maximum | maximum | Not proven either way |
So a food is never called deficient on a minimum it doesn't print; it just doesn't earn the claim. The brand's own adequacy statement is read as an independent cross check: when a label excludes the growth of large breed dogs, its stated calcium should sit near the AAFCO large-breed growth cap (1.8% DM), and where it doesn't, the statement is trusted over the bare number.
10. Calcium and phosphorus
The ratio is judged for the dog's life stage and shown on each card. It isn't part of the score, since almost every complete food lands inside the band, but you can filter on it. For a puppy that will grow into a large or extra large dog, a food whose label excludes large breed growth is removed outright (section 12), because excess calcium during growth harms developing joints.
11. The Puglib score and bones
The protein axis and the fat axis are combined into one score from 0 to 10, with protein leading. A food missing either axis (no crude protein or no crude fat on its label) is left unscored rather than scored on half the evidence. The score is calculated per life stage and is the same for every dog of that stage.
| Puglib score | Bones | Rating |
|---|---|---|
| 8.0 and up | 4 | Excellent |
| 6.5 to 7.9 | 3 | Great |
| 5.0 to 6.4 | 2 | Good |
| below 5.0 | 1 | Fair |
12. Matching a food to a dog
These rules remove a food from a dog's list. Each is pass or fail; none changes a score.
- Life stage: the food's adequacy statement must cover the dog's stage (puppy, adult or senior; seniors are served by adult maintenance and all life stages foods).
- Size: a food made for particular breed sizes is shown only to dogs of those sizes; a food with no size claim suits every size.
- Large breed growth: a puppy expected to grow large never sees a food whose label excludes the growth of large size dogs.
- Protein avoidance: a protein the owner wants to avoid removes every food that mentions it anywhere on the label, down to an oil, a broth or a flavor. A natural flavor with no named source can't be ruled in or out, so it is flagged on the card rather than hidden.
13. Feeding amount and how long a bag lasts
The daily amount on each card is the brand's own published figure, never our calculation. We read the brand's feeding chart in the column for the dog (activity level, adult maintenance, or a puppy's expected adult size) and interpolate linearly on body weight between the chart's listed weights:
A dog outside the chart's range gets no amount rather than an extrapolated one. From the amount:
Cups are shown only when the brand publishes cups, because a cup's weight depends on the kibble.
14. Activity: energy need and the activity match
A dog's daily energy need follows the standard resting energy equation, scaled for activity:
f rises from inactive to working dogs and is a little lower for seniors. MER is used for the protein check below and to judge a food's energy profile, not to prescribe an amount; the amount on the card stays the brand's.
Three properties of each food describe its energy profile:
Less active dogs are matched toward lighter foods with a lower fat share; very active dogs toward energy-dense foods with a higher fat share. Each card's Energy Match and Fat Match (0 to 10) measure how close the food is to the profile the dog's activity points to, falling off smoothly with distance.
Protein density is never matched downward. A dog's protein requirement scales with its metabolic body size, not its calories, so every food is checked to supply enough protein at the calories the dog will eat:
The match orders foods; it never changes a score or bones and never removes a food. The ranking adds a small adjustment to the score, zero for a dog of everyday activity, growing toward either end of the activity scale, and capped, so it reorders foods of similar quality without overturning the score. Puppies get a reduced adjustment, because growth, not activity, sets their needs.
15. Limits and safeguards
- A label is a guarantee, not an assay. Minimums understate, and a given bag can differ from the printed values within regulatory tolerance. Scores reflect the label as printed. Where a value has to be estimated (energy, moisture), the score records that it was, and the estimate is replaced once the brand declares it.
- Ingredient amounts aren't on labels. The weights over the ingredient list are an informed model of typical formulations, not the recipe.
- Digestibility data are limited. Ingredient-specific canine digestibility values are scarce, so the same assumptions are applied to every food, and no food gains from them over another.
- Every release is tested. Before a change goes live, thousands of simulated dogs across life stages, sizes, breeds, weights, activity levels and protein avoidances are run through the matching, and the release is blocked if any food a dog should not see is shown.
- No commercial input. Brands can't pay to be listed, scored or ranked, and store commissions never enter the score.
References
- Templeman, J. R., & Shoveller, A. K. (2022). Digestible indispensable amino acid scores of animal and plant ingredients potentially used in dog diet formulation: how this protein quality metric is affected by ingredient characteristics and reference amino acid profile. Journal of Animal Science, 100(11), skac279.
- Bailey, H. M., & Stein, H. H. (2019). Can the digestible indispensable amino acid score methodology decrease protein malnutrition? Animal Frontiers, 9(4).
- AAFCO. Methods for Substantiating Nutritional Adequacy of Dog and Cat Foods, including the AAFCO Dog and Cat Food Nutrient Profiles. Model Bills and Regulations Agenda, Midyear 2015, Attachment A.
- Wang, X., & Parsons, C. M. (1998). Effect of raw material source, processing systems, and processing temperatures on amino acid digestibility of meat and bone meals. Poultry Science, 77, 834–841.
- Bauer, J. E. (2011). Therapeutic use of fish oils in companion animals. Journal of the American Veterinary Medical Association, 239(11), 1441.
- U.S. Department of Agriculture, Agricultural Research Service. USDA FoodData Central.
Back to How We Score · Frequently asked questions · Compare foods for your dog