How a LabelSaaf score is calculated
A LabelSaaf score is a number from 0 to 100 worked out from the nutrition table printed on the pack, per 100 g or per 100 ml. Nutrients that count against a food — sugar, sodium, saturated fat, energy — earn negative points on fixed ladders. Nutrients that count for it — fibre, protein, and fruit, vegetable or legume content — earn positive points. The difference decides a band, and the score is the position inside that band. The same rubric runs on every pack, and every verdict shows the points it used.
The five bands
A score always falls into one of five bands. The band is decided first, from the points; the 0–100 number is interpolated inside it and never moves a pack from one band to another.
What moves a score down
Each of these is a step ladder, not a curve. A pack lands on a rung and takes that rung's points, so two packs a gram apart can score the same and a pack a gram over a threshold takes one more point.
Sugar — 0 to 15 points
Read from total sugarsper 100 g, not added sugars. The first rung is 3.4 g and the ladder runs in roughly 3–4 g steps to 51 g, above which everything takes the full 15. Total is the right input because it is what the ladder was calibrated on: a juice at 9 g total and 0 g added would otherwise score as though it contained no sugar at all.
Added sugar is used separately. Above 10 g per 100 ga pack is flagged as high in added sugar, a threshold taken from ICMR-NIN's 2024 guidance. That flag appears in the reasons; it does not double-count in the score.
Sodium — 0 to 20 points
One point per 80 mg per 100 g, starting at 80 mg and topping out at 1,600 mg. 80 mg of sodium is 0.2 g of salt, so the ladder is effectively one point per fifth of a gram of salt. Sodium carries more points than any other single nutrient, which is deliberate: it is the nutrient Indian packaged food is most consistently high in.
Saturated fat — 0 to 10 points
One point per gram per 100 g, from 1 g to 10 g and above. For fats and oils the calculation switches to the share of energy coming from saturated fat, because a ladder in grams would put every oil on the top rung and tell you nothing about which oil.
Energy
Energy is scored in kilojoules per 100 g, on its own ladder, with a separate one for drinks. It stops a pack from scoring well purely by being low in one nutrient while being very energy-dense.
What moves it up
Fibreearns up to 5 points, from 3.0 g per 100 g, with a point roughly every 1.1 g to 7.4 g. Protein earns up to 7 points, from 2.4 g, with the higher rungs at 9.6, 12, 14 and 17 g. Fruit, vegetable and legume content earns points where a pack declares it, which most Indian packs do not.
Positive points are capped in one specific case: a food heavy in the negatives cannot buy its way back with protein alone. Otherwise a salty fried snack with a good protein figure would out-score a plain one, which is not what a shopper is asking.
Why the ladders are European and the cut-offs are not
The point ladders are ported from Nutri-Score 2023, the algorithm behind the front-of-pack label used across Europe. That part is well studied and there is no reason to invent a rival.
The cut-offs— the raw point totals where one band becomes the next — are ours, and they are different on purpose. Nutri-Score's cut-offs are calibrated on European diets and European shelves. Applied unchanged to Indian packs they were measurably wrong, and we measured it:
- a mean signed error of −18.4 against a corpus of packs scored by hand, meaning the European cut-offs were systematically harsher than a careful human reading the same label;
- 33.8% of a large sample of Indian products landing in the bottom band, which tells a shopper nothing because it does not separate anything;
- the top band structurally unreachable for all 553 beverages in that sample — no drink sold in India could have earned it, including water-like ones.
So the ladders stayed and the cut-offs were re-fitted against packs actually sold here. Drinks are a partial exception: the corpus has no clean drink between two raw scores, so those boundaries are still the European anchor rather than a fitted number, and we would rather say so than publish a figure nothing supports.
Drink powders: the milk is not in the number
A malted drink powder is scored per 100 ml of the prepared drink, and the prepared drink here is the powder only, diluted into the cup. Whatever you add — milk or water — contributes nothing to the figure.
This is a stated limit, not an oversight. Scoring the milk would mean asserting which milk you used, and toned versus full-cream moves saturated fat enough to change the answer. We would be scoring a pack nobody photographed. Two consequences follow, and both are printed on the verdict rather than left to be discovered: the score is a floorfor anyone using milk, and “made with milk” and “made with water” produce the same number.
When the pack does not print its own serving and we assume a cup size, the score is marked provisional and shown as a range scored at both ends of the assumption.
Versioned, and never re-scored quietly
Every verdict carries the rubric version that produced it. When the rubric is tuned, saved scans keep the number they were given and the change is shown rather than applied silently. A score that moves without explanation is worse than no score.
What the score is not
- Not personalised. It is a property of the pack, not of you. Preferences change what is highlighted, never the number.
- Not for sale. No brand can pay to change a score or to appear as an alternative.
- Not medical advice. Scores are computed from published thresholds. They describe a label, not a diet, and not a condition.
- Not a judgement in words.A reason line says “680 mg sodium per 100 g — 34% of the FSSAI daily reference”, never “dangerous”. The number is the claim.
Common questions
Is 60 a good score?
60 is the bottom of okay in moderation — fine in the amounts you would normally eat, worth a glance at the serving size. It is not a pass mark. The band matters more than the number, because the number only positions a pack inside its band.
Why does ghee score low when it is traditional?
Because the rubric reads saturated fat per 100 g and ghee is around 65–68 g of it. The score is about the composition of the food, not its cultural standing or how much of it you use. A spoonful in a week and a spoonful a day are the same pack and a different diet, and the pack is the only thing a label can tell you about.
Is this Nutri-Score?
The point ladders are. The bands are not — see the cut-offs section above. A pack can therefore sit in a different band here than a European Nutri-Score letter would suggest, and that difference is the whole point.
What if the pack does not print a row?
A missing row is not always a bad label. Indian rules require saturated and trans fat only above a fat threshold, so a low-fat pack that omits them is compliant. Where a nutrient the rubric needs is genuinely absent, the score is capped rather than guessed, and the verdict says which row was missing.
The short version of this page, as it appears in the product, is at how we score. If you want to see the method applied to a pack in your hand, start with the label itself.
Photograph the nutrition table on a pack and get a score out of 100, with the reason behind every point.
Scan a label