How We Rate Foods: Methodology and Open Data
Updated September 30, 2026Dataset version: 2026-09-30
A food's rating in Calories Not Count is not an editor's opinion or an AI answer. It is three open calculations from the food's composition: its Nutri-Score grade on the updated 2023 algorithm, a traffic light for sugar, salt, saturated fat and fiber per 100 g, and the share of daily guideline amounts in a typical serving. Every formula, threshold and source is below, and the ratings for 200 foods are free to download and reuse under CC BY 4.0.
Step 1. The Nutri-Score grade, A to E
Nutri-Score is an open algorithm developed in France and adopted in several European countries. It reduces the composition per 100 g (per 100 ml for drinks) to one number: “negative” points for energy, sugars, saturated fat and salt, minus “positive” points for protein, fiber and the share of fruit, vegetables and legumes. The lower the total, the better the letter. We use the updated version: the scientific committee approved the rules for foods in 2022 and for beverages in 2023.
What earns points
A point is scored for every threshold the value exceeds. Thresholds for general foods, per 100 g:
| Component | Points | Thresholds (a point for each one exceeded; fruit and vegetables score 1, 2 or 5) |
|---|---|---|
| Energy, kJ | 0–10 | 335 · 670 · 1005 · 1340 · 1675 · 2010 · 2345 · 2680 · 3015 · 3350 |
| Sugars, g | 0–15 | 3.4 · 6.8 · 10 · 14 · 17 · 20 · 24 · 27 · 31 · 34 · 37 · 41 · 44 · 48 · 51 |
| Saturated fat, g | 0–10 | 1 · 2 · 3 · 4 · 5 · 6 · 7 · 8 · 9 · 10 |
| Salt, g | 0–20 | 0.2 · 0.4 · 0.6 · 0.8 · 1 · 1.2 · 1.4 · 1.6 · 1.8 · 2 · 2.2 · 2.4 · 2.6 · 2.8 · 3 · 3.2 · 3.4 · 3.6 · 3.8 · 4 |
| Protein, g (positive) | 0–7 | 2.4 · 4.8 · 7.2 · 9.6 · 12 · 14 · 17 |
| Fiber, g (positive) | 0–5 | 3 · 4.1 · 5.2 · 6.3 · 7.4 |
| Fruit, vegetables, legumes, % (positive) | 0 / 1 / 2 / 5 | 40 · 60 · 80 |
Total = negative − positive. Letters for foods: A up to 0, B 1–2, C 3–10, D 11–18, E from 19.
Different groups, different rules
- Protein doesn't count once negative points reach 11 (7 for fats and nuts) — otherwise sausages would be rescued by their protein. For cheese, protein always counts.
- Red meat and red-meat products get at most 2 points for protein.
- Fats, oils, nuts and seeds: instead of energy, the energy from saturated fat (grams × 37 kJ; thresholds 120 · 240 · 360 · 480 · 600 · 720 · 840 · 960 · 1080 · 1200); instead of grams of saturated fat, its share of total fat, % (10 · 16 · 22 · 28 · 34 · 40 · 46 · 52 · 58 · 64). Letters: A up to −6, B up to 2, C up to 10, D up to 18. Olive and avocado oil earn the fruit points, which is why olive oil grades higher than sunflower oil with a similar fat profile.
- Beverages — including milk, kefir and plant drinks — are scored per 100 ml on their own table: energy, kJ (30 · 90 · 150 · 210 · 240 · 270 · 300 · 330 · 360 · 390), sugars, g (0.5 · 2 · 3.5 · 5 · 6 · 7 · 8 · 9 · 10 · 11), protein, g (1.2 · 1.5 · 1.8 · 2.1 · 2.4 · 2.7 · 3); non-nutritive sweeteners add 4 points. Only water gets an A; for the rest, B up to 2, C up to 6, D up to 9.
- Potatoes, nuts and seeds don't count toward the fruit-and-vegetable share — that is how the algorithm defines it. Nutri-Score doesn't apply to alcohol, sports nutrition or infant formula, so we show no letter for those.
Worked example: rye bread
Per 100 g: 210 kcal (879 kJ), sugars 1.5 g, saturated fat 0.2 g, salt 1.1 g, protein 6.6 g, fiber 5.8 g. Negative points: energy 2, sugars 0, saturated fat 0, salt 5 — 7 in total. Positive: protein 2, fiber 3, vegetables 0 — 5 in total. Total 7 − 5 = 2, which is grade B. Every food page is calculated the same way, this one included.
How this differs from the label on a pack
Nutri-Score is a registered mark of Santé publique France; the official label is applied by a manufacturer from its exact recipe. We calculate the letter ourselves, from the published algorithm and an averaged composition, so a specific brand may differ. Ours is a reference rating, not product labelling.
Step 2. The traffic light per 100 g
A single letter doesn't say what exactly is off, so next to it we show a traffic light for four components. The thresholds for sugar, saturated fat and salt come from the UK front-of-pack labelling guidance; for fiber, from the EU rules on “source of fibre” and “high fibre” claims.
| Per 100 g | Green | Amber | Red |
|---|---|---|---|
| Sugars | ≤ 5 g | up to 22.5 g | > 22.5 g |
| Saturated fat | ≤ 1.5 g | up to 5 g | > 5 g |
| Salt | ≤ 0.3 g | up to 1.5 g | > 1.5 g |
| Fiber (reversed) | ≥ 6 g | from 3 g | < 3 g |
For drinks the sugar, saturated fat and salt thresholds are halved, because drinks are consumed by the glass rather than by 100 ml. That is our simplification; the UK guidance halves the sugar and fat thresholds for drinks but keeps the same lower salt threshold.
Step 3. A serving against daily guideline amounts
A hundred grams of oil and a hundred grams of soup are very different amounts of food. So the reasons for and against are worked out per typical serving (the first serving of the food in our database: a plate, a slice, a handful) and compared with daily guideline amounts for an adult:
| Component | Daily amount | Source |
|---|---|---|
| Protein | 56 g | 0.8 g per kg of body weight (US National Academies RDA) for a 70 kg person |
| Fiber | at least 25 g | WHO |
| Fruit and vegetables | at least 400 g | WHO |
| Free sugars | ideally under 25 g | WHO: under 10% of calories, ideally under 5% — about 25 g on 2,000 kcal |
| Salt | under 5 g | WHO |
| Saturated fat | 20 g | EU reference intake used on labels (about 10% of 2,000 kcal) |
| Omega-3 EPA + DHA | 250 mg | adequate intake, EFSA |
A food's composition lists total sugars, while the WHO amount is for free sugars (added sugars plus those in juices and honey). So for sugar we say “for scale”, and for fruit and plain dairy we don't raise sugar as a reason against unless the traffic light is red.
How the “is it healthy?” answer is built
Every food page opens with a short answer and its reasons. It is assembled by the same rules each time:
- Reasons for — at least 10 g of protein per serving (or 5 g with a high protein density), at least 2.5 g of fiber per serving or 3 g per 100 g, 100 mg or more of EPA + DHA per serving, 0.5 g or more of plant omega-3, mostly unsaturated fat (saturated no more than a fifth of the fat), no more than 60 kcal per 100 g, fruit and vegetables, and a green light for sugar, salt and saturated fat all at once. If none of these applies but the grade is A or B, we name what the food is low in.
- Reasons against — 12.5 g or more of sugar per serving (half the WHO's ideal amount), saturated fat or salt per serving at a fifth of the daily amount or more, or a red light; 350 kcal or more per 100 g (when a serving is at least 60 kcal), a serving of 500 kcal or more, little fiber in a starchy food. If these rules leave nothing against but the grade is C or lower, we name the component that scored the most negative points.
- Verdict. Grade A or B — “yes”; with a weighty reason against — “yes, with an eye on the portion”. Grade C — “in moderation”. Grade D or E — “partly” when there is a strong reason for (such as omega-3 in salted fish); otherwise D — “only in small amounts”, E — “not really”. When a single serving carries 80% or more of the daily amount of salt, sugar or saturated fat, or 700 kcal or more, the verdict drops a step: grades A and B become “in moderation”, and “partly” is not used.
- The page shows the two weightiest reasons on each side — with that food's own numbers rather than general wording.
Swaps and minutes of movement
“Healthier swaps” come from the same or a neighbouring category, in a serving matched to the same calories (±25%; drinks glass for glass). On the food pages a swap must be a full Nutri-Score grade better and no more than one and a half times the original serving by weight; grade-A foods get no swaps. Nor do we suggest “salad instead of pizza”; if there is no fair swap, we say so.
Minutes of movement use MET values from the Compendium of Physical Activities: kcal per minute = (MET − 1) × 3.5 × weight (kg) ÷ 200. We subtract 1 because that is the resting rate — otherwise lying still would “burn off” food. On the food pages the figure is for a 70 kg (154 lb) person; in the diary, for your own weight.
What this rating doesn't know
- The composition is an average: per 100 g as eaten, from food composition tables (USDA FoodData Central and Skurikhin's tables, the standard Russian reference), rounded. For dishes it is calculated from a typical recipe. A specific brand or kitchen will differ.
- Carbohydrates are total carbohydrate, fiber included, as on a US Nutrition Facts label; fiber is shown again on its own line. Calories for every item are checked against 4 kcal per gram of protein and digestible carbohydrate, 9 for fat and 2 for fiber (5% tolerance).
- Spoons and cups are level US measures: 1 teaspoon = 4.9 ml, 1 tablespoon = 14.8 ml, 1 cup = 240 ml. Their weight follows the density of the food (USDA FoodData Central measure weights): a tablespoon of oil is 14 g, honey 21 g, sugar 13 g, flour 8 g. Piece weights for fruit and vegetables are USDA medium sizes.
- Nutri-Score doesn't take vitamins and minerals, the degree of processing, additives or portion size into account. It is designed for comparing similar foods, not oil with apples.
- The rating is the same for everyone: it doesn't know your weight, age, health conditions or goals. In the diary the same figures are compared with your own targets.
- It is not medical advice. With a medical condition, pregnancy or a therapeutic diet, decisions about food belong to your doctor.
Open data: the ratings table
The ratings for all 200 foods and dishes in the guide are available as one file: food-scores.csv (CSV, UTF-8, comma-separated). It holds the composition per 100 g, the Nutri-Score points and grade, the traffic light, the typical serving, the verdict and a link to each food page.
| Grade | A | B | C | D | E | Total |
|---|---|---|---|---|---|---|
| Foods | 94 | 30 | 39 | 26 | 11 | 200 |
License — Creative Commons Attribution 4.0 (CC BY 4.0): you may copy, publish and adapt the table, including commercially, as long as you credit the source. Suggested credit: “Source: Calories Not Count, caloriesnotcount.com/methodology, version 2026-09-30, CC BY 4.0”.
Columns in the file
id— id in the databasename— namecategory— food categoryunit— what the figures refer to: 100 g or 100 mlkcal— caloriesprotein_g— protein, gfat_g— fat, gsaturated_fat_g— saturated fat, gcarbs_g— total carbohydrate, g — fiber included, as on a US Nutrition Facts labelsugars_g— sugars, gfiber_g— fiber, g — already counted in total carbohydratesalt_g— salt, gfruit_veg_legumes_pct— share of fruit, vegetables and legumes, %nutri_score_table— Nutri-Score table used: food, fat, cheese, redMeat, drinknutri_score_points— final Nutri-Score points (lower is better)nutri_score_grade— grade A–Elight_sugar— traffic light: sugar (low / medium / high)light_saturated_fat— traffic light: saturated fatlight_salt— traffic light: saltlight_fiber— traffic light: fiber (high is good)serving_g— typical serving, g or mlserving_kcal— calories per servingverdict— verdict: yes, portion, moderate, partly, small, rarelyurl— food page
In the app, the composition of barcoded products comes from Open Food Facts (ODbL license); those products are not part of this table — it covers only our own database of foods and dishes.
Sources
- Santé publique France (2024). Nutri-Score: Questions & Answers — updated algorithm (version 11).The rules and thresholds of the updated algorithm: point tables for general foods, fats and nuts, and beverages, and the A–E cut-offs.
- Merz B, Temme E, Alexiou H, Beulens JWJ et al. (2024). Nutri-Score 2023 update. doi: 10.1038/s43016-024-00920-3.The Nutri-Score scientific committee on what changed in the 2023 version and why (Nature Food).
- UK Department of Health, Food Standards Agency (2016). Guide to creating a front of pack (FoP) nutrition label for pre-packed products sold through retail outlets.Traffic-light thresholds per 100 g: sugars 5 and 22.5 g, saturates 1.5 and 5 g, salt 0.3 and 1.5 g.
- European Parliament and Council (2006). Regulation (EC) No 1924/2006 on nutrition and health claims made on foods.“Source of fibre” from 3 g per 100 g, “high fibre” from 6 g per 100 g (Annex).
- European Parliament and Council (2011). Regulation (EU) No 1169/2011 on the provision of food information to consumers.Adult reference intakes for a 2,000 kcal day: saturates 20 g (Annex XIII).
- World Health Organization (2026). Healthy diet (fact sheet).Daily guideline amounts: at least 400 g of fruit and vegetables, at least 25 g of fibre, under 5 g of salt, free sugars under 10% of calories (ideally under 5%), saturated fat no more than 10%.
- Institute of Medicine, Food and Nutrition Board (2005). Dietary Reference Intakes for Energy, Carbohydrate, Fiber, Fat, Fatty Acids, Cholesterol, Protein, and Amino Acids.The protein RDA of 0.8 g per kg of body weight and the acceptable macronutrient ranges: protein 10–35%, fat 20–35%, carbohydrate 45–65% of calories.
- EFSA Panel on Dietetic Products, Nutrition and Allergies (2010). Scientific Opinion on Dietary Reference Values for fats. doi: 10.2903/j.efsa.2010.1461.Adequate intake of marine omega-3 (EPA + DHA) for adults: 250 mg a day.
- U.S. Department of Agriculture, Agricultural Research Service. FoodData Central.Food composition per 100 g (alongside Skurikhin's tables for Russian dishes).
- Herrmann SD, Willis EA, Ainsworth BE et al. (2024). 2024 Adult Compendium of Physical Activities.MET values of activities — the basis of the “minutes of movement” per serving.
Sources last checked on September 30, 2026.
To see the rating at work, open any of the food pages; for the formulas behind daily calorie targets, see the BMR calculator.