How GreenCheck grades food
GreenCheck grades a product twice. First the product itself: every ingredient gets a toxicity rating from 1 to 10, and those combine into a single product score that maps to BEST, GOOD, CAUTION or AVOID. Then that band is re-decided for your specific child, where a matched allergen or medical condition overrides it to AVOID outright.
This page is the complete method. It is deliberately specific: a grade that tells you to avoid a named product should be something you can check, argue with, and hold us to.
What the four grades mean
Step 1: every ingredient gets a toxicity rating
We read the product's ingredient list — from the barcode via OpenFoodFacts, or from a photo of the label — and rate each ingredient from 1 (safest) to 10 (worst).
Ratings come from an AI analysis pass, but the source links attached to each ingredient are added by our servers, not generated by the model. That distinction matters: a model can produce a plausible-looking citation that doesn't exist, so citations are never left to it.
Step 2: ingredients combine into a product score
The ingredient ratings don't simply average. Averaging lets one bad ingredient hide behind a long list of harmless ones — which is precisely backwards for food safety. Instead, higher-rated ingredients are weighted disproportionately, and the combination is penalised in three ways:
- A count factor. Past seven ingredients, longer lists are penalised. This is a deliberate proxy for processing.
- A cumulative penalty, which grows with the number of high (7+) and moderate (4–6) ingredients, so several mediocre additives don't get a pass.
- A synergy penalty on long lists whose average rating is already elevated.
The result is normalised onto a 1–10 product score.
These constants are a faithful port of the original GreenCheck algorithm and are covered by golden tests, so a product graded in the old app grades the same way here. They aren't tuned to make results look better.
Step 3: the score becomes a band
| Product score | Band |
|---|---|
| 1.0 – 2.0 | BEST |
| 2.1 – 4.0 | GOOD |
| 4.1 – 6.0 | CAUTION |
| 6.1 – 10.0 | AVOID |
This is the toxicity-only band. For a child with no allergies, conditions or preferences set, this is the final grade.
Step 4: the band is re-decided for your child
This is what makes a GreenCheck grade different from a generic score. The same product can be BEST for one sibling and AVOID for another, in the same scan.
Allergens always win
If any of your child's allergens is detected, the grade is AVOID — full stop. Not a downgrade, not a warning. This overrides everything else, including an otherwise perfect ingredient list.
Detection runs in two passes: first the structured allergen tags from OpenFoodFacts, then a keyword match against the ingredient text. Crucially, any "Contains:" or "may contain" advisory we can read is folded into that same text — so a bar whose ingredients say only "sugar, cocoa" but whose label says "Contains: milk" still comes back AVOID for a milk-allergic child.
Medical conditions
Conditions hard-block the same way allergens do. Some reuse the allergen matchers — celiac checks the wheat matcher plus barley, rye, malt and oats; eosinophilic esophagitis checks the full set of common triggers. Others match ingredients directly, like PKU blocking aspartame and phenylalanine. A few use nutrition thresholds, like the diabetes check on sugar per 100g.
Age
Age rules run in the same engine. Honey hard-blocks for any child under 12 months, because of infant botulism risk — the one age rule that behaves like an allergen rather than a preference.
Preferences
Preferences are different by design: they downgrade by one band and never force AVOID. A product that conflicts with three preferences still drops only one band. "No added sugar" is a value judgement; a peanut allergy is not, and the grading treats them differently.
Why we bias toward false positives
Our allergen matching is deliberately aggressive. It will occasionally flag a product that turns out to be fine.
That's a choice, and it's not a close one. The cost of wrongly flagging a safe snack is a parent double-checking a label. The cost of missing a real allergen is an emergency room. When the matcher is unsure, it flags.
What a grade is not
- It is not a nutrition score. A product can be BEST and still be a treat.
- It is not a substitute for the label. Manufacturers reformulate, and our ingredient data has a date on it — shown on every product page.
- It is not medical advice. It is information to help you decide.
If your child has a severe allergy, treat GreenCheck as a first filter, never the final word. Always read the physical label before giving your child something new.
Common questions
Does the same product get the same grade for every child?
Can a preference like "no added sugar" make something AVOID?
What happens if the ingredient list doesn't mention an allergen but the label says "may contain"?
Is a GreenCheck grade medical advice?
GreenCheck provides information to help you decide; it is not medical advice. Always read the product label and consult a professional for allergy and medical decisions.