Why Calorie Apps Give Different Numbers for the Same Food.

Two apps can show different calories for the same lunch because they have selected different products, different portions or different versions of a food's nutrition record. Before deciding which app is wrong, compare the food name, the amount logged and the nutrition panel on the pack.

Last reviewed: 4 October 2026

One Tesco sandwich in six calorie apps

On 4 October 2026, we compared selected Tesco Chicken Club entries in YAZIO, Nutracheck, MyFitnessPal, MyNetDiary, Cronometer and NutraSafe with Tesco’s current product page. The app screens showed 504–508 kcal. Tesco listed 506 kcal per pack.

That is a small spread. The more useful differences were the portion information, the way carbohydrates were labelled and the ingredient detail available in NutraSafe. Here are the figures and the screens, so you can see what each observation supports.

We make NutraSafe. This is one product across six selected entries, searched by name on the founder’s phone and captured as screenshots. We did not scan the barcode in any app or photograph the physical pack. It is an observation, not an independent accuracy ranking.

Selected app figures on 4 October 2026. Energy in kcal; protein, carbs and fat in grams. Differences are from Tesco’s web value.
AppDisplayed portionkcalkcal differenceProteinCarbs*Fat
YAZIO1 Package (250 g)507+13056.717
Nutracheck1 Pack (weight not shown)508+229.956.516.9
NutraSafePer pack (249.2 g)506029.956.616.9
MyFitnessPal1 pack (weight not shown)504-230.661.816.2
MyNetDiary1 pack (Weight: N/A)50603057 (US-style total)17
Cronometer1 Pack (as sold), 249g507.9+1.929.956.5 (Net Carbs)16.9
Tesco websiteEach pack, as sold506Reference29.956.516.9

*MyNetDiary’s “T. Carbs” includes fibre: 53g carbohydrate + 4g fibre = 57g total. MyFitnessPal’s 61.8g sits beside 5.6g of fibre on the same entry. UK label carbohydrate excludes fibre. Cronometer explicitly says “Net Carbs”; net-carb calculations can also subtract sugar alcohols. See the explanation below before comparing these columns. Portions remain unverified.

NutraSafe and MyNetDiary matched Tesco’s displayed energy value. Every selected entry was within 2 kcal of it, or less than 0.4%. That does not establish which app is most accurate across a weekly shop. Tesco’s website is a retailer reference, and recipes can change: the current pack is the next check.

The entries we actually saw

Every screen is shown in full, as it appeared on the phone. Tap one to read it at full size. Cronometer’s shows the founder’s own energy target and NutraSafe’s shows his reaction reminder.

Carbohydrate: UK labels leave fibre out, US labels count it in

MyNetDiary’s 57g “T. Carbs” uses the US-style total carbohydrate convention, which includes fibre. A UK pack’s “carbohydrate” figure excludes fibre. The two headings describe different totals, so comparing them directly can make an entry look further from the pack than it is.

UK label: carbohydrate excludes fibre

Fibre is listed separately. UK carbohydrate includes polyols (sugar alcohols), so it is not automatically identical to an app’s “net carbs”. UK label definitions.

US label: total carbohydrate includes fibre

The FDA’s total carbohydrate explanation includes fibre. MyNetDiary’s guide uses that total and subtracts fibre and sugar alcohols to calculate net carbs.

In the MyNetDiary entry, the nutrient table shows 53g carbohydrate and 4g fibre. Together they make the macro summary’s 57g total. That explains the 4g difference between its two displays; it is a change of definition, not evidence of an arithmetic error.

There is still a separate product-record comparison to make: its fibre-excluded 53g is 3.5g below Tesco’s online 56.5g. One reading is that the entry began with Tesco’s 56.5g, which already leaves fibre out, and took the 4g off a second time. We have not established that; matching the current barcode, recipe and portion would be needed. The US convention does not account for all differences between the selected entries.

MyFitnessPal shows 61.8g carbs, 5.3g above Tesco’s UK figure. The same entry lists 5.6g of dietary fibre, and 61.8g less 5.6g is 56.2g, so it reads as carbohydrate with the fibre added in. It is a member-submitted entry, and we have not established how the figure was arrived at. Cronometer explicitly shows 56.5g Net Carbs. Nutracheck shows 56.5g carbs, NutraSafe 56.6g and YAZIO 56.7g. Keep each app’s label with the number when comparing them. Do not subtract fibre again from the carbohydrate figure on a UK label.

Portions need checking too. YAZIO shows 250g, Cronometer 249g and NutraSafe 249.2g. Nutracheck and MyFitnessPal show “pack” without a weight, and MyNetDiary says Weight: N/A. The screenshots alone cannot establish the cause of every numerical difference.

See MyNetDiary’s macro summary

MyNetDiary macros

MyNetDiary macro summary for The chicken club by Tesco showing T. Carbs 57g, protein 30g and fat 17g
Part of the MyNetDiary screen with Macros opened: T. Carbs 57g, protein 30g, fat 17g.

What NutraSafe adds to the calorie figure

If you only want to log this sandwich’s calories, all six selected entries give a similar number. NutraSafe also lets you inspect the ingredients behind it. These complete screenshots show how that information appears alongside the calories.

The product overview brings together macros, the app’s processing and additive assessments, palm oil, saturated fat and salt indicators, and a reminder based on previously logged reactions. The “What’s in this food” page shows the additive summary, allergen and sensitivity flags, and the stored ingredient list. The separate “What’s added” page names the ingredients, their codes and the app’s descriptions.

For example, the two triphosphates listed inside the bacon appear under the E451 group. The bread’s long emulsifier name appears as DATEM, E472e. You can open a named entry for more detail instead of searching each unfamiliar term separately.

Named additive detail is a NutraSafe Pro feature; the free scanner shows the additive count. We have not checked every ingredient page or feature in the other five apps.

The risk descriptions, processing classification and sensitivity flags shown here are the app’s classifications. This single-product comparison does not independently validate them or measure the amount of any additive in a pack.

What those six additive codes refer to

We checked the names and codes against the Food Standards Agency’s E-number list. The roles below follow Tesco’s ingredient declaration for this sandwich.

Six grouped E-number entries shown by NutraSafe for this product
CodeName or groupDeclared role
E250Sodium nitritePreservative in the bacon
E451TriphosphatesStabilisers in the bacon
E471Mono- and diglycerides of fatty acidsEmulsifier
E472eDATEMEmulsifier
E300Ascorbic acidFlour treatment agent
E301Sodium ascorbateAntioxidant in the bacon

The app’s list has a seventh entry for yeast extract, an additional ingredient shown separately from those six E-number groups. “Seven things added” is therefore not a count of seven distinct E-number additives. E451 itself groups two named triphosphates in the recipe.

An E-number identifies an additive; the function tells you why it is used. The FSA’s explanation of food additives describes roles including preserving food, reducing oxidation and helping ingredients mix. Our E-number library gives you somewhere to read further.

These names do not tell us how much of each additive is in a pack. EFSA’s explanation of dietary exposure uses both concentration in food and the quantity eaten. This case checks the displayed ingredients and nutrition figures; it does not validate the app’s health classifications or measure anyone’s exposure.

Vitamins and minerals on other foods

NutraSafe Pro also shows vitamins and minerals for foods that aren’t classed as ultra-processed, where suitable nutrition data is available. That can add figures such as iron, calcium and vitamin C alongside the calories and macros.

We don’t estimate vitamin and mineral amounts from ingredient lists for foods classed as ultra-processed. Amounts declared on a product’s nutrition label can still be shown. A missing figure means we don’t have a value to display; it doesn’t mean the food contains none.

See how NutraSafe’s vitamin and mineral tracking works, including the free and Pro split. This is a separate feature explanation; the sandwich screenshots above do not demonstrate a vitamin and mineral panel.

Extra nutrients and account access

Nutracheck’s nutrient screen shows 6.7g saturated fat, 5g sugars, 4g fibre and 1.69g salt. NutraSafe’s nutrition strip shows the same first three numbers. Tesco lists 1.70g salt; the 0.01g numerical difference in Nutracheck is small, and does not establish a recipe mismatch.

YAZIO’s nutrient screen shows Pro locks beside further nutrients, including fibre and sugars. That was a free account. Nutracheck, MyFitnessPal and Cronometer were on free accounts too, MyNetDiary was used with no account at all, and NutraSafe was on Pro, so these screens are not a like-for-like comparison of free plans. Our UK calorie counter comparison sets out what each app gives away and what it charges for.

See the YAZIO nutrient screen from the recording

YAZIO nutrient access

YAZIO nutrients page with Pro locks beside additional nutrient fields
The nutrient screen visible during this check, with Pro locks on additional fields.
See the Nutracheck nutrient screen

Nutracheck nutrient rows

Nutracheck nutrition by serving size for one pack: 508 kcal, 56.5g carbohydrate, 4g fibre and 1.69g salt
Part of Nutracheck’s nutrition screen for one pack: 508 kcal, 6.7g saturates, 56.5g carbohydrate, 5g sugars, 4g fibre, 1.69g salt.

What the latest research can tell us

A July 2026 study published in Nutrition and Health evaluated 17 nutrition apps available in Türkiye. It compared nutritional calculations from 13 apps against standardised three-day food records; ten overestimated energy intake. The researchers noted substantial variation and the limits of using standardised menus.

That is evidence that apps can disagree with a reference calculation. It does not establish which app currently scans UK supermarket products most reliably. These findings do not establish NutraSafe’s accuracy on current UK products. They should not become a claim that one app is always accurate or always inaccurate.

How to use this comparison for your own shop

Start with the pack you are holding. Match the product and barcode, then compare calories on the same basis: per 100g, per pack or the amount you actually eat. Check whether the record describes the food as sold, prepared or drained. A correct nutrition record can still give the wrong diary total if the portion is wrong.

Try five packaged foods you regularly buy. Photograph their nutrition panels, record whether each barcode is found, and keep a search fallback separate from a successful scan. Note your account tier and whether you can enter the portion you need. This tests agreement with your packs, not laboratory composition or every food in the database.

For this case, we searched each app by name on one iPhone on 4 October 2026, opened its Tesco Chicken Club entry and checked it against Tesco’s online page the same day. We did not scan the barcode in any app, so a barcode match is not established. App versions: MyFitnessPal 26.39.0, Nutracheck 13.4.0, YAZIO 26.39.2, Cronometer 4.59.1 and NutraSafe 2.2; MyNetDiary does not show its version. The other five apps were on free accounts and NutraSafe was on Pro. We did not photograph the pack’s own nutrition panel, and the sample is one sandwich.

You can download the comparison figures and method as JSON. It contains the displayed values, the Tesco reference and the limitations, without personal account information. A broader set of products and confirmed matching portions would be needed before drawing conclusions about overall accuracy.

We make NutraSafe and selected this example to show its ingredient detail alongside calorie logging. It is a founder-led comparison, and the screenshots show particular entries at a particular time.

Last updated: 4 October 2026