Methodology

How the Grain Score is calculated.

A score is a starting point, not a verdict. This page sets out the rules behind it: the inputs, the main weights and the assumptions. One set of rules produces every score in the app: a food and drink engine, plus engines for beauty and personal care, supplements, feminine care and household products. When the rules change, this page changes with them.

Last updated September 23, 2026.

Food and drinks: two parts, one number.

Nutrition quality: 60%

A points system in the style of Nutri-Score: energy, sugar, saturated fat and sodium count against a product; fiber and protein count for it. Details in the next section.

Ingredient quality: 40%

Starts at 100. Additives in published evidence tiers and signs of heavy processing take points off; a short list of health-positive ingredients adds a few. Details below.

What a score is measured against. Solid foods are scored per 100 g. Grain divides the label's nutrition values by the serving's weight: the declared weight, or a declared volume or kitchen measure (like "½ cup") converted with a known density for that food. When a solid's label gives only a count, like "1 bar" or "3 cookies", Grain uses a typical portion for that kind of food, based on the FDA's reference amounts, and marks the score as based on an estimated serving. If it can't tell what kind of food it is, the product is "Not rated" rather than given a made-up serving. That way a small serving size can't make a product look better than what's in it. One exception, for now: when a label declares a serving under 1 g, like a pinch of spice, that serving's nutrition is scored as printed. Drinks are scored per serving, because that's what you drink, on a stricter sugar scale with a cap on sugar per 100 ml; a drink powder you mix yourself is scored per 100 g like a solid. When a drink's label gives no usable serving, Grain uses the FDA's reference amount for that kind of drink and marks the score as based on an estimated serving.

score = nutrition × 0.60 + ingredients × 0.40
        (a simple whole food with no nutrition label: 0.10 / 0.90)
then    floors: simple whole foods never below 78,
                clean-ingredient products never below 55
then    caps: drinks with no ingredient list (section 4);
        alcohol and tobacco are not rated

The nutrition side.

Solid foods. Per 100 g, energy, sugar, saturated fat and sodium each earn 0 to 10 points against the product, on the thresholds of the original Nutri-Score, before its 2023 update (sugar, for example, earns a point for every 4.5 g, up to 10 points at 45 g). Fiber and protein each earn 0 to 5 points for it. That gives 80 minus twice the difference. Protein doesn't count when the negatives are already high, unless the product is high in fiber or is a lean, high-protein food.

Three deductions can lower it further. When added sugar supplies 22%, 30% or 45% of the calories, 10, 22 or 40 points come off; for solid foods this applies only at 240 kcal per 100 g or more, and not to a sweetener sold on its own. For a product that also contains a hazardous or moderate additive, saturated fat of at least 3 g supplying 20% or 35% of the calories costs 15 or 25, and sodium of at least 300 mg at 2 mg or more per kcal costs 10. The nutrition score never goes below 0.

Added sugar counts in full. When a label declares added sugar, the rest of the sugar (the sugar that's naturally in fruit or milk) counts at 30%. Salty condiments used in small amounts, like soy sauce, miso or bouillon, are judged on the sodium in a real serving against the daily value, not per 100 g.

Drinks. A drink's nutrition score starts from its sugar per serving: water and unsweetened drinks with 10 kcal or less score 92, up to 5 g of sugar 78, up to 12 g 55, up to 20 g 30, and above that 8. More than 150 kcal a serving costs another 8 points, and more than 90 kcal with 12 g of sugar or less costs 5. When the label declares added sugar and a serving has at least 50 kcal, a further 10, 22 or 40 points come off as added sugar reaches 22%, 30% or 45% of the calories, so a full-sugar soda that declares its added sugar scores 0 on this side. When Grain knows the serving's volume, either the ml or fl oz on the label or the FDA reference amount it falls back on, a drink with 8 g of sugar or more per 100 ml can't score above 8 on this side, whatever the serving size, and one with 4.5 g or more can't score above 55. A serving given only as a count, like "1 can", or in grams has no volume to check, so this cap doesn't apply to it. A drink with almost nothing in it (5 kcal or less and 1 g of sugar or less per 100 ml, with almost no protein, saturated fat or fiber) gets a nutrition score of 25 instead of the sugar-based score if its ingredients include aspartame, sucralose, acesulfame, saccharin, cyclamate or neotame, E-numbers included. A sweetened drink that also has sugar, protein or calories is scored on the sugar scale above.

The ingredient side.

Every ingredient is matched against Grain's tiers. E-numbers and ingredient names in German, French, Spanish and Italian are translated first, so a label that says "E621" scores the same as one that says "monosodium glutamate".

Hazardous: −25 each

Also caps the ingredient side at 35. Nitrites and nitrates (including "natural" sources such as cultured celery powder), potassium bromate, propyl- and butylparaben, ethoxyquin, titanium dioxide, brominated vegetable oil, azodicarbonamide, partially hydrogenated oils, Red 3, the named synthetic dyes (Red 40, Yellow 5 and 6, Blue 1 and 2, Green 3, and their E-number forms), artificial colors and flavors, sulfite preservatives, diacetyl, olestra, and banned supplement stimulants such as DMAA and ephedra.

Banned from food: another −55

Additives that a major regulator has banned from food outright take an extra 55 points: titanium dioxide, potassium bromate, azodicarbonamide, brominated vegetable oil and Red 3.

Moderate: −10 each

High-fructose corn syrup, sodium benzoate, BHA, BHT, TBHQ, aspartame, acesulfame, sucralose, saccharin and other high-intensity sweeteners, erythritol, carrageenan, polysorbates, PGPR, carboxymethylcellulose, sodium and potassium phosphate additives (charged once however many are listed), Class III and IV caramel color, and maltodextrin.

Limited: −4 each

Dextrose, corn syrup, mono- and diglycerides, MSG and related flavor enhancers, yeast extract, methylcellulose, cellulose gum, potassium sorbate, EDTA, vanillin, calcium phosphates and generic caramel color. An ingredient listed only by a compound name with no breakdown, such as "BBQ sauce", costs 5, up to 15.

Processing (foods only): up to −44

Refined flour near the top of the list costs 16 as the first ingredient, 8 as the second or third, and 4 after that, unless the label says whole grain. Industrial ingredients that mark a product as ultra-processed, such as glucose syrup, emulsifiers, gums, flavorings and modified starch, cost 4 each, up to 16. Added sugar as the first ingredient costs 12, as the second or third 6. Drinks don't take this deduction; their sugar is scored on the nutrition side instead.

Clean bonus: +3 each, up to +15

A short list of health-positive ingredients, not basic staples: olive and avocado oil, rolled oats, whole wheat, quinoa, brown and wild rice, lentils, chickpeas, black beans, chia, flax and hemp seed, nut butters, cocoa, collagen, whey and pea protein, among others.

Palm and palm kernel oil: −15

Charged for their saturated fat (about 50% in palm, 85% in palm kernel), The charge is dropped when the label shows 1.5 g of saturated fat or less per 100 g (per 100 ml for drinks), and it still applies when the label doesn't give saturated fat. Refined palm costs 15 and caps the ingredient side at 35. When the list says "organic palm oil", "expeller pressed palm oil" or "cold pressed palm oil", it costs 5 and doesn't trigger the cap.

Refined seed oils: no deduction

Sunflower, canola, soybean, corn and similar oils are shown on the product page and trigger your avoid list if you've added them, but they don't lower the score. No regulator classes them as hazardous. A product that contains one doesn't qualify for the floors in the next section.

Vague labels. A label that says only "flavouring", with no detail, caps the ingredient side at 66; one that says only "colour" caps it at 35, or at 68 on US and Canadian products, where that general word is the form the law requires.

The AI cross-check. Grain's AI explains every ingredient on a label. When it rates an ingredient that the tiers above don't cover as one to avoid, the ingredient side is capped at 49, and 7 lower for each further one, down to 20. When it rates one as caution, the cap is 100 minus 12 for each, down to 45. Ingredients the tiers already charge are never counted twice this way.

Some common ingredients are deliberately not treated as ingredients of concern, such as citric acid, xanthan gum, soy lecithin and natural flavors, because the evidence doesn't support it. Several of them still count toward the processing charge above.

Floors, caps and "Not rated".

Simple whole foods: never below 78

Three ingredients or fewer, none hazardous or moderate, no seed oil, and no added sugar in a multi-ingredient list: plain oats, nuts, rice, frozen fruit. A limited-tier additive such as yeast extract or potassium sorbate, or a vague label, doesn't disqualify a product. Their nutrition side is also kept at 75 or more (79 or 83 for high-protein foods), so nuts and olive oil aren't punished for being dense. Drinks, cured meats, single-ingredient salt or sugar, and very salty foods (900 mg of sodium per 100 g or more) with almost no fiber or protein don't qualify.

Clean-ingredient products: never below 55

No hazardous or moderate ingredients, no seed oil, and at least two ingredients from the clean-bonus list.

Drinks

100% juice with no added sugar never scores below 75. A drink with at least 5 g of protein and no more than 6 g of added sugar per serving never scores below 62, as long as it has no hazardous ingredient; where added sugar isn't declared, or the declared figure contradicts the ingredients, total sugar is used instead. The floor rises to 72 at 8 g of protein and 75 at 12 g. Plain coffee and tea get a nutrition floor of 75. A drink with no ingredient list can't score above 65, and a diet soda with no ingredient list can't score above 37.

Not rated

Grain doesn't rate alcohol, tobacco, pet food or infant formula, or products whose name says they are a pesticide, insecticide, weed killer, rodenticide or bug killer. Disinfectants, and pest-control products that aren't named that way, are rated as household products, capped at 40 (55 for rinse-off products) when the label carries a pesticide registration or a pesticidal ingredient. A food is also "Not rated" when its nutrition label is missing, can't be trusted or has only been estimated, or when the text stored as its ingredient list turns out to be package copy rather than a list. A simple whole food is still scored without a nutrition label, and a food with a nutrition label but no ingredient list is scored and marked provisional. Beauty, supplement, feminine care and household products with no ingredient list, or only an estimated one, are "Not rated" too. Photographing the label can fix the missing-label case.

Earlier versions of Grain capped scores by added sugar, sodium and saturated fat per serving. Scoring solid foods per 100 g made those caps unnecessary, and they were removed.

A worked example.

A sweetened corn-flake cereal (illustrative). Its label says: milled corn, sugar, malt flavor, salt, BHT added for freshness. Per 40 g serving: 150 kcal, 13 g added sugar, 190 mg sodium, 1 g fiber, 2 g protein.

Nutrition. Per 100 g that's 375 kcal, 32.5 g sugar, 475 mg sodium, 2.5 g fiber and 5 g protein. The negatives are high enough that protein isn't counted, which gives 54. Added sugar supplies about 35% of the calories (32.5 g × 4 kcal of 375 kcal), which costs another 22. Result: 32.

Ingredients. BHT is in the moderate tier (−10), and sugar is the second ingredient (−6). Result: 84.

Score. 32 × 0.6 + 84 × 0.4 = 52.8, rounded to 53. No floor or cap applies, so the app shows 53, "Okay".

These are the numbers Grain's scorer returns for exactly these inputs.

Score Facts

Sweetened corn-flake cereal (illustrative)

Scored per100 g

Label serving 40 g: 150 kcal, 13 g added sugar, 190 mg sodium

Nutrition quality60% of the score
32
Ingredient quality40% · BHT −10 · sugar second −6
84
32 × 0.6 + 84 × 0.4
52.8
Floors and caps
none

Grain Score53 / 100 · Okay

Food scores read Excellent from 85, Good from 70, Okay from 50, Low from 30, and Poor below that.

Your settings sit on top.

The score is a fact about the product. It's the same for everyone, and it's the number every screen shows. Your allergies, the ingredients you avoid and the certifications you prefer are applied on your phone, on top of it. If they move the number, the app shows the change next to the score, labelled as yours, and the breakdown says which setting moved it.

If a product contains an allergen in your profile, Grain doesn't adjust anything: it flags the product. People you add to your household are checked the same way, on your phone, and never change the score. Your health profile is never used to calculate the score itself.

Beyond food: the other four engines.

Beauty, feminine care and household products start at 100 and lose points for the ingredients of concern Grain recognizes; once anything is flagged, the score also weighs the beneficial ingredients it recognizes, so those can earn some points back. Supplements are built up instead, from formulation, purity and third-party testing, so a label with nothing flagged can still land below 100. Either way, these scores mostly describe what Grain recognized on the label, not how good a product is. 85 and up reads "No flags" only when Grain found nothing to flag; if it found a caution or avoid ingredient, or a supplement dose above an established upper limit, a score of 85 or more reads "Minor flags" instead. Below 85 the wording is "Minor flags", "Some flags", "Many flags" and "Serious flags" at the same 70, 50 and 30 steps as food. Each of these scores carries the note "Recognized ingredients only, not a safety or effectiveness rating".

Beauty and personal care

Ingredients of concern are grouped by evidence into avoid and caution tiers and weighted by exposure: rinse-off products like soap and shampoo take half the penalty of leave-on ones. Grain tells them apart by the product's name, and a leave-on word such as lotion, serum or moisturizing takes precedence. Whether an ingredient clogs pores isn't part of the score; if your profile says acne-prone or oily skin, pore-clogging and heavy oils count against leave-on face products in your personal adjustment. Beneficial ingredients earn credit. Several caution ingredients, whether from Grain's tiers or flagged by its AI, cap the score at 80 (three), 74 (four) or 68 (five or more). Loose talc you could inhale is a top-tier precaution; pressed talc isn't. A product with no ingredient list isn't given a score: it shows "Not rated" until a label photo or a database record supplies the list.

Supplements

Judged on formulation, purity and third-party testing. NSF, USP and Informed Choice or Informed Sport seals count in a product's favour. A dose above an established upper limit takes 10 to 60 points off the product's purity sub-score, depending on how far above the limit it is; purity makes up 40% of a supplement's score. A "proprietary blend" that hides its doses loses points. A pill whose label lists no fillers at all is treated as incomplete data, not as clean.

Feminine care

The beauty rules with a weight for how the product is used: penalties count 1.5 times for internal products such as tampons, cups and douches, and fragrance in an internal product is a top-tier concern. Douches can't score above 40, following ACOG and CDC advice against douching. Products that don't list their materials show "Not rated" instead of a score.

Household products

Weighted by exposure: sprays and air fresheners 1.5 times, rinse-off products 0.6, products that leave a residue 1.1. Cleaning brands don't have to publish full formulas, so disclosure counts: a label that lists only ingredient types ("surfactants, preservative") is capped at 52, and the cap rises to 58, 68, 78 and 88 as the label names more of its ingredients. Products that declare a severe hazard, and corrosive or pesticidal products, have lower caps. Every hazard flag names its source: the EU's CLP classification (ECHA), asthmagen lists, IARC and NTP, or the EPA's Safer Choice program.

Grain's stances.

Most tiers follow regulators and published evidence. A few rules are Grain's own judgement calls. The app labels them as stances, and so does this page:

  • Synthetic dyes and artificial flavors are in the hazardous tier. That's a precautionary clean-label position with regulatory momentum behind it (EU child-attention warning labels, dyes under FDA review), not a claim of proven toxicity.
  • Refined seed oils are shown but not scored. They used to be penalized. The evidence doesn't support that, so the penalty was removed; Grain still shows them so you can avoid them if you choose.
  • Palm oil is charged for its saturated fat, not as a category.
  • Loose talc and douches carry precautionary caps. They're framed as precautions, never as proven harm.

Sources and checks.

Cited, or honestly empty

Ingredient entries in the app link to primary sources such as EFSA, the FDA, IARC, NTP and the WHO. Where no authority source exists, the list stays empty rather than padded.

Two regulators, six regions

Grain holds ingredient status data from the US FDA and the EU (EFSA for food, the SCCS for cosmetics). You can choose the United States, the European Union including Ireland, the United Kingdom, Switzerland, Canada, or Australia and New Zealand. The UK and Switzerland see the EU status, labelled as such; Canada, Australia and New Zealand see the FDA status as the closest reference. Country-level bans are listed for every region. Cleaning products and period products don't have regulatory status in Grain yet. The score is the same in every region.

AI, checked against search where it matters

When Grain's AI fills in a product that isn't in any database, fact-checks product data, or looks up research for an Ask Grain answer, it runs a live web search, and a product the search can't find any source for is treated as a red flag, not presented as fact. Other AI text, such as product overviews and chat replies about a product, is written from the product's record without a search. AI output is labelled as AI in the app and can be wrong.

Credited open data

Part of the catalogue comes from Open Food Facts. Its product data is used under the Open Database License (ODbL 1.0); its product photos are used under CC BY-SA 3.0, credited to Open Food Facts contributors. Products imported from USDA FoodData Central may show an Open Food Facts name and photo, but only when both records carry exactly the same barcode and agree on the brand, or on the product name when a brand is missing. The full matching method is in our Terms. Photos stored in Grain's own catalogue also pass an automated quality check before they're shown.

What changed, and what we don't know.

Changes since the July 2026 version of this page: solid foods are scored per 100 g instead of per serving; the per-serving sugar, sodium and saturated-fat caps were removed; the separate processing deduction became the processing charge on the ingredient side; refined seed oils are no longer penalized, and palm oil is no longer charged when the label shows the product is low in saturated fat (1.5 g or less per 100 g); 100% juice now has a floor instead of a cap; foods without a usable nutrition label, and beauty, feminine care, household and supplement products with no ingredient list, show "Not rated" instead of a provisional score; beauty products that list only "fragrance" or "parfum", without naming the allergens in it, lose 6 points; and non-food scores use the "No flags" to "Serious flags" wording.

Nutrition science isn't settled, regulators disagree, and brands change recipes without notice. The Grain Score is an estimate built from public data and published rules, with AI filling gaps, and it will sometimes be wrong. When an ingredient is genuinely contested, the app says it's a stance, not settled science.

Not medical advice. Always read the label, and talk to a qualified professional about health decisions.