Beta
Healthier Eats gives every meal a single 0-100 score so you can compare options side-by-side. The score is a transparent blend of the nutrition values restaurants already publish, plus a small set of caps that stop one bad number being hidden by good ones. It is not medical advice and not a diet plan.
We use the nutrition table on the brand's own site or menu. Each meal is judged on six values, all measured per portion as sold:
We also record allergens, diet flags (vegan, vegetarian, pescatarian), cuisine and occasion. Those are used for filtering, not for the score itself.
Each component is converted to a 0-100 sub-score using fixed bands. Bigger is better for protein and fibre; smaller is better for calories, sugar, salt and saturated fat.
| Component | 100 | ~75 | ~50 | ~25 | 0 |
|---|---|---|---|---|---|
| Calories | ≤ 300 | ≤ 500 | ≤ 750 | ≤ 900 | > 900 |
| Fibre | ≥ 8 g | ≥ 6 g | ≥ 4 g | ≥ 2 g | < 2 g |
| Sugar | ≤ 5 g | ≤ 10 g | ≤ 15 g | ≤ 25 g | > 25 g |
| Salt | ≤ 1.5 g | ≤ 2.0 g | ≤ 2.4 g | ≤ 3 g | > 4 g |
| Saturated fat | ≤ 3 g | ≤ 5 g | ≤ 7 g | ≤ 10 g | > 10 g |
Salt uses six bands: ≤ 1.5 g = 100, ≤ 2.0 g = 80, ≤ 2.4 g = 60, ≤ 3.0 g = 40, ≤ 4.0 g = 15, > 4 g = 0. Lower salt contributes to a stronger fit score.
Protein is a blend of two ideas: 60% from grams per portion (30g = full marks) and 40% from how much of the meal's energy actually comes from protein (20% of kcal = full marks). This rewards meals that are genuinely protein-led, not just big.
The six sub-scores are combined as a weighted average. Weights reflect how strongly each component shapes whether a meal is a good everyday choice:
The raw score is the weighted sum divided by the total weight, then rounded to a whole number between 0 and 100.
A weighted average alone can let a meal hide one large problem behind several smaller wins. To prevent that, we apply caps that limit the final score when a single value crosses a clear threshold. The strictest cap wins.
Applied caps are stored alongside the score so you can see exactly why a meal did not go higher.
Not every brand publishes fibre. We never treat missing fibre as zero - that would unfairly punish meals where the brand simply did not disclose. Instead:
Tags are awarded purely on the published numbers:
We surface a watch-out tag when a value is noticeably higher than typical options:
Greggs Roast Chicken & Bacon Club Baguette: 457 kcal, 24 g protein, 5.5 g sugar, 1.7 g salt, 2.4 g saturated fat, fibre not provided.
We aim to use the official restaurant source for every meal and re-check periodically. Sample items in this beta are clearly marked as Sample data. Restaurants update recipes, portion sizes and ingredients without notice - always check the brand directly before ordering, especially for allergens.