For most of its life, Nutri-Score handed a zero-calorie diet cola a better letter than a bottle of extra virgin olive oil. The cola wore a B; the olive oil, in early versions, a C or a D. Both scores were later revised — the cola down, the oil up — but the mismatch is still the fastest way to understand Nutri-Score: a genuinely useful summary of a nutrition panel, produced by an algorithm that has no idea what a food actually is.
Nutri-Score is the five-color, A-to-E label printed on packaged food across much of Europe. France adopted it in 2017, building on nutrient-profiling work led by epidemiologist Serge Hercberg's team, and Belgium, Germany, the Netherlands, Spain, Switzerland, and Luxembourg followed. The label compresses a handful of per-100-gram numbers — calories, saturated fat, sugar, and salt on one side; fiber, protein, and produce content on the other — into a single letter. Dark-green A means the nutrient profile looks good. Red E means it doesn't.
Compression is the point. Front-of-pack labels exist because almost no one reads a nutrition table in a store aisle, and the World Health Organization has long encouraged simple front-of-pack labeling as a public-health tool. But compression discards information. Knowing exactly what Nutri-Score counts — and what it cannot see — is what makes the letter useful instead of misleading.
The penalty side: four nutrients, forty possible points
Everything is computed per 100 grams of product (or 100 milliliters for drinks) — never per serving. Four nutrients earn negative points, and each has a ten-step ladder: every threshold the food climbs past adds one penalty point, to a maximum of ten per nutrient.
| Penalty nutrient (per 100 g) | First point above | Tenth point above |
|---|---|---|
| Energy | 335 kJ (~80 kcal) | 3,350 kJ (~800 kcal) |
| Saturated fat | 1 g | 10 g |
| Sugars | 4.5 g | 45 g |
| Sodium | 90 mg | 900 mg |
A point is earned only when a value climbs strictly past a rung, and the rungs are close to evenly spaced, so the math is easy to eyeball: a food with 6 g of saturated fat per 100 g clears the 1-through-5 gram rungs and takes 5 saturated-fat points; one with 100 mg of sodium clears the 90 mg rung and takes 1 sodium point. A worst-case food collects 40 penalty points.
The bonus side: fiber, protein, produce
Three components pull points back off the total:
- Fiber — up to 5 points, earned above 0.9, 1.9, 2.8, 3.7, and 4.7 g per 100 g.
- Protein — up to 5 points for solid foods, earned on a ladder from 1.6 to 8 g per 100 g.
- Fruits, vegetables, legumes, and nuts — up to 5 points, starting when they make up more than 40% of the product, with further steps at 60%, 80%, and 100%.
One anti-gaming rule is worth knowing: a solid food that racks up 11 or more penalty points loses its protein credit entirely unless it also maxes the produce bonus. That stops a candy bar with added whey from buying back a better letter. The final score is simply negative points minus positive points — lower is better, and genuinely good foods go negative.
From points to letters
For solid foods, the final point total maps to letters like this:
- A — a final score of −1 or lower
- B — 0 to 2
- C — 3 to 10
- D — 11 to 18
- E — 19 and up
Notice what an A requires: the bonuses have to outweigh the penalties. Plain vegetables, legumes, and most whole foods get there easily. A cookie never will — the sugar and energy ladders bury it long before fiber can help.
Drinks play by harsher rules
Beverages get their own ladders, and they are strict by design. The energy ladder starts at zero kilojoules and the sugar ladder at zero grams — so any calories at all cost a point, and any sugar at all costs another. The sugar ladder tops out at 13.5 g per 100 ml instead of 45 g, and a regular cola climbs most of it. The letter bands shift too: the best a drink can normally earn is a B, sugary drinks land at C or worse, and only plain water gets an A.
The logic is sound: liquid calories don't fill you up the way food does, and liquid sugar hits the bloodstream fast. A 2023 update to the official algorithm added one fair carve-out — protein in beverages now earns up to 7 bonus points, so milk and protein drinks aren't wrecked by thresholds calibrated for soda.
What Nutri-Score can't see
Nutri-Score reads the nutrition panel and nothing else. That creates predictable blind spots:
- Per-100g math punishes dense whole foods. Nobody eats 100 g of olive oil or a quarter-kilo of almonds, but the algorithm judges them as if you might. Calorie-dense foods with excellent evidence behind them start deep in the penalty ladders.
- It counts saturated fat but not fat quality. Two products with identical saturated-fat grams score identically even if one is mostly monounsaturated. The system under-weights the fats with the strongest cardiovascular evidence — the core of the olive-oil complaint, and the reason fat quality deserves its own measure.
- It's blind to processing. Emulsifiers, sweeteners, colorings, and industrial reformulation are invisible to it, so a carefully engineered ultra-processed product can wear a respectable letter. That's what NOVA processing levels exist to catch.
- Sugar is sugar. In the classic algorithm, the fructose in raisins and the syrup in gummy candy hit the same ladder, gram for gram.
None of this makes Nutri-Score wrong. It makes it a specialist — very good at ranking two cereals against each other, unreliable as a lone verdict on food in general.
How Nutrication uses this
Nutrication treats Nutri-Score as one of six measures behind its A–D grade, contributing up to 30 points — second in weight only to the NOVA processing measure's 35. The letter converts to points non-linearly: A earns 30, B earns 24, C earns 16, D earns 8, and E earns 2. The steepest drops sit in the middle of the scale — B to C and C to D each cost eight points — which mirrors how the letters deserve to be read.
The app also patches the blind spots it can, directly inside its Nutri-Score calculation:
- Natural sugar isn't counted against whole foods. If a solid food is minimally processed and its ingredient list shows no added-sugar marker, its sugar takes zero penalty points — an apple's fructose costs it nothing, and the detail view says so: "natural — not counted." Drinks never get this exemption, because liquid sugar — even blended whole fruit — spikes blood glucose without the whole-fruit matrix.
- Isolated added fibers get half credit. Inulin, chicory root fiber, soluble corn fiber, and similar additives earn only half the fiber bonus, so a sugary "high-fiber" bar can't score like oats or beans.
- Missing data means no rating, not a fake one. If saturated fat, sugar, and sodium are all absent from a product's record, Nutri-Score is excluded entirely and the remaining measures re-normalize — treating unknowns as zeros would produce a falsely favorable score.
- Water short-circuits to a perfect score. Plain water is the one beverage that earns an A and the full 30 points.
The gaps that remain — processing, fat composition, additives, blood-sugar impact, micronutrients — are each covered by one of the other five measures. That division of labor is the whole design; see how we grade for the full picture.
What to actually do
- Use Nutri-Score to compare like with like — two breakfast cereals, two yogurts — not a cereal against eggs.
- Don't panic over a middling letter on nuts, oily fish, or olive oil; per-100g math runs against calorie-dense whole foods.
- Take drink letters seriously — the harsher beverage rules exist because liquid sugar is the easiest thing to overconsume.
- Flip the pack anyway: the letter plus a ten-second scan of the ingredient list beats either one alone.