Beta

Methodology

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.

What we look at

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:

  • Calories - total energy per portion.
  • Protein - both grams per portion and protein as a share of total energy.
  • Fibre - grams per portion.
  • Sugar - total sugars per portion.
  • Salt - grams per portion (not sodium).
  • Saturated fat - grams per portion.

We also record allergens, diet flags (vegan, vegetarian, pescatarian), cuisine and occasion. Those are used for filtering, not for the score itself.

How each component is scored

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.

Component100~75~50~250
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

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.

How we combine them

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:

  • Protein - 20
  • Salt - 18
  • Calories - 15
  • Saturated fat - 15
  • Fibre - 15
  • Sugar - 12

The raw score is the weighted sum divided by the total weight, then rounded to a whole number between 0 and 100.

Salt caps and why they exist

UK adults are advised to have no more than 6g salt per day (NHS). UK front-of-pack guidance treats more than 1.8g salt per portion as high for food portions over 100g. Healthier Eats uses these serving-level thresholds to decide when salt should limit the maximum score, so a high-salt meal cannot rank as elite just because the rest of its nutrition looks good.

Salt per portionMaximum final score
≤ 1.8 gNo cap
> 1.8 g and ≤ 2.4 g88
> 2.4 g and ≤ 3.0 g82
> 3.0 g and ≤ 4.0 g75
> 4.0 g and ≤ 6.0 g65
> 6.0 g50

Salt intentionally affects the final score twice: through the weighted salt sub-score (which smoothly rewards lower salt) and through these serving-level caps.

Saturated fat and calorie caps

  • Saturated fat 6 g or more, capped at 78
  • Saturated fat 10 g or more, capped at 65
  • Calories 900 kcal or more, capped at 70

Applied caps are stored alongside the score so you can see exactly why a meal did not go higher. The strictest cap wins.

Sources

Nutrition-based, not ingredient-based

Healthier Eats uses a nutrition-based comparison model. The score is calculated from published per-portion nutrition values and is designed to compare similar restaurant meals against each other.

The score does not currently include ingredient quality, processing level, additives, cooking method, allergens or personal dietary suitability. This is because ingredient-level data is not published consistently across all restaurant brands.

Including ingredients without consistent data would risk penalising brands that disclose more information while giving less transparent brands an unfair advantage.

When fibre is missing

Not every brand publishes fibre. We never treat missing fibre as zero - that would unfairly punish meals where the brand simply did not disclose. We also never remove fibre from the calculation, because doing so would let meals with missing fibre inflate their scores by avoiding the fibre drag. Instead:

  • Fibre stays in the weighted average with its full weight of 15.
  • A conservative imputed fibre sub-score of 35/100 is used (drawn from the fibre scoring curve, ~2g fibre).
  • The total weight is always 95. No renormalisation, no confidence multiplier.
  • Confidence is set to Medium and the meal carries a Fibre not provided note.
  • The High fibre tag is never awarded when fibre is missing.
Worked example - missing fibre

A meal with no fibre published, scoring 90.8 / 90.4 / 100 / 100 / 100 on calories / protein / sugar / salt / saturated fat.

  • Sub-score contributions: calories 90.8 x 15, protein 90.4 x 20, fibre 35 x 15, sugar 100 x 12, salt 100 x 18, saturated fat 100 x 15.
  • Total contribution: 8,195.0. Total weight: 95.
  • Raw weighted score: 8,195.0 / 95 = 86.3.
  • No serving-level caps apply. Final score: 86/100.

Confidence levels

  • High - all six values are present and consistent with each other.
  • Medium - fibre is missing, or one of the values triggers a validation warning (for example saturated fat greater than total fat).
  • Low - one of the five required base values is missing. The meal shows "Score unavailable".

What the score label means

  • 85-100 Stronger fit - a solid everyday option across the board.
  • 80-84 Good fit - positive overall, with at most a minor trade-off.
  • 70-79 Decent fit - reasonable, but not in the green zone.
  • 50-69 Mixed - some wins, some watch-outs; check the breakdown.
  • 0-49 More watch-outs - one or more values are high enough to call out.

Positive tags

Tags are awarded purely on the published numbers:

  • High protein - at least 20 g protein and at least 20% of energy from protein.
  • 25g+ protein - factual: at least 25 g protein per portion.
  • High fibre - at least 6 g fibre (only when fibre is actually published).
  • Lower sugar - 5 g sugar or less.
  • Lower salt - 1.5 g salt or less.
  • Lower saturated fat - 3 g saturated fat or less.

Watch-outs

We surface a watch-out tag when a value is noticeably higher than typical options:

  • Higher salt - 3 g or more.
  • Higher saturated fat - 6 g or more.
  • Higher energy - 700 kcal or more.

Worked example

A rice bowl with 620 kcal, 32 g protein, 6 g sugar, 2.6 g salt, 4 g saturated fat, 5 g fibre.

  • Sub-scores: calories ~92, protein ~92, fibre ~75, sugar ~96, salt ~50, saturated fat ~88.
  • Raw weighted score: around 86.
  • Salt is 2.6 g (above 2.4 g), so the final score is capped at 82.
  • Final score: 82, with the salt cap reason shown on the product page.

Sources and freshness

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.

What the score is not

  • It is not a clinical or medical assessment.
  • It does not account for your personal calorie needs, training, or conditions.
  • It does not judge taste, value, sustainability or sourcing.
  • It is a comparison aid, not a verdict on any single meal.