What the score of a dog food measures, how much each part weighs, which caps apply and where each rule comes from. If a brand wants to dispute a score, this is the reference.
This is a translation; in case of discrepancy, the Spanish version prevails.
Cuenco is an informational label-reading tool. It does not replace your vet or make diagnoses. The score describes the transparency and composition that the packaging declares against the needs of the profile you enter; it is not a clinical assessment of your dog.
The principle
Same dog food, same dog, same score
No language model is involved in the calculation. Every point that is deducted is recorded with the identifier of its rule and a citable source, and that breakdown is stored with each analysis along with the version of the rules, so that any score can be explained and reviewed afterwards.
Everything debatable —the weights, the thresholds, the points, the bands— lives in a versioned rules file, not in the code. Changing a weight does not change a line of logic.
The blocks
What the score measures and how much each part counts
The 0–100 score is the weighted average of three blocks —origin transparency, protein quality and additives— minus what a fourth one takes off, the fit for your dog. The weights are parts of an average, not percentages: they add up to 75 and the score is normalised by them. When additives is not scored, which is the usual case, origin transparency is ≈ 29% of the score and protein quality ≈ 71%.
Origin transparency
20 parts≈ 27% of the score
Penalises declaring by generic categories (“meat and animal derivatives”, “cereals”) rather than naming the ingredient with its percentage (“dehydrated chicken 30%”). Regulation (EC) No 767/2009 allows declaring by categories and makes the percentage optional; this block rewards those who do not take shelter in that opacity.
Protein quality
50 parts≈ 67% of the score
How much meat there is compared with cereals, pulses and other plant ingredients, estimated on a dry matter basis from the order of the ingredient list; whether the starch equals or exceeds the meat; how many carbohydrates it has on a dry matter basis; the ratio between protein and carbohydrates; and whether pulses dominate the first ingredients, displacing animal protein. Details in “How the meat is estimated”.
Additives
5 parts≈ 7% of the score
The risk level of the highest-risk additive it declares, according to its authorisation in the EU.
Fit for your dog
Takes off up to 25doesn’t add, only subtracts
Compares the nutrients on a dry matter basis with what their profile needs: species, age, activity, neutering, declared health conditions and body condition (scale of 1–9; from 7 the targets of an overweight dog apply). It doesn’t add, it only subtracts: 0.25 points come off the average for every point the fit loses from 100, up to 25 at most, before rounding. A well-matched dog gets the same score as the product; it is the block that makes the same dog food get different scores for two different dogs.
A block can be left without a score when the data it needs is missing, for example origin without an ingredients list. It is not filled in with the maximum, because that would turn “we don’t know” into “it’s fine”. As a general rule, the final score is then not given either. The exception is additives, and it affects almost every entry today: if the entry has no list, that block is not scored and its weight leaves the split: the others are averaged among themselves. A missing list does not prevent judging the product, but it does not prove it is clean either. Scores saved with earlier versions of the rules are not recalculated: the history shows them as they were calculated.
How the meat is estimated
An estimate, not the recipe
The label doesn’t say how much each ingredient weighs or how much water the meat contains, so protein quality relies on an estimate, not on the real formulation, which the manufacturer doesn’t publish:
Percentages by bounds. The list goes by descending weight (Regulation 767/2009, Art. 17(1)(e)). What is declared is used as it is. An ingredient without a percentage weighs at least as much as the largest declared percentage behind it, and at most as much as the smallest declared one ahead of it; the one in position i doesn’t exceed 100/i%, and the first weighs at least 100/n%. A common factor scales the list to 100%. It is also estimated when no percentage is declared at all, from the order alone.
Dry matter. Fresh or raw meat, and meat that doesn’t say which it is, is counted without 70% of its weight in water. Source: USDA FoodData Central, raw meat: chicken 75.5 g of water per 100 g, minced turkey 72.4, farmed salmon 64.9 and minced lamb 59.5.
What counts. Meat fraction = dry meat ÷ (dry meat + cereal + pulse + tuber or other starch + plant concentrate).
With that estimate, protein quality applies three rules. The meat fraction scores by the usual bands (below 25%, 50% and 70%: 35, 20 and 8 points). composition.starch_over_meat takes off 9 points if the starch (cereal + pulse + tuber) equals or exceeds the dry meat. And composition.carbs_dm_35 to carbs_dm_50 take off 3, 5, 7 and 9 points from 35, 40, 45 and 50% carbohydrates on a dry matter basis (only the highest tier counts).
The last two are Cuenco’s own criterion, not a standard: no source sets a maximum for starch or carbohydrates, which is why each takes off fewer than 10 points and is published here for what it is.
The caps
When a score cannot go above a ceiling
A cap does not deduct points: it sets the maximum score when a condition that can be checked on the label is met. If several match, the most restrictive one applies.
20
maximum
Declares an additive that is not authorised for the species.
cap.additive.banned_for_species
49
maximum
Declares an additive with a high risk level.
cap.additive.high_risk
74
maximum
More than 50% of the product, with a declared percentage, is under the generic categories of Article 17(2)(c). It cannot be certified that most of the content is of known quality: it is a ceiling, not an accusation.
cap.origin.unidentified_majority
74
maximum
The first ingredient on the list is a generic category (meat, cereal or pulse with no species) with no percentage. The list goes by descending weight, so what comes first and isn’t named is what weighs most.
cap.origin.generic_first_ingredient
74
maximum
The first ingredient is a category that doesn’t say which animal it is (“meat and animal derivatives”, “dehydrated animal proteins”…), with or without a percentage: declaring the percentage doesn’t reveal the origin. Categories that name a group (“poultry”, “fish”, “game”) don’t count.
cap.origin.opaque_first_ingredient
The bands
From score to a word
Excellent
75-100
Fair
50-74
Poor
25-49
Inadequate
0-24
What the bag doesn't say
The calculations Cuenco makes
Carbohydrates, by difference
They are not a mandatory constituent, so they do not appear on the packaging. If the moisture is not declared (it is only mandatory above 14%), it is estimated by format —8% for dry, 80% for wet, 25% for semi-moist— and the result is marked as estimated.
Products are compared after removing the water, because a dry food and a can are not comparable as fed.
Nutrient on a dry matter basis = nutrient ÷ (100 − moisture) × 100
Metabolisable energy
Two estimates: NRC 2006a, the one covered by standard EN 16967, and modified Atwater as a fallback. If the manufacturer declares the energy, the declared figure takes precedence, and the calculated ones remain as a check.
Daily portion in grams and cost per day
Based on the energy your dog needs according to their profile and the energy the dog food provides. The cost per day and per month comes from the price you enter yourself.
Dietetic feeds
No score: follow your vet’s guidance
A dietetic feed (Regulation (EU) 2020/354) is formulated for a specific nutritional purpose set by the vet. Scoring it like a maintenance food would give a number that contradicts that guidance, so Cuenco gives it neither a score nor a band: it shows the declared additives and one notice, always the same: “This is a dietetic feed: follow your vet’s guidance”. A product is treated as dietetic only if its label or the manufacturer’s page says so (“dietetic feed” and its purpose); “hypoallergenic” on its own in a commercial range doesn’t count.
Treats and snacks
No score, but with information
A treat is not a complete meal, and scoring it against the targets of a complete diet would give a meaningless number. That is why it has no score or band: Cuenco shows its additives, the energy if the manufacturer publishes it and a warning with a source: treats shouldn’t go over 10% of the dog’s daily calories (WSAVA, 2024).
If the manufacturer declares the calories per piece (or the grams per piece, together with the kcal/kg), Cuenco calculates how many pieces fit in a day at most, always rounding down. It is never estimated or measured: without that declared figure, the grams are shown.
Pieces per day = daily calories × 10% ÷ kcal per piece
In addition, a treat can carry three warnings, with no points and without affecting any score, each with its source:
Energy not declared. If the manufacturer does not publish the calories, the app says so and suggests asking them for it. WSAVA (2024): “For commercial treats, contact the manufacturer for calorie information if not stated on the label.”
Hard chew. It is detected from the ingredients (rawhide, cattle or buffalo hide, horn, hoof and bone), never from the product name. WSAVA (2024): “Excessively hard chews and treats, for example, antlers and hooves, and those with sharp edges should be avoided.” and “Ensure that any treat offered is an appropriate size and shape to reduce the risk of choking.” Merck Veterinary Manual, Esophageal Foreign Bodies in Small Animals: “…rawhide, and dental chew treats may also become lodged in the esophagus.”
Added sugar, only if the pet has diabetes. Calancea, Daina and Macri (2024), The science of snacks: a review of dog treats, Frontiers in Animal Science: “biscuits containing high levels of sucrose should be avoided for dogs with diabetes”. The source speaks of high levels and the label does not give the amount, so the warning does not say “avoid”: it asks you to discuss it with your vet.
The additives
Facts, not adjectives
Each additive is described with verifiable facts and their source —for example, “additive with an open safety evaluation” or “additive with restrictions on use in the EU”— never with an alarmist adjective. The risk level used by the score comes from the EU authorisation (Regulation 1831/2003), not from an opinion.
Water content of meat, to convert it to dry matter: chicken (171052) 75.5 g per 100 g, minced turkey (171505) 72.4, farmed salmon (175167) 64.9 and minced lamb (174370) 59.5.
Frontiers in Animal Science. Added sugar warning for treats for dogs with diabetes.
Right of reply
Are you a manufacturer?
If you want to provide data on a product (analysis, ingredients with percentages, declared energy), point out an error in an entry or dispute how a rule has been applied, write to replica@cuencoapp.com.
Every correction is checked against the manufacturer’s website or the label; data without a solid source is not incorporated.
When a data point changes, the score is recalculated automatically. It is never adjusted by hand.
The weights, thresholds and caps are the ones published here, and are not changed for a specific product.