Nutrition label analyzer
There is a word on the front of the pack and a table on the back. Whether the two agree is measurable: "low fat" is not a marketing phrase but under three grams per 100 in a solid product, and because that line is written as a number in EU regulation, whether the pack keeps its word is a matter of arithmetic rather than argument. Enter the table from the back below, and we will work out which claims the product may carry, what colour four nutrients get, and how many calories the whole pack holds.
Per serving
15 g · Portions per pack: 26.7
The portion as a share of the daily reference intake
- Energy4.0%
- Sugars9.4%
- Saturates7.9%
- Salt0.3%
- Whole pack2,156 kcal · 108%
You do not have to retype the same product after every shop: scan the barcode in FitDex and the label is stored once, so on later days picking the portion is enough.
Which claims may this product carry?
Every phrase on the front of a pack — "low fat", "high protein" — has a numeric meaning, and if the numbers do not meet it, the phrase may not be printed. The rows below are the thresholds from the Annex to EU Regulation 1924/2006, compared against the table you entered.
| Claim | Threshold | Status |
|---|---|---|
| Low energy | ≤ 40 kcal | May carryMay not carry |
| Low fat | ≤ 3.0 g | May carryMay not carry |
| Fat-free | ≤ 0.5 g | May carryMay not carry |
| Low saturated fat | ≤ 1.50 g · ≤ 10% kcal | May carryMay not carry |
| Saturated fat-free | ≤ 0.1 g | May carryMay not carry |
| Low sugars | ≤ 5.0 g | May carryMay not carry |
| Sugar-free | ≤ 0.5 g | May carryMay not carry |
| Low salt | ≤ 0.3 g | May carryMay not carry |
| Very low salt | ≤ 0.1 g | May carryMay not carry |
| Source of fibre | ≥ 3 g · ≥ 1.5 g/100 kcal | May carryMay not carry |
| High fibre | ≥ 6 g · ≥ 3 g/100 kcal | May carryMay not carry |
| Protein source | ≥ 12% kcal | May carryMay not carry |
| High protein | ≥ 20% kcal | May carryMay not carry |
Traffic-light thresholds
These thresholds set the colour of the four badges above; the source is the UK front-of-pack labelling guidance. The liquid column is half the solid one, because nobody drinks 100 grams of a beverage. For products with a portion over 100 grams, per-portion red thresholds also apply: 21 g fat, 6 g saturates, 27 g sugars, 1.8 g salt.
| Food | Low (solid) | High (solid) | Low (liquid) | High (liquid) |
|---|---|---|---|---|
| Fat | ≤ 3.0 g | > 17.5 g | ≤ 1.5 g | > 8.8 g |
| Saturates | ≤ 1.5 g | > 5.0 g | ≤ 0.8 g | > 2.5 g |
| Sugars | ≤ 5.0 g | > 22.5 g | ≤ 2.5 g | > 11.3 g |
| Salt | ≤ 0.30 g | > 1.50 g | ≤ 0.30 g | > 0.75 g |
The daily reference intakes are fixed too, and the percentages printed on labels come from these divisors: Energy 2,000 kcal · Fat 70 g · Saturates 20 g · Carbs 260 g · Sugars 90 g · Protein 50 g · Salt 6 g. These are not a recommendation but a common denominator: a fixed divisor chosen so labels can be compared with one another. Your own requirement does not come from here.
How is it calculated?
The numbers you enter come from the label's per-100-gram column (per 100 millilitres for liquids), and the tool turns them into three columns: per 100 grams, your portion, and the whole pack. The third appears on no packaging. Yet it is the number that matters to anyone who finishes the jar in a week. In the sample product a 15-gram portion is 81 calories; the whole 400-gram jar is 2,156.
The claim check rests on the thresholds in the Annex to EU Regulation 1924/2006. Each of the thirteen claims has a numeric meaning — "low fat" is 3 grams per 100 for solids, "high protein" means at least 20% of the energy coming from protein — and your table is compared against them one by one. "Reduced" and "light" are not on the list, because both require at least a 30% cut against a reference product and cannot be measured from a single label.
The traffic-light colours come from the UK front-of-pack labelling guidance and cover four nutrients: fat, saturates, sugars and salt. The thresholds for liquids are half those for solids, because nobody drinks 100 grams of a beverage. For products with a portion over 100 grams, per-portion red thresholds also apply — and they can only turn a light red, never the other way: you cannot reach green by shrinking the portion.
The consistency row compares the energy printed on the label with the energy computed from the macros: 4 calories per gram of protein and carbohydrate, 9 for fat, 2 for fibre. In the sample the sum gives 533 calories against the 539 declared; a 1.1% gap is within rounding. The warning appears once the gap passes 5%.
Trans fat is not asked for, because EU labels are not required to declare it. The regulation's "low saturated fat" threshold looks at saturates and trans fat together; as this tool can only count saturates, the check errs in the product's favour. Salt is asked for as salt rather than sodium, exactly as it appears on the label; the regulation's 0.12 grams of sodium corresponds to 0.3 grams of salt.
The percentages divide by the reference intakes: 2,000 calories, 70 grams of fat, 20 grams of saturates, 90 grams of sugars, 6 grams of salt. These are not a recommendation but a common denominator — fixed divisors chosen so labels can be compared with one another. Your own calorie need does not come from here; it comes from the calorie calculator.
How to read your result
Read the per-100-gram column first, not the portion column. The manufacturer picks the portion. A small one makes any product look harmless: in the sample, a 15-gram portion is 81 calories — a figure that says nothing on its own. The same product is 539 calories per 100 grams. That is where its colour shows.
Then read the pack row, the number you will not find anywhere else. The 400-gram jar holds 2,156 calories, 108% of the daily reference, across 26.7 portions. Anyone who finishes that jar in a week is adding 308 calories to breakfast every day.
The rows marked "may carry" in the claim table are the words the product could legally print on its packaging. The sample product has exactly one: low salt. That the only true claim on a product with three red lights is about salt shows what claims are for: a claim can be true and still not make the product good, because the manufacturer prints whichever of the thirteen thresholds it clears and never mentions the ones it misses. The word on the front is the single axis on which the product looks best.
Look closely at the rows sitting near a threshold. At 0.107 grams of salt, the sample misses "very low salt" by 0.007 grams. That is no accident. Formulations tend to land just under or just over a threshold, because the threshold is a marketing boundary and trimming a tenth of a gram buys the right to print a new word on the pack, which makes it a cheap investment. The difference between two products on the same shelf is sometimes a tenth of a gram.
If the consistency warning appears, there are two possibilities. Either the table has a typo — more common than you would think — or part of the carbohydrate is polyol, a sugar alcohol worth 2.4 rather than 4 calories a gram, which this sum overcounts. The second is routine in sugar-free gums and diet chocolate; there the warning is information, not an error.
What the tool checks is the numbers printed on the label, not the product itself. Additives, sweeteners, how processed it is and how well the portion satisfies you all fall outside that table. It measures what is measurable. It does not pretend to measure the rest.
Frequently asked questions
My label has two columns — which one do I enter?
Enter the per-100-gram column (per 100 millilitres for liquids); that column is mandatory across the EU and appears on every pack. The second column shows per-portion values, and since the manufacturer chooses the portion, it cannot be compared between products. You enter the portion separately in the form anyway, and the tool recomputes that column for you. Entering the wrong column is the most likely user error on this page, and it shifts every result.
The pack says "low fat" but the tool says it does not qualify.
Three possibilities. The most common is that you entered the wrong column — per-portion numbers are smaller than per-100-gram ones, so the thresholds do not line up. Second, the word on the pack may fall outside this regulation: "light" and "reduced fat" mean at least a 30% cut against a reference product, and since that cannot be measured from one label they are not on the list. Third, the claim may follow a non-EU rule. What the tool says is narrow and exact: the numbers you entered do not meet the EU threshold.
Are traffic lights mandatory in my country?
No. The traffic light comes from the UK's voluntary front-of-pack guidance; it is not mandatory across the EU and appears on many packs not at all. It is used here because its thresholds are public, numeric, and place a product at a glance. A red light does not mean "do not eat"; it means "there is a lot of this per 100 grams, watch how often". The colour is a scale, not a ban.
My label has no fibre row — what should I enter?
Leave it at zero. Fibre is not a mandatory declaration in the EU — a manufacturer prints it if they choose, and the sample product does not. Leaving it empty has two consequences: the "source of fibre" and "high fibre" claims naturally cannot be met, and the consistency check cannot count the calories fibre contributes, so the computed energy comes out slightly low. In a fibre-rich product that gap is only a few calories and stays under the 5% warning line.
Related tools
- Food swap calculatorWhat do you gain by replacing something you eat with a lighter alternative at the same weight? 80 foods, computed at your own portion. The difference: it marks the swaps that cut calories without cutting protein and fibre.
- Cups to grams converterCups, spoons, slices, handfuls — all converted to grams and calories. The difference: every food is computed with its own density, because a cup is a volume, not a weight. The same 200 ml glass holds 6.6 g of popcorn and 282 g of honey.
- Macro calculatorTurn your daily calorie target into grams of protein, carbohydrate and fat. We publish the ratio we use and why we chose it, instead of offering preset templates with no explanation.
- Meal plate builderEnter a calorie target and a protein floor, get the grams for all four zones of the plate. It runs backwards: you give the total, the tool solves the grams. It also shows how much room is left for the grain when you change the protein source.
This tool is for information only and is not a substitute for medical diagnosis or treatment. Talk to a healthcare professional before making a lasting change to how you eat.