Health Score (0–100)
The health score is inspired by Nutri-Score. It evaluates each product based on its nutrition per 100 g. Each nutrient contributes a bounded sub-score (0–10) so no single nutrient can dominate the result.
Negative factors (higher = worse)
| Nutrient | 0 pts at | 10 pts at |
|---|---|---|
| Calories (kcal) | ≤ 100 | ≥ 500 |
| Sugar (g) | 0 | ≥ 30 |
| Saturated fat (g) | 0 | ≥ 15 |
| Salt (g) | 0 | ≥ 2.5 |
Maximum negative points: 40
Positive factors (higher = better)
| Nutrient | 0 pts at | 10 pts at |
|---|---|---|
| Protein (g) | 0 | ≥ 30 |
| Fiber (g) | 0 | ≥ 10 |
Maximum positive points: 20
Final calculation
raw = positive − negative
healthScore = ((raw + 40) / 60) × 100
(clamped to 0–100, where −40 → 0 and +20 → 100)Value Score (0–100)
The value score combines health with price efficiency. It answers: “How much health do I get per euro spent on protein?”
rawValue = healthScore × (1 / pricePer10gProtein)Normalized across all products using min-max scaling (best = 100, worst = 0).
Custom Score (0–100)
You can adjust four weight sliders to define your own ranking. Each dimension is normalized relative to the current product set:
- Low Price — cheaper products score higher
- High Protein — more protein per 100 g scores higher
- Health — better health score = higher
- Low Calorie — fewer kcal per 100 g scores higher
Your weights are saved in your browser so they persist between visits. The custom score updates instantly as you adjust the sliders.
Color-Coded Cells
Numeric columns in the table use a green-to-red gradient to help you spot the best values at a glance. The direction depends on the nutrient:
- Green = good — high protein, high fiber, low price
- Red = less ideal — high sugar, high saturated fat, high calories
Colors are always relative to the currently filtered set of products, not absolute.
Data Source
All nutrition data is per 100 g as provided on the product packaging. Prices reflect the current listing price. Data is synced periodically and may not reflect the very latest changes.