How is a DogDish grade calculated?
DogDish starts at 78 points, then applies versioned bonuses and penalties for recognized ingredient categories, the first ingredient, AAFCO nutritional adequacy language, limited guaranteed-analysis checks, and any dog-specific allergen matches. A recognized toxic ingredient forces an F and caps the score at 9.
Each result returns the numeric score, A–F grade, detected flags, positive signals, an itemized breakdown, whether personalization changed the result, and the model version. The same normalized input and model version produce the same output.
Where does the label data come from?
DogDish first looks for a cached food record, then may identify a product through barcode catalogs including Open Pet Food Facts, Open Food Facts, USDA FoodData Central, and configured UPC providers. If a catalog record is incomplete, the user can photograph the package label.
Extracted text is normalized into product identity, ingredients, guaranteed analysis, food type, and nutritional adequacy fields. The ingredient parser keeps the original text, separates top-level and parenthetical ingredients, and assigns positions so the grading engine can explain what it matched.
What rules affect the grade?
Version grade-v1 uses the rules below. Category caps prevent repeated similar ingredients from creating an unlimited penalty.
| Signal | Adjustment | Limit or condition |
|---|---|---|
| Starting score | 78 | Applied to every result |
| Caution-category ingredient | −6 each | Category cap −24 |
| Avoid-category ingredient | −10 each | Category cap −30 |
| Filler-category ingredient | −4 each | Category cap −16 |
| Generic protein or fat source | −7 each | Category cap −14 |
| Named protein is first | +8 | Primary ingredient only |
| Generic protein or fat is first | −8 | Primary ingredient only |
| Complete and balanced statement | +6 | Main foods with parsed AAFCO language |
| Feeding-trial basis | +2 | In addition to complete status |
| Supplemental-only main food | −10 | Main foods only |
| No adequacy statement found | −6 | Main foods only |
| Crude protein below 18% | −3 | Light as-fed check when data exists |
| Profile allergen match | −15 each | Personalized result only |
| Recognized toxic ingredient | Automatic F | Numeric score capped at 9 |
The score is clamped to 0–100. Letter thresholds are A at 90 or above, B at 80–89, C at 70–79, D at 60–69, and F below 60 or whenever a toxic rule is triggered.
What the grade does not measure
The grade does not test the food, inspect a factory, confirm nutrient concentrations beyond the label, predict digestibility, prove ingredient sourcing, or determine whether the diet is medically appropriate. It is a consistent label-screening heuristic, not a clinical nutrition standard.
Does AI decide the DogDish grade?
No. AI may normalize messy OCR output and produce a plain-language explanation, but the versioned rules engine calculates the grade. The application and server share the same grading code.
OCR and product extraction can still make mistakes. Users should compare the extracted record with the package, especially when a result contains a severe flag or appears inconsistent with the label.
How does recall matching work?
DogDish ingests and normalizes supported government recall feeds. Matching compares product identity fields and can use brand, product description, region, and available code information. Every displayed recall retains a source URL.
A candidate match is not a final determination. Users should open the official notice and verify the exact package size, lot or batch, best-by date, distribution region, and current recall status. Supported and configured sources can include FDA or openFDA in the United States, the Food Standards Agency in the United Kingdom, the EU Rapid Alert System for Food and Feed, and Food Standards Australia New Zealand.
What are the important limitations?
- Catalog records can be old or incomplete; packaging can change before databases do.
- OCR can omit text, merge lines, or misread characters.
- An ingredient name alone does not disclose dose, bioavailability, supplier quality, or manufacturing controls.
- Ingredient-list heuristics cannot replace a complete nutritional assessment.
- Recall matching may miss an item or produce a candidate that does not include the user’s lot.
- Dog-specific needs can make a generally acceptable food unsuitable for one animal.
How is the methodology maintained?
Scoring constants live in one versioned rules object. A policy change requires a model-version change so results can identify the rule set used. Reference-list and parsing changes are reviewed with tests in the shared grading package before deployment.
DogDish favors primary regulator material for public factual guidance, dates material updates, separates observed label facts from scoring judgments, and publishes corrections on the affected page. Questions, edge cases, and correction requests can be sent to hello@dogdish.app.