Why a Scoring System?
When you open MealMeow's recommendations for your cat, you see a ranked list of foods with scores and badges. That ranking isn't random, and it isn't based on brand partnerships or advertising. Every number comes from a deterministic, veterinary-informed algorithm that evaluates each food across three independent dimensions — nutrition quality, cost efficiency, and suitability for your specific cat.
This article explains exactly how that system works. Understanding the scoring helps you interpret results, know when to trust a high score, and understand why a food you expected to rank well might not — or vice versa.
MealMeow's scoring code is written in TypeScript and runs entirely in the application. There are no paid placements or sponsored rankings. A food with a score of 82 genuinely scored 82 by the math.
The Three-Pillar Architecture
Every food receives three sub-scores (each from 0–100), which are then blended into an overall score using fixed weights:
Overall Score = (Nutrition × 0.35) + (Value × 0.30) + (Suitability × 0.35)
| Pillar | Weight | What It Measures |
|---|---|---|
| Nutrition | 35% | How well the food's nutrient profile aligns with feline biology |
| Value | 30% | Cost efficiency relative to other foods in the database |
| Suitability | 35% | How well the food matches your specific cat's needs |
Nutrition and suitability are weighted equally at 35% each because a nutritionally excellent food that is wrong for your cat (wrong life stage, incompatible with a health condition) should not rank at the top of your list.
The overall score is always shown rounded to a whole number. Sub-scores are visible in the detailed breakdown if you want to understand exactly why a food ranked where it did.
Nutrition Score (0–100)
The nutrition score evaluates the food's intrinsic nutritional quality independent of your cat's profile. It is built from four components that add up to a maximum of 100 points.
Component 1: Dry Matter Protein (up to 40 points)
Protein is the most important macronutrient for an obligate carnivore. The score rewards higher protein on a dry matter basis (DMB) — which removes the effect of moisture so wet and dry foods can be fairly compared.
Dry Matter Protein % = (protein_pct / (100 - moisture_pct)) × 100
Protein Points = min(dry_matter_protein / 50, 1) × 40
A food achieves the full 40 points when its dry matter protein reaches 50% or higher. Foods with 25% DMB protein score 20 points; foods at 40% DMB protein score 32 points. There is no penalty below a minimum — the scale simply rewards higher protein linearly up to the ceiling.
Why 50% as the ceiling? A cat's natural prey diet (mice, small birds) contains approximately 50–55% protein on a dry matter basis. Foods that approach this level are closest to the biological template cats evolved with.
Component 2: Fat-to-Protein Ratio (up to 20 points)
Fat is essential for cats — it provides concentrated energy, carries fat-soluble vitamins, and supplies arachidonic acid, an omega-6 cats cannot synthesize from plant sources. But the ratio of fat to protein matters as much as the absolute level of either.
Fat-to-Protein Ratio = fat_pct / protein_pct (as-fed basis)
Ideal Ratio = 0.45
Ratio Deviation = |actual_ratio - 0.45| / 0.3
Ratio Points = (1 - min(deviation, 1)) × 20
The ideal ratio of approximately 0.45 reflects the macronutrient balance found in prey animals. A food scoring full points on this component has a fat level roughly 45% of its protein level — for example, 30% fat and 67% protein on a dry matter basis, or 10% fat and 22% protein as-fed in a typical wet food.
Foods that deviate significantly from the ideal in either direction — very high fat relative to protein, or very low fat relative to protein — receive fewer points. The scoring window is wide enough to accommodate normal variation; only extreme outliers are significantly penalized.
Component 3: Fiber Level (up to 20 points)
Fiber is the most binary of the four components. Cats have limited ability to ferment fiber and don't require much of it, but moderate fiber supports gut transit time and may benefit some conditions.
Fiber Points:
2% ≤ fiber_pct ≤ 5% → 20 points (ideal range)
fiber_pct < 2% → 14 points (below ideal)
fiber_pct > 5% → 10 points (above ideal)
The 2–5% range reflects the AAFCO-supported level of crude fiber appropriate for most adult cats. Below 2% is acceptable but may be suboptimal for gut health in some cats. Above 5% diverges from a cat's natural low-fiber dietary profile and may cause digestive issues in some animals.
Note that fiber values in commercial cat food are reported as crude fiber (maximum) on the guaranteed analysis — this is a regulatory ceiling, not an exact amount. The actual fiber in the food may be somewhat lower than stated.
Component 4: Complete & Balanced Bonus (20 points)
A food either has the AAFCO "complete and balanced" nutritional adequacy statement or it does not. If it does, it receives 20 bonus points. If it doesn't, it receives zero.
Completeness Bonus = food.is_complete_balanced ? 20 : 0
This is by far the most all-or-nothing component in the system. A food that is not AAFCO-complete is also filtered out of your recommendations entirely — it will never appear in your results regardless of how well it scores on other dimensions. The 20-point bonus applies within the scoring math as an additional reward for verified completeness, but in practice all scored foods already have this certification.
The maximum nutrition score is 100: 40 (protein) + 20 (ratio) + 20 (fiber) + 20 (completeness).
Value Score (0–100)
The value score answers a simple question: how does this food's cost-per-calorie compare to the rest of the database?
Cost is calculated as dollars per 100 kcal using the food's package price and total kilocalories. This normalizes for package size, format (wet vs. dry), and caloric density:
Cost per 100 kcal = (package_price / total_package_kcal) × 100
Value Score = (1 - (this_food_cost - min_cost) / (max_cost - min_cost)) × 100
The most affordable food in the filtered set receives a score of 100. The most expensive receives a score of 0. Every other food is linearly scaled between those extremes.
This score is relative, not absolute. A food's value score will change depending on which other foods are in your filtered results. If you filter to wet-food-only, the scoring range shifts because dry food (which is generally cheaper per calorie) is excluded. This is intentional — the score reflects value within your chosen category, not against all foods globally.
If autoship pricing is available for a food, MealMeow uses that lower price for the value calculation — rewarding foods that offer meaningful autoship discounts.
Suitability Score (0–100)
The suitability score is the most personalized of the three. It evaluates how well a food fits your cat specifically, based on their life stage and any health conditions you've entered in their profile. This is where two cats in the same household might receive completely different rankings for the same food.
Suitability is composed of three sub-components that add up to a maximum of 100 points.
Sub-component 1: Life Stage Match (up to 25 points)
life_stage = "all" → 20 points
life_stage matches cat's actual life stage → 25 points
life_stage does not match → 0 points (food filtered out)
Foods labeled "for all life stages" receive 20 points — they're appropriate for any cat, but they're not precisely calibrated for a specific life stage. Foods with an exact life stage match (kitten food for a kitten, adult food for an adult cat) receive the full 25 points.
Life stage boundaries in the app: kittens are cats under 12 months old; seniors are cats 84 months (7 years) or older. Senior cats can also eat adult-labeled food, which scores full points for that category.
Foods that don't match your cat's life stage are excluded from recommendations entirely before scoring begins.
Sub-component 2: Health Condition Compatibility (up to 50 points)
This is the heaviest single component in the entire system at 50 points, and it's what makes suitability scores diverge most dramatically between cats with different health profiles.
If your cat has no health conditions selected: this sub-component automatically awards 50 points. All foods in the database are equally "suitable" from a health perspective.
If your cat has one or more health conditions: the score depends on how well the food's benefit tags and nutrient profile match the requirements for each condition.
Each health condition in the app has a defined set of required benefits and preferred benefits, and in some cases nutritional constraints:
| Health Condition | Required Benefits | Preferred Benefits | Nutrient Constraints |
|---|---|---|---|
| Weight Management | Weight Management | Indoor Formula | Max fat: 12% |
| Sensitive Stomach | Sensitive Stomach | Grain Free | Max fiber: 5% |
| Urinary Health | Urinary Health | — | — |
| Hairball Control | Hairball Control | Indoor Formula | — |
| Dental Health | Dental Health | — | — |
| Skin & Coat | Skin & Coat | — | — |
| Joint Support | Joint Support | — | — |
| Kidney Support | — | Sensitive Stomach, Weight Management | Max protein: 40%, Max fat: 22% |
| Diabetic | High Protein | — | Min protein: 40%, Max fat: 15% |
For each condition your cat has, the score for that condition is calculated as:
Condition Score = (required_benefits_matched / total_required) × (50 / number_of_conditions)
Bonus for preferred benefits: +5 / number_of_conditions
The 50 available points are divided equally across all of your cat's health conditions. This means a cat with two health conditions requires a food that satisfies both to score well — a food that only targets one of two conditions will score around 25 out of 50, not 50.
Foods that score below a compatibility threshold on health condition matching are filtered out of recommendations entirely before the suitability score is finalized. You will only see foods that are meaningfully compatible with your cat's conditions.
Sub-component 3: Special Benefits Bonus (up to 25 points)
Beyond condition-specific tags, foods can carry additional benefit tags (like "Grain Free," "Indoor Formula," "High Protein," "Skin & Coat," etc.). Each additional benefit tag on a food contributes 5 bonus points, capped at 25:
Benefit Bonus = min(number_of_benefit_tags × 5, 25)
This component rewards foods with broader nutritional positioning. A food with five or more benefit tags earns the full 25 points. This isn't a measure of condition-specific fit — it's a general measure of how "feature-rich" the food is from a health-benefit perspective.
Badge System
In addition to the numerical score, up to three badges are awarded to highlight the standout foods in your results:
| Badge | Awarded To | What It Means |
|---|---|---|
| Best Value | Highest value score | Most cost-efficient food per calorie in your results |
| Best Nutrition | Highest nutrition score | Strongest nutrient profile (protein, ratio, fiber, completeness) |
| Best Match | Highest overall score | Highest weighted combination of all three pillars |
Badge assignment has one important rule: no food receives more than one badge, and each badge goes to a different food. If the food with the highest value score is also the food with the highest overall score, the Best Match badge goes to the runner-up for overall score. This ensures the three badges surface three meaningfully different options rather than concentrating all recognition on a single food.
The badged foods appear at the top of your recommendation list, sorted by badge priority (Best Value first, then Best Nutrition, then Best Match). Non-badged foods are sorted below them by overall score.
Don't overlook non-badged foods. A food ranked 5th overall with a score of 79 may suit your cat perfectly well — the badges highlight standouts, but the full ranked list is worth browsing.
How Health Conditions Affect the Full Pipeline
Health conditions influence scoring at multiple points in the recommendation process — not just during the suitability sub-score calculation:
-
Filtering (before scoring): Foods that fail the health compatibility threshold are excluded entirely. Your cat with diabetes will never see a food that doesn't carry the "High Protein" benefit tag and meet the minimum protein threshold.
-
Suitability scoring: Compatible foods are scored on how well they match required and preferred benefits for each condition.
-
Nutritional constraints in the compatibility check: Conditions like weight management (max fat 12%), diabetic (min protein 40%, max fat 15%), and kidney support (max protein 40%, max fat 22%) impose hard nutritional limits. A food that exceeds these thresholds in the as-fed guaranteed analysis is penalized in the compatibility score and may be filtered out.
This layered approach means that for cats with serious health conditions, the recommendation list is tightly curated — potentially showing fewer options, but all of them meaningfully appropriate.
MealMeow's health condition filtering is designed to surface options worth discussing with your veterinarian, not to replace veterinary advice. For conditions like kidney disease and diabetes, always confirm dietary choices with your vet before making changes.
Dry Matter Basis: The Foundation of Fair Comparison
One design choice underlies the entire nutrition score: all protein calculations use dry matter basis (DMB), not as-fed percentages from the label.
Without this conversion, comparing a wet food (78% moisture, 10% protein label) to a dry food (10% moisture, 32% protein label) would always favor dry food — even though the wet food often has significantly more protein once moisture is removed from both.
Dry Matter Protein = (label_protein_pct / (100 - moisture_pct)) × 100
Wet food example: (10 / (100 - 78)) × 100 = 45.5% protein DMB
Dry food example: (32 / (100 - 10)) × 100 = 35.6% protein DMB
The wet food wins on protein quality despite showing a lower number on its label. Without DMB conversion, you'd never know. MealMeow performs this conversion automatically across every food in the database, so every ranking you see is an apples-to-apples comparison.
Putting It All Together: A Worked Example
Consider a 9-pound, 5-year-old neutered adult cat with no health conditions. Two wet foods are in the running:
Food A: 45% DMB protein, fat/protein ratio of 0.42, 3% fiber, complete & balanced, cost of $0.38/100 kcal, 4 benefit tags.
Food B: 38% DMB protein, fat/protein ratio of 0.60, 1.5% fiber, complete & balanced, cost of $0.28/100 kcal, 2 benefit tags.
| Component | Food A | Food B |
|---|---|---|
| Protein (max 40) | 36 | 30.4 |
| Fat ratio (max 20) | 19.3 | 14 |
| Fiber (max 20) | 20 | 14 |
| Completeness (max 20) | 20 | 20 |
| Nutrition Score | 95 | 78 |
| Value Score (relative) | 40 | 82 |
| Life stage (max 25) | 20 | 20 |
| Health conditions (max 50) | 50 | 50 |
| Benefit bonus (max 25) | 20 | 10 |
| Suitability Score | 90 | 80 |
| Overall (35/30/35) | 75 | 76 |
Food B edges out Food A overall despite lower nutrition because its value advantage (cheaper per calorie) outweighs the nutrition gap. Food A earns the Best Nutrition badge; Food B may earn Best Value; neither necessarily earns Best Match depending on what else is in the results.
This example illustrates why the overall score can be counterintuitive — and why looking at the sub-scores matters when making your final choice.
Sources
-
National Research Council (NRC). Nutrient Requirements of Cats and Dogs. National Academies Press, 2006. View source
-
AAFCO. Dog and Cat Food Nutrient Profiles. Association of American Feed Control Officials, 2023. View source
-
Zoran, D.L. "The carnivore connection to nutrition in cats." Journal of the American Veterinary Medical Association 221(11): 1559–1567, 2002. View source
-
Laflamme, D.P. "Development and validation of a body condition score system for cats: a clinical tool." Feline Practice 25(5–6): 13–18, 1997. View source
-
Verbrugghe, A. & Bakovic, M. "Peculiarities of one-carbon metabolism in the strict carnivorous cat and the role in feline hepatic lipidosis." Nutrients 5(7): 2811–2835, 2013. View source
-
Trevizan, L. & Kessler, A.M. "Lipids in cat nutrition: essential fatty acid and energy metabolism." Revista Brasileira de Zootecnia 38: 60–68, 2009. View source
-
Sunvold, G.D. et al. "Dietary fiber for cats: in vitro fermentation of selected fiber sources by cat fecal inocula and in vivo utilization of diets containing selected fiber sources and their blends." Journal of Animal Science 73(8): 2329–2339, 1995. View source
-
WSAVA Global Nutrition Committee. Nutritional Assessment Guidelines. World Small Animal Veterinary Association, 2011. View source
