The short version: KibbleIQ runs four rubrics — a dry-kibble rubric v15 (used for every extruded bagged kibble on the site), a fresh-food rubric v1.0 (used for cooked-fresh, refrigerated, dehydrated, freeze-dried-raw, frozen-raw, and canned-wet foods), a cross-format rubric v2.0 (used only for opt-in apples-to-apples comparisons across format boundaries), and a treats rubric v1.0 (used for dog and cat treats — dental chews, training treats, jerky, biscuits, freeze-dried single-ingredient treats, long-chews, and lickable-puree tubes/sticks). Every pet food starts at a baseline score of 50 and moves up or down based on explicit, point-based math. The same ingredient list always produces the same grade — our analyzer runs at temperature 0 for near-deterministic output. We don't accept money from brands, we don't accept free product for review, and we don't adjust scores based on who's asking.

Why four rubrics

The dry-kibble rubric assumes an extruded, ~10%-moisture, shelf-stable bagged product. None of those assumptions hold for fresh, refrigerated, dehydrated, raw, or canned foods — a fresh food legitimately lists water or broth as its first ingredient, a frozen-raw food skips thermal processing entirely, and a subscription cooked-fresh brand may use a different AAFCO substantiation pathway than a big-bag kibble. Applying the dry rubric to a fresh product produces nonsense. The fresh-food rubric solves this by normalizing the ingredient panel before scoring and by adding axes the dry rubric doesn't measure (processing-method bonus, AAFCO substantiation pathway, raw-format pathogen control, sourcing transparency).

Treats need their own rubric for a different reason: every treat is labeled AAFCO "intermittent or supplemental feeding only" by definition, so the fresh and dry rubrics' "supplemental = −15 and cap at C/65" logic would floor the entire treats category and destroy useful ranking. A single-ingredient freeze-dried beef liver treat is the platonic ideal of a dog treat — on any axis that matters, it's best-in-class — and a rubric that lands it in the C tier for being "not complete and balanced" is making a category error. The treats rubric removes the AAFCO-completeness baseline, adds treat-specific axes (function class, calorie density, size appropriateness, safety flags, functional-claim verification), and hard-codes a xylitol auto-F rule for both species. The output is still a 0–98 score with A–F bands, identical in shape to the other rubrics.

All four native rubrics output a single 0–98 score and an A–F grade using the same bands, so the user-facing experience is consistent. A fresh-rubric score is only directly comparable to another fresh-rubric score; a dry-rubric score is only directly comparable to another dry-rubric score; a treats-rubric score is only directly comparable to another treats-rubric score. When a reader wants to compare across the dry/fresh format boundary — a cooked-fresh subscription against a dry kibble, say — the cross-format rubric sits on top of the two primary-diet rubrics and applies three modest overlay corrections so the numbers become commensurable on the same 0–98 scale. The cross-format rubric is opt-in only via the "compare across formats" toggle in the Compare Brands tab; within-format comparisons continue to use the native rubrics unchanged. Cross-rubric comparison between treats and primary diets is explicitly not supported — a treat and a kibble serve different feeding purposes, and ranking them on a shared scale would imply a feeding-equivalence that does not exist. Jump to the rubric you care about: dry kibble rubric · fresh food rubric · cross-format rubric · treats rubric.

The dry kibble rubric (v15)

Every dry-kibble review on KibbleIQ uses the same scoring framework. A product starts at 50 points and adjusts up or down based on what's actually on the ingredient label — the first five ingredients carry the most weight, since pet food ingredients are listed by pre-cooking weight. Proteins named by species (deboned chicken, salmon) earn points. Unnamed proteins ("meat and bone meal," "animal fat") lose them. Artificial preservatives flagged in peer-reviewed literature (BHA, BHT, ethoxyquin) are significant deductions. Whole grains earn modest points; corn, wheat, and soy as top ingredients lose them. Beneficial inclusions — named omega-3 sources, chelated minerals, probiotics, identifiable produce — add to the total.

The rubric has been refined through 14 successive revisions since the v1.0 launch. The current production version (v15, locked 2026-05-06) tightens the rules for named-meal protein quality at position 1 (whole-muscle meals like chicken meal earn the full bonus; by-product meals get a smaller bonus; generic "fish meal" without species qualifier counts as unnamed protein), penalizes refined grains and grain by-products in the top five (brewers rice, white rice, brewers dried grains, tapioca/potato starch), credits named probiotic cultures more broadly (Lactobacillus, Bifidobacterium, Enterococcus, Bacillus coagulans, Bacillus subtilis, Saccharomyces cerevisiae, plus species-named bacterial fermentation products), and adds a TOP-5 egg-product bonus when egg appears as a named animal protein supplement. The neutral whole-grain list (brown rice, oatmeal, barley, quinoa, whole oats) is exhaustive — "whole grain corn" and "whole grain wheat" still trigger the corn/wheat penalty.

The final score is capped at 98 and floored at 0. The grade letter is then assigned from the score range. This structure is intentional: it forces every product to be evaluated against the same criteria, in the same order, with the same weights. If two products have near-identical first-five ingredients and near-identical adjustments, they will score within a point or two of each other — by design.

What the rubric measures

Factors are grouped by their impact on the final score:

Primary factors (largest score impact)

Protein source quality and position. Real named meats (chicken, beef, salmon, lamb) rank highest. Named meat meals (chicken meal, salmon meal) rank moderate — they're concentrated protein sources that earn reasonable credit, but aren't equivalent to whole meat. By-products and unnamed sources ("animal fat," "meat and bone meal," "poultry by-product meal") rank lowest. The position on the ingredient list matters as much as the presence — a named meat in position 1 and a meat meal in position 2 is substantially better than a meat meal in position 1 and a carb filler in position 2.

Controversial and harmful additives. BHA, BHT, ethoxyquin, propylene glycol, artificial colors (Red 40, Yellow 5, Yellow 6, Blue 2), and sodium selenite at elevated levels. The presence of any ingredient on this list significantly lowers the grade. These aren't judgment calls — they're flagged in peer-reviewed literature for documented concerns ranging from suspected carcinogenicity to anemia risk in cats.

Moderate factors

Filler dominance. Corn, wheat, soy, and brewers rice as top ingredients indicate a formula that prioritizes cheap volume over nutrition. These aren't inherently dangerous, but they signal lower quality when they dominate the first five ingredients. Whole grains (brown rice, oatmeal, barley) are treated more favorably — they provide fiber, B vitamins, and slower-release energy.

Legume-density and the FDA DCM watchlist. Pea protein, pea isolate, and potato protein in the top five ingredients each lose 5 points. Multi-legume formulas (peas, lentils, chickpeas, and faba beans) totaling three or more entries in the top eight lose another 6 points. The FDA's 2018 dilated cardiomyopathy investigation (CVM Update, June 2018; subsequent FDA-CVM updates 2019 and 2022) and peer-reviewed follow-up work surfaced an over-representation of legume-heavy grain-free formulas among reported DCM cases. The investigation is unresolved, but the rubric prices in the documented signal until further clinical evidence either clears or confirms the association — applied consistently across both the dry-kibble rubric and the fresh-food rubric.

Nutritional completeness signals. Named omega-3 sources (flaxseed, fish oil, salmon oil) for coat and inflammation support. Chelated minerals (zinc proteinate vs. zinc oxide) for better bioavailability. Named fat sources (chicken fat vs. generic "animal fat"). Probiotics. Identifiable fruits and vegetables. Each of these contributes positively to the score.

Minor factors

Recall history and labeling transparency. Brands with repeated recalls, lawsuits over ingredient mislabeling, or vague sourcing practices may receive a note in the review, though this does not override ingredient-level analysis. A clean-ingredient formula from a brand with a spotty recall history will still score based on what's in the bag.

The fresh food rubric (v1.0)

The fresh-food rubric applies to any product that isn't an extruded shelf-stable kibble: cooked-fresh subscription meals, refrigerated kibble replacements, dehydrated (rehydrate-before-feeding) recipes, freeze-dried-raw, frozen-raw, and canned-wet foods. It was drafted and locked on 2026-04-19 and shipped the same week. The full versioned specification lives at kibbleiq/METHODOLOGY_FRESH_v1.md in our repository; the summary below is the user-facing explanation.

Format taxonomy

Every product scored under the fresh rubric is tagged with exactly one format class. The format class drives a pre-scoring normalization step and unlocks a format-specific processing bonus reflecting how much heat the food was exposed to during manufacturing:

  • Cooked-fresh (subscription) — 65–75% moisture, 180–200°F. Examples: The Farmer's Dog, Nom Nom, Ollie. Processing bonus: +4.
  • Refrigerated kibble-replacement — 60–70% moisture, 180–220°F. Examples: Freshpet. Processing bonus: +2.
  • Dehydrated — 8–10% as-sold (~70% rehydrated), 140–180°F. Examples: The Honest Kitchen, Sundays. Processing bonus: +3.
  • Freeze-dried-raw — 2–5% moisture, no thermal processing (sublimation under vacuum <100°F). Examples: Stella & Chewy's freeze-dried, Open Farm freeze-dried. Processing bonus: +6.
  • Frozen-raw — 65–72% moisture, no thermal processing. Examples: Open Farm Frozen Raw, Primal. Processing bonus: +5.
  • Canned-wet — 70–82% moisture, 240–260°F retort sterilization. Examples: Weruva, Tiki Cat, Wellness CORE canned. Processing bonus: +1.

The bonus order — freeze-dried-raw > frozen-raw > cooked-fresh > dehydrated > refrigerated > canned-wet — reflects descending preservation of heat-labile nutrients (taurine, certain B-vitamins, omega-3s) per published pet-food processing literature. The magnitudes are bounded and modest by design: we are not claiming a freeze-dried-raw product is automatically six points better on nutrition than a canned product, just that the format class has measurable bioavailability differences.

Normalization step

Before any scoring axis is applied, the analyzer reorders the ingredient panel by dry-matter weight, not as-fed weight. Fresh and wet foods list water or broths first because of as-fed weight — the dry rubric would read "first ingredient = water" as a quality red flag, which is nonsense for a food that is supposed to be 70% water. Water, broth, and stock ingredients are annotated as a moisture component (noted in the review as "Water and broths total approximately X% of the as-fed weight, consistent with [format class] norms") and the remaining ingredients are re-ranked in their original order. The "first ingredient" referenced in the scoring rubric below is the first ingredient in this normalized panel. Vitamin and mineral tails are preserved verbatim.

What the fresh rubric measures

Protein quality and position (largest swing, −15 to +20). Applied to the normalized first ingredient. Named whole muscle meat earns +15; named organ meat +12; named meat meal +8; named protein concentrate +5. Unnamed meats or by-products lose 10–15 points. Plant-first recipes lose 12 points — fresh consumers are paying a premium specifically for protein, so the downside is steeper than the dry rubric.

Carb and vegetable load (−8 to +6). Whole vegetables in the normalized top 8 earn modest credit. Refined grains in the top 5 lose four points. Pea protein, pea isolate, potato protein, and legume-stacks (peas + lentils + chickpeas + faba beans together) lose points per the FDA's diet-DCM investigation — the investigation does not exempt fresh formats, so the rubric doesn't either.

Processing-method bonus (+1 to +6). A single bonus applied per the format class above.

Additive load (−25 to 0). BHA, BHT, ethoxyquin, propyl gallate, and TBHQ each lose 10 points. Carrageenan in canned-wet loses six. Artificial colors each lose five. Artificial flavors lose three. Nitrites, MSG, propylene glycol lose six each. Sulfites used in raw to control browning lose four. Natural preservatives (mixed tocopherols, rosemary extract, vitamin C) are neither penalized nor credited — they are the baseline for a fresh format.

AAFCO substantiation (−15 to +5). The AAFCO complete-and-balanced statement is the single most important regulatory signal on a pet food label. Feeding-trial substantiation ("Animal feeding tests using AAFCO procedures substantiate…") earns +5 because the pathway is harder and more expensive. Formulation-only substantiation ("…formulated to meet the nutritional levels established by the AAFCO Nutrient Profiles…") is baseline (0). "Intermittent or supplemental feeding only" loses 15 points and caps the final score at C/65 — these products cannot earn an A or B because AAFCO itself says they cannot be a sole diet. No AAFCO statement on the label loses 12 points.

Pathogen control for raw formats (+5 to −6, frozen-raw and freeze-dried-raw only). Documented High Pressure Processing (HPP) earns +5. Documented every-batch test-and-hold pathogen testing earns +3. Raw with no documented pathogen control loses three. A documented pathogen-related recall in the last 24 months loses six and caps the final score at C/70. A public-health caveat is always added to raw reviews noting that raw formats may carry Salmonella, Listeria, or E. coli regardless of brand, and that the CDC and AVMA recommend caution for households with infants, immunocompromised members, or adults over 65.

Sourcing transparency (0 to +6). Country of origin for the primary protein earns +1. A named farm, ranch, or fishery earns +2. An AAFCO "human-grade" claim with substantiation earns +2. Verifiable third-party certifications (GAP, USDA Organic, Certified Humane, MSC, Regenerative Organic) earn +1 each, capped at +2. Fresh-format consumers explicitly value sourcing — it's the reason they pay a premium — so the rubric credits it modestly without overweighting marketing claims.

Limited-ingredient bonus (0 to +3). A single named protein across the entire panel, complete-and-balanced, earns +3. One protein plus one carb base, complete-and-balanced, earns +2. These formulas serve dogs and cats with food sensitivities, but only when they remain complete-and-balanced — a single-protein "intermittent feeding only" product gets no bonus.

Caps and floors

  • Final score floored at 0 and ceilinged at 98 — same as the dry rubric, for the same reason (no pet food is perfect).
  • "Intermittent or supplemental feeding only" products cap at C/65 regardless of ingredient quality.
  • Products with an active FDA recall in the last 12 months cap at D/50.
  • Raw formats with a pathogen-related recall in the last 24 months cap at C/70.
  • Single-ingredient meal toppers (e.g., freeze-dried beef liver alone) cap at C/65 and are flagged as "topper, not standalone meal."

Cross-format comparison: see the cross-format rubric below

A fresh-rubric B/85 score is not directly comparable to a dry-rubric B/85 score. Both rubrics share a 0–98 scale and the A–F bands by design, but they apply different normalization, different processing bonuses, and different substantiation handling. Every fresh-format score on the site carries a small "Fresh" label next to the numeric score so the format is never ambiguous. Cross-format comparison (fresh vs. dry, or any two different format classes) uses our cross-format rubric v2.0, which layers three small overlay corrections (processing overhang, AAFCO substantiation, sourcing transparency) on top of each product's native score so the two numbers become commensurable. The cross-format rubric is opt-in only — within-format comparisons continue to use the native rubrics unchanged.

The cross-format rubric (v2.0)

The cross-format rubric answers one question: how do you fairly compare a cooked-fresh subscription against a dry kibble, when the two native rubrics were never designed to produce commensurable numbers? It was drafted and locked on 2026-04-19 to close the "cross-format comparison deferred" clause in Fresh Food Rubric v1.0. The full versioned specification lives at kibbleiq/METHODOLOGY_CROSS_FORMAT_v2.md in our repository; the summary below is the user-facing explanation.

The design principle is conservative: cross-format is a correction, not a rescore. Each product's native score (dry-rubric or Fresh Food Rubric) still carries most of the signal. Three overlay adjustments, each bounded at ±2 points, get applied on top. The math is deliberately transparent — the analyzer returns the overlay breakdown alongside the final score so readers can audit why a cross-format comparison arrived at its verdict.

When it activates

The cross-format rubric activates only when the user opts in via the "compare across formats" toggle in the Compare Brands tab, and only when both products in the comparison resolve to verified entries in our ingredient database (both must have documented format class, AAFCO statement, and sourcing notes). If either side of the comparison doesn't have a database entry, the toggle is effectively inert and the comparison falls back to the standard two-native-score side-by-side display with a note that cross-format is unavailable for this pairing. Within-format comparisons (two dry kibbles, or two fresh foods of any format class) never need cross-format machinery and default to the native rubric.

The three overlay adjustments

Processing-overhang correction (−2 to 0). The fresh rubric rewards low-temperature processing with a format bonus ranging from +1 (canned-wet) to +6 (freeze-dried-raw). The dry rubric has no equivalent bonus — extrusion is the implicit zero-point baseline. Without correction, a freeze-dried-raw product carries a +6 processing advantage built into its native score that a dry product can never match, purely because of how the rubrics are constructed. The overlay dampens that overhang by 2 points for fresh formats whose processing bonus is ≥ +4 (cooked-fresh, frozen-raw, freeze-dried-raw). Refrigerated, dehydrated, and canned-wet formats sit close enough to the implicit dry baseline that no correction is needed. Dry-kibble products always get 0.

AAFCO-substantiation overlay (0 to +2). Feeding-trial AAFCO substantiation — "Animal feeding tests using AAFCO procedures substantiate that this product provides complete and balanced nutrition" — is the gold-standard regulatory signal and is meaningfully harder to achieve than formulation-only substantiation. The fresh rubric rewards it at +5 within its own rubric, but the dry rubric doesn't currently weight AAFCO substantiation explicitly. A dry brand with a feeding-trial statement (rare but present — some Purina Pro Plan and Royal Canin lines publish them, as does Hill's Prescription Diet) gets no credit in its native dry score. The cross-format overlay adds +2 to any product, dry or fresh, with documented feeding-trial substantiation. Formulation-only and no-statement products get 0 (those penalties are already inside the fresh rubric's native score; double-counting would over-correct).

Sourcing-transparency overlay (0 to +2). The fresh rubric rewards sourcing transparency at 0 to +6 because fresh consumers pay premium specifically for ingredient provenance. The dry rubric doesn't currently weight sourcing. A dry brand with strong sourcing signals (Orijen's "Regional" ingredient program, Acana's farmer/rancher partnerships, Fromm's five-generation family-farm language) goes unrewarded in native scoring. The cross-format overlay adds +1 per documented sourcing signal (country of origin for the primary protein, named farms/ranches/fisheries, AAFCO human-grade claim with substantiation, or a verifiable third-party certification like GAP, USDA Organic, Certified Humane, MSC, or Regenerative Organic), capped at +2 cumulative. Marketing language alone — "premium ingredients," "family-owned tradition," "hand-crafted" — does not qualify. The signal must be a specific, verifiable fact.

How the score is computed

cross_format_score = native_score
                   + processing_overhang_correction   (−2 to 0)
                   + aafco_substantiation_overlay      (0 to +2)
                   + sourcing_transparency_overlay     (0 to +2)
                   (then clamp to [0, 98])

The same 0–98 cap and A–F bands that apply to the two native rubrics apply to the cross-format score. Any native-rubric cap (supplemental-only C/65, active-FDA-recall D/50, raw-recall C/70, topper C/65) carries through unchanged — the overlay cannot raise a capped product above its cap. This preserves the reproducibility contract and ensures the cross-format view is always a correction, never an escape hatch.

The per-1000-kcal density overlay (informational, not scored)

Alongside the cross-format score, the analyzer returns a small per-1000-kcal nutrient-density summary for each product: grams of protein per 1000 kcal, grams of fiber per 1000 kcal, and a density band (high, moderate, low, or unknown). This is derived from guaranteed-analysis percentages and caloric density when the manufacturer discloses both on its website; otherwise it's marked "unknown." The density band does not affect the cross-format score — it's informational only — but it helps a reader see at a glance whether a lower-calorie fresh food delivers more nutrient density per calorie than a higher-calorie dry kibble, or whether the two are roughly similar on a per-calorie basis. We kept this overlay informational rather than scoring because guaranteed-analysis percentages are label claims, not audited measurements, and using unvalidated numbers to drive scoring would introduce variance we can't reproduce.

What the cross-format rubric doesn't do

It doesn't rescore any existing review. Every existing score on the site remains valid under its native rubric. Cross-format scores are an additional value computed only when the cross-format compare mode is explicitly activated; they don't write back to any review.

It doesn't replace native rubrics for within-format comparison. Two dry kibbles continue to be compared under the dry rubric. Two fresh foods of any format class continue to be compared under the fresh rubric. The cross-format machinery only runs when the two products being compared have different format classes and the user opts in.

It doesn't introduce a third grade scale. Grades remain A (90–98), B (75–89), C (55–74), D (35–54), F (0–34). The 0–98 ceiling is preserved. Adding a new band would break the reproducibility contract with readers.

It doesn't attempt laboratory-level nutrient-content comparison. Cross-format scoring operates on the same ingredient-panel signals that drive the native rubrics. Guaranteed-analysis numbers appear as an informational overlay, not as scoring inputs.

The treats rubric (v1.0)

The treats rubric applies to dog and cat treats: single-ingredient freeze-dried proteins, training treats, jerky, dental chews, biscuits, meat-based chews (bully sticks, pig ears, tripe), long-chews (Himalayan yak chews, rawhide-alternatives), lickable-puree tubes and sticks (Inaba Churu, Tiki Cat Stix), rawhide, and cooked bones or antlers. It was drafted Session 39 (2026-04-20), expanded with cat-coverage pilots Session 40, and tentatively locked at v1.0 Session 41 (2026-04-21). The full versioned specification lives at kibbleiq/METHODOLOGY_TREATS_v1.md in our repository; the summary below is the user-facing explanation.

Why a separate rubric

Every treat is labeled AAFCO "intermittent or supplemental feeding only" by definition — a product marketed and labeled as a treat cannot simultaneously claim complete-and-balanced status. Applying the dry or fresh rubric's −15 "supplemental" deduction and C/65 cap to every treat would floor the entire category and destroy useful ranking. A single-ingredient freeze-dried beef liver treat is genuinely the platonic ideal of a dog treat on any axis a rubric would measure, and it should be allowed to earn an A. Treat-specific concerns (xylitol toxicity in dogs, cooked-bone fragments, rawhide digestion risk, size-relative choking hazards, VOHC-verified dental efficacy, calorie density against the 10%-of-daily-calories rule) also need first-class scoring axes that the primary-diet rubrics never had to encode. The treats rubric removes the AAFCO-completeness baseline, adds those axes, and preserves the 0–98 scale and A–F bands so the user-facing experience is unchanged.

Function-class taxonomy

Every treat scored under v1 is tagged with exactly one of ten function classes. The class drives a function-class bonus, the calorie-density row lookup, and safety flags:

  • Single-ingredient freeze-dried — one named animal protein, nothing else. Examples: Vital Essentials FD Beef Liver, Stewart Pro-Treat, PureBites. Bonus: +6.
  • Training treat (soft/meaty) — animal protein plus minor binders, low calories per unit. Examples: Zuke's Mini Naturals, Blue Bits, Fruitables Skinny Minis. Bonus: +3.
  • Jerky / meat strips — single or dominant animal protein, minimal processing. Examples: Charlee Bear Grain-Free, Plato Small Bites, Full Moon Chicken Jerky. Bonus: +3.
  • Dental chew — starch/protein/binder blend shaped for mechanical plaque removal. Examples: Greenies, Whimzees, OraVet, Virbac CET. Bonus: +3 if VOHC-verified, +1 otherwise.
  • Biscuit / crunchy — flour-forward with protein and vegetables. Examples: Milk-Bone, Old Mother Hubbard, Fruitables Crunchy. Bonus: 0.
  • Meat-based chew — whole anatomical protein (trachea, bully stick, pig ear, tripe). Bonus: +2.
  • Long-chew — compressed animal tissue, cheese, or rawhide-alternative. Examples: Himalayan dog chews, Earth Animal No-Hide, Whimzees long-chew. Bonus: +2.
  • Lickable-puree — single-serve wet-format tubes and sticks. Examples: Inaba Churu, Tiki Cat Stix, Churu Purée Naturals. Bonus: +2.
  • Rawhide — bleached/processed cattle hide. Bonus: −4 per FDA digestive-obstruction advisories.
  • Cooked bone / antler — smoked or cooked real bone, deer antler. Bonus: −6 per AVMA and ACVS guidance on slab fractures and obstruction risk.

What the treats rubric measures

Ingredient simplicity and protein position (−15 to +23). The largest single swing. A single-ingredient treat (one named animal protein only) earns +20 — treats live and die by simplicity, and the category's platonic ideal is a single-ingredient freeze-dried protein. A two-ingredient treat (one named protein plus one whole-food) earns +15. Multi-ingredient treats earn +12 for a named whole muscle meat first, +10 for a named organ meat, +6 for a named meat meal, and −3 for a named by-product meal (species-disclosed but anatomically by-product — e.g., "Chicken By-Product Meal"). Unnamed meats lose 10, unnamed by-products lose 15, grain-first loses 8, sugar-first loses 15. Lickable-puree products with a named-protein-first ingredient and no grain/starch in the top 5 earn an additional +3 wet-format qualifier bonus.

Filler and additive load (−25 to 0). Wheat, corn, soy, or rice in the top 3 loses 6 points (lighter 3-point deduction in biscuits and dental chews where flour binders are structurally necessary). Sugar, corn syrup, molasses, honey, maltodextrin anywhere lose 8. Glycerin or propylene glycol as softener lose 5. Artificial colors lose 6 each, artificial flavors lose 4. BHA, BHT, ethoxyquin, propyl gallate, and TBHQ lose 10 each. Sodium nitrite, sodium tripolyphosphate, and MSG lose 6 each. Multi-legume stacks (peas + lentils + chickpeas + faba beans + pea protein + garbanzo totaling ≥3 entries in the top 8) lose 6 points per the FDA DCM investigation.

Xylitol is an auto-F for both species. Xylitol is acutely toxic to dogs — even trace amounts cause life-threatening hypoglycemia — and categorically unsuitable for cats. The rubric's strongest single expression: any treat containing xylitol is capped at F/0 regardless of every other axis. No ingredient-quality credit overrides this.

Function-class bonus (see the table above). Single-ingredient freeze-dried earns +6, training treats and jerky earn +3, VOHC-verified dental chews earn +3 (non-VOHC +1), biscuits 0, meat-based chews and long-chews and lickable-puree +2, rawhide −4, cooked bone or antler −6.

AAFCO statement (−8 to 0). "Intermittent or supplemental feeding only" present earns 0 — it's the expected baseline for treats, not a deduction. "Complete and balanced" mistakenly on a treat label loses 4 (a labeling concern). No AAFCO statement at all loses 8 — lighter than the primary-diet penalty because small-batch treat makers historically ship without one.

Calorie density and size appropriateness (−8 to +4, species-specific). Dogs and cats have very different treat calorie ceilings: a 50-pound adult dog has a ~110 kcal/day treat allowance (the 10% rule), while a 10-pound cat has ~25 kcal/day. The rubric applies separate calorie rows per species. Dog training treats ≤5 kcal per unit earn +3, 5–10 earn 0, >10 lose 4. Cat training treats / lickable-puree / single-ingredient freeze-dried at ≤3 kcal earn +3, 3–6 earn 0, 6–10 lose 1, >10 lose 4. Size-tier versions (small/medium/large) earn +2 for biscuits/jerky/dental chews; single-size-only loses 2. Calorie-per-unit not disclosed on packaging loses 4 points (species-agnostic transparency flag).

Safety flags (−15 to 0). Documented recalls for the product line within 24 months lose 10. Active FDA consumer complaints within 12 months lose 6. Manufacturer-disclosed choking-hazard shape loses 4.

Functional-claim verification (−3 to +5). A VOHC Seal of Acceptance on a dental chew earns +3 in addition to the +3 function-class bonus, for +6 total — the single strongest functional claim in the entire treats category. Probiotic chews with disclosed CFU count and strain earn +2. Joint chews with glucosamine/chondroitin/MSM dosing at AAHA-aligned levels earn +2. Calming chews with L-theanine, alpha-casozepine, or tryptophan at species-published dosing earn +2. Functional claims without supporting dose, strain, or evidence lose 3 points (puffery flag).

Caps and floors

  • Final score floored at 0 and ceilinged at 98 — same as the dry and fresh rubrics. A single-ingredient freeze-dried treat can legitimately reach 98; the ceiling is preserved so the category's best specimens aren't artificially capped.
  • Xylitol present (both species): auto-cap at F/0 regardless of any other scoring.
  • Active FDA recall within 12 months: cap at D/50.
  • Cooked bone, smoked bone, antler: cap at C/70 per veterinary consensus on obstruction and tooth-chipping risk.
  • Generic rawhide (not labeled as a rawhide-alternative): cap at C/65 per FDA digestive-obstruction warnings.

The 10%-of-daily-calories feeding-context rule

Per AAFCO and the WSAVA Global Nutrition Guidelines, treats of any quality should comprise ≤10% of your pet's daily caloric intake. A high-quality treat is not a substitute for a complete-and-balanced primary diet — it is a reward or enrichment tool used alongside one. For a 50-pound adult dog requiring ~1,100 kcal/day, that ceiling is ~110 kcal from treats (roughly 4 medium biscuits or 20 training treats). For a 10-pound adult cat requiring ~250 kcal/day, the ceiling is ~25 kcal — which is about 2–3 dog-training-treats' worth of calories. Every KibbleIQ treat review carries this reminder.

An A here means best-in-class treat — not a substitute for a primary diet

A treats A/95 is not directly comparable to a dry A/95 or a fresh A/95. The three native scoring rubrics (dry, fresh, treats) share a 0–98 scale and A–F bands by design, but they apply different baselines (treats have no AAFCO-completeness expectation), different bonuses (function class, VOHC, calorie density, and safety flags are treat-specific), and different caps (rawhide and bone categories are specifically capped). Every treats review on KibbleIQ displays a small "Treat" text label next to the numeric score so the rubric is never ambiguous. Cross-rubric comparison between treats and primary-diet products is explicitly deferred indefinitely — it is a category error. A treat and a kibble serve different feeding purposes, and ranking them on a shared scale would imply a feeding-equivalence that does not exist.

The grade scale

Every numeric score maps to a letter grade:

  • A · 90–98 — Excellent. Premium ingredients, strong nutritional profile, no significant concerns.
  • B · 75–89 — Good. Quality ingredients with minor concerns.
  • C · 55–74 — Average. Meets basic nutritional standards but relies on fillers or lacks key nutrients.
  • D · 35–54 — Below average. Significant ingredient quality concerns.
  • F · 0–34 — Poor. Major red flags: artificial colors, unnamed proteins, or harmful preservatives.

Why the maximum score is 98

No pet food on KibbleIQ can score 100. This is intentional. Commercial pet food — even the premium end of the market — involves tradeoffs. Every formula optimizes around cost, shelf stability, regulatory constraints, palatability, and nutritional completeness, and none of them nail all five. Capping the scale at 98 keeps the rubric honest: there is no "perfect kibble" and pretending otherwise would mean the scoring system is calibrated for marketing rather than evaluation. Scoring 95+ is rare and significant. Scoring 98 is reserved for formulas that meet the highest ingredient standards we have on record.

The ingredient database

KibbleIQ maintains a curated database of verified ingredient lists for the products we review most often. When a user searches for a brand, we check this database first. If we have a verified entry, the analyzer runs against the exact ingredient list we've captured from the manufacturer — not from training data, not from guessing, not from outdated sources. Each entry includes the brand name, full product name, pet type, the complete comma-separated ingredient list in the exact order shown on the bag, and a source attribution (typically the manufacturer's own website, dated).

Entries are added in batches as we expand coverage. The database is versioned — current version is tracked in the codebase and visible in every session's changelog. When a manufacturer reformulates, we re-verify the ingredient list against the new label, re-run the analyzer, and update the published review. Reformulations are not rare: several major brands have changed preservatives, protein sources, or ingredient order in the time since KibbleIQ launched, and each change can move a product's score by several points.

For products not yet in the database, the analyzer falls back to what the model knows about that brand's typical formula. These results are cached for consistency but carry less certainty than verified-database results. Our long-term goal is to reduce the gap — every product worth reviewing should eventually have a verified entry.

Reproducibility

The analyzer runs at temperature 0, which means the model's output is as close to deterministic as current AI models allow. For the same ingredient list, you will get the same grade. Re-running Blue Buffalo Life Protection on a Tuesday returns the same 78/100 as re-running it on a Friday. This is the property that makes KibbleIQ's scores actually comparable to each other — "this food scored 78 and that food scored 82" only means something if both scores came from the same process applied consistently.

When the scoring rubric itself changes — which happens occasionally, as we refine the weights or add new factors — we bump an internal cache version so all subsequent scores reflect the updated rubric. Published reviews are then re-scored against the new rubric and updated on the site. We note significant rubric changes in our changelog.

Our sources

AAFCO. The Association of American Feed Control Officials is the U.S. body that sets ingredient definitions, labeling standards, and nutritional adequacy profiles for pet food. Every ingredient we reference is identified using AAFCO naming conventions. When AAFCO renames an ingredient — as happened recently when "corn gluten meal" was reclassified to "corn protein meal" — our database is updated to match current labels.

NRC Nutrient Requirements of Dogs and Cats. The National Research Council (National Academies Press) publishes the authoritative scientific reference for dog and cat nutrient requirements. AAFCO's adequacy profiles are derived from this work; we use it as the upstream benchmark when ingredient adequacy is in question.

WSAVA Global Nutrition Guidelines. The World Small Animal Veterinary Association publishes nutrition-selection guidance for pet owners and clinicians. Their recommendations on manufacturer evaluation, ingredient transparency, and formulator qualifications inform our judgment on what separates a trustworthy label from a marketing-heavy one.

PubMed / peer-reviewed veterinary nutrition research. The evaluation of specific ingredients — bioavailability, safety, digestibility, species-specific concerns like taurine requirements in cats — is grounded in published research rather than brand marketing claims or forum consensus. Where a score hinges on a published finding, the individual review cites it directly.

FDA pet food recall database. The FDA Center for Veterinary Medicine maintains the authoritative record of pet food recalls, withdrawals, and safety alerts. Brands with repeated recall history receive a note in the review; readers can verify any brand's history directly at the source.

FDA diet-DCM investigation. The FDA's ongoing investigation into a potential link between certain grain-free and legume-heavy diets and canine dilated cardiomyopathy. Where a formula's ingredient pattern falls into the investigated category, the review flags this directly. Applies to both rubrics; the fresh rubric's pea-protein and legume-stack deductions trace back to the same investigation.

CDC raw-pet-food guidance and AVMA raw-protein policy. The CDC's salmonellosis-from-raw-pet-food guidance and the AVMA's raw-animal-source-protein position statement are the authorities behind the fresh rubric's pathogen-control axis and the public-health caveat on raw reviews.

USDA FSIS HPP guidance and pet-food processing literature. High Pressure Processing is the non-thermal pathogen-control intervention that earns raw formats their +5 pathogen-control bonus. Published processing literature (Crane et al. on vitamin retention, Tran et al. on extrusion-temperature effects, Aldrich on rendered-product protein density) underpins the magnitude of the fresh rubric's processing-method bonus.

Ingredient watchlists. Artificial preservatives (BHA, BHT, ethoxyquin), artificial colors (Red 40, Yellow 5, Yellow 6, Blue 2), propylene glycol, and additives flagged in the scientific literature for documented health concerns. We treat these as evidence-based deductions, not aesthetic preferences.

Manufacturer ingredient labels. The primary source for every database entry. We capture the ingredient list as published on the manufacturer's own website, cross-check against retailer listings (Chewy, PetSmart) where possible, and note the verification date in the database entry itself.

What the methodology doesn't evaluate

We want to be explicit about the limits of our scoring:

We don't test the food in a lab. KibbleIQ evaluates the ingredient list on the label. We don't commission independent laboratory analysis to verify actual nutrient content, and we don't test for contamination, heavy metals, or mycotoxins. A product's score reflects what the label says the food contains, not an independent measurement.

We don't account for individual pet needs. A food that scores A for the general rubric may still be the wrong choice for a specific dog or cat — allergies, kidney disease, pancreatitis, weight management, breed-specific sensitivities, and life-stage requirements can all make a high-scoring food inappropriate for a particular animal. Our grade is one input. Your veterinarian's guidance about your specific pet is another. Both matter.

We don't evaluate palatability. A food that your dog or cat refuses to eat doesn't become more nutritious for having a good score. Practical palatability and digestibility trials are outside our scope.

We don't evaluate price-to-quality ratio directly. Our scoring is about ingredient quality, not value. A B-grade food at $30 per bag and a B-grade food at $60 per bag receive the same grade — we don't adjust the score for cost. Our comparison articles and category guides sometimes call out value, but the numeric score itself is cost-blind.

How to interpret scores

A grade is a compressed summary of a much longer analysis. The grade tells you where a food falls in the overall distribution. The written review tells you why — what the ingredient list looks like, where the formula pulls ahead, and where it falls short. If you're using KibbleIQ to make a real feeding decision, read the review, not just the grade. A B-grade food with stellar protein but a pea-protein padding concern is a different product than a B-grade food with mediocre protein but a clean preservative profile — both can land in the same score range for very different reasons.

Comparison articles exist to make these tradeoffs visible. When two foods are close in score, the comparison will tell you what's actually different — and often, which one is the better fit for a specific situation.

When the methodology changes

All four rubrics are living documents. As pet nutrition science advances, as AAFCO updates definitions, and as new ingredient concerns emerge in peer-reviewed literature, we revise the rubric and re-score affected products. When we make a material change, we:

  • Bump an internal cache version to invalidate stale scores.
  • Re-run the analyzer against every affected product.
  • Update the published reviews to match the new scores.
  • Note the change in our public changelog so readers can see what moved and why.

The goal is to keep every score on the site reflective of the current rubric applied to the current ingredient list, so that comparisons within the same rubric remain apples-to-apples. The dry kibble rubric is at v15 (locked 2026-05-06 — see CHANGELOG Phase 106 for the v14→v15 disambiguation set). The fresh food rubric is at v1.0 (published 2026-04-19). The cross-format rubric is at v2.0 (published 2026-04-19, kept current alongside the dry-rubric versioning) and closes the cross-format comparison clause that was deferred in Fresh Food Rubric v1.0 §7. The treats rubric is at v1.0 (tentative lock 2026-04-21, wired into the analyzer 2026-04-21) — Claude-applied §12 sign-off with editorial override retained via diff review.

v1.1 cross-rubric addendum (2026-04-21): The named by-product meal tier introduced in Treats Rubric v1.0 §4.1 — species-disclosed but anatomically by-product first ingredients (e.g., "Chicken By-Product Meal") score −3, a tier sitting between named meat meal (+6) and unnamed by-product (−15) — is flagged for propagation to the dry and fresh rubrics for cross-rubric consistency. Methodology-doc addendum is live now; the analyzer scoring math for dry and fresh will be updated when the next cache-key bump ships and affected products are re-scored in a batched re-score pass. Until then, cross-rubric by-product-meal scoring may differ by up to 9 points between the treats rubric and the dry/fresh rubrics on the same ingredient pattern.