GreenCheck

How GreenCheck grades food

Updated July 15, 20263 min read
The short answer

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

BESTClean pick — great choice for this child.
GOODSolid option with only minor concerns.
CAUTIONSome flagged ingredients — use in moderation.
AVOIDNot recommended for this child.

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:

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 scoreBand
1.0 – 2.0BEST
2.1 – 4.0GOOD
4.1 – 6.0CAUTION
6.1 – 10.0AVOID

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

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?
No, and that's the point. The product-level score is identical, but the final band is decided per child. A cereal bar containing almonds can be BEST for one sibling and AVOID for another in the same scan.
Can a preference like "no added sugar" make something AVOID?
No. Preferences only ever downgrade a product by one band, and only one step no matter how many preferences a product conflicts with. Only allergens, medical conditions and the honey age rule can force AVOID.
What happens if the ingredient list doesn't mention an allergen but the label says "may contain"?
The advisory wins. Any "Contains" or "may contain" line we can read is folded into the same matching text as the ingredients, so an allergen named only in the advisory still forces AVOID.
Is a GreenCheck grade medical advice?
No. It is information derived from published ingredient data using the method on this page. It does not replace reading the label or talking to your pediatrician or allergist.

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.