Need to calculate a Nutri-Score?

Access our professional tool with real-time simulation

Open Calculator

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

  1. 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.
  2. Santé publique France. Nutri-Score: Questions & Answers. Updated 2023.
  3. Rayner M, Scarborough P, Stockley L. The UK Ofcom Nutrient Profiling Model. 2011.
  4. 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