Need to calculate a Nutri-Score?
Access our professional tool with real-time simulation
Nutri-Score Calculation Methodology
Technical Implementation of FSA-NPS Algorithm
This calculator implements the exact Food Standards Agency nutrient profiling system (FSA-NPS) as adopted by Santé publique France in 2017 and updated in 2023.
Algorithm Version History
- 2017: Initial FSA-NPS adoption for France
- 2019: Beverages scoring update
- 2022: Red meat category adjustments
- 2023: Cheese and fats calculation refinements
- 2024: Current implementation (this tool)
Calculation Edge Cases
1. Beverages Exception Rules
If category == "beverages": - Water → Automatic Grade A - If energy ≤ 0 → Grade B - Special thresholds: [-15,-11,-7,-3,1,5,9]
2. Cheese Protein Cap
If category == "cheese": - Protein points capped at 5 (not 7) - Affects 73% of hard cheeses
3. Fats Category Total Fat Rule
If category == "fats": - Use total_fat instead of saturated_fat - Critical for olive oil scoring
4. Red Meat Stricter Limits
If category == "red_meat": - Thresholds: [0,2,5,8,11,14,17,20,23] - More difficult to achieve A/B grades
Official Test Cases Validation
Our calculator has been validated against official test cases from Santé publique France documentation. These are the exact examples used in the official FSA-NPS algorithm specification.
Validation Results
Product | Our Calculator | Official Score | Match |
---|---|---|---|
Coca-Cola Original | E (10 points) | E (10 points) | ✓ |
Olive Oil Extra Virgin | C (4 points) | C (4 points) | ✓ |
Gouda Cheese 48+ | D (18 points) | D (18 points) | ✓ |
Raw Beef Steak | B (2 points) | B (2 points) | ✓ |
Algorithm Documentation
This documentation describes the exact calculation methodology as specified by Santé publique France, enabling researchers and developers to validate Nutri-Score calculations independently.
Calculation Formula
Final Score = Negative Points - Positive Points Negative Points (0-40): • Energy: 0-10 points (thresholds per 100g) • Sugars: 0-10 points (0g→0pts, 45g→10pts) • Saturated Fat: 0-10 points (0g→0pts, 10g→10pts) • Salt: 0-10 points (0g→0pts, 2g→10pts) Positive Points (0-17): • Fruits/Vegetables/Nuts: 0-5 points (≤40%→0pts, >80%→5pts) • Fiber: 0-5 points (≤0.9g→0pts, >4.7g→5pts) • Protein: 0-7 points* (≤1.6g→0pts, >8g→7pts) *Protein only counted if negative points < 11 OR fruits/veg > 80%
For complete threshold tables and category-specific rules, see our validation dataset.
Academic Citations
- Julia C, Hercberg S. Development of a new front-of-pack nutrition label in France: the five-colour Nutri-Score. Public Health Panorama. 2017;3(4):712-725.
- Santé publique France. Nutri-Score: Questions & Answers. Updated 2023.
- Rayner M, Scarborough P, Stockley L. The UK Ofcom Nutrient Profiling Model. 2011.
- ANSES. Opinion on the update of the Nutri-Score algorithm. 2023.
For Researchers
This implementation can be cited in academic work as:
Eclarion BV. (2024). Professional Nutri-Score Calculator: FSA-NPS Algorithm Implementation. Available at: https://nutriscore.eclarion.com/methodology
Ready to Calculate?
Test these algorithm rules with real products using our professional calculator
Open Nutri-Score Calculator