Heliva Get the app
Updated 9 November 2026 · measured on the app before its release

How close is it?

Nobody can weigh a meal from a photo. So we measured how far off Heliva is, on meals where the real calories are known. Here is what we found, the good and the bad.

28%Typical miss on one photoHalf of meals land closer than this, half further. About 640 could really be 460 or 820.
~7%Typical miss over a weekAbout 1 000 kcal over a 15 000 kcal week, or roughly 0.1 kg. Misses largely cancel out. Modelled, see below.
1 in 2Inside the “likely” rangeThat’s what “likely” means in the app, and we checked that it holds.

What we tested on

The numbers

Logged byTypical missWithin 25%Within 50%
Photo28%46%77%
Words25%52%80%

Typical miss is the median error against the real calories. It stays about the same for small and large meals, so a bigger dinner misses by more kcal: on a 600 kcal dinner, 28% is about 170 kcal either way. “Within 25%” is the share of meals that landed that close.

What 28% means in calories

The percentage stays about the same whatever the size of the meal. So a snack misses by a few dozen kcal and a big dinner by a few hundred.

Meal sizeMeals testedTypical missRoughly, in kcal
Under 150 kcal30227%under 40
150 to 400 kcal43629%about 80
400 to 800 kcal33626%about 160
Over 800 kcal5739%300 or more, usually under
A whole weekmodelled~7%about 1 000, roughly 0.1 kg

From the 1,131 phone photos. The kcal column applies each band’s typical miss to a typical meal in that band, so read it as a guide, not a measurement. The week assumes about 15 000 kcal.

Why a week is closer than a meal

Weight changes with what you eat over weeks, not with one dinner. When errors go both ways, they cancel. In our model, a typical miss of 29% per meal shrinks to about 19% per day and about 7% per week.

That only works if the app isn’t always high or always low. So Heliva learns from your corrections, and your weight trend checks it.

Modelled by drawing random weeks of 21 meals from the lab set. Real weeks repeat meals, so their errors cancel less.

Why “likely” holds half

We could show a range that holds 8 meals in 10. It would be about twice as wide, and every estimate would look useless. So the app shows the range that holds about half of meals, and says “likely”. On held-out meals it held 50%.

The range leans upwards: an estimate of 600 is likely 460 to 800. Real calories run further above an estimate than below it.

Where it struggles

For context

How Heliva gets the number

An AI model names the foods on your plate and guesses how much of each. The calories then come from a national food database, never from the model itself. Barcodes, labels and saved recipes skip the guess.

Sources