How accurate is scanning a nutrition label? I tested 141 real labels

Markus Tammeoja·Published ·3 min read

Photographing the nutrition table beats typing it, until a number comes out wrong. How often that happens on 141 real labels from across Europe, and what to check before you save.

How accurate is scanning a nutrition label? I tested 141 real labels

Typing a nutrition table into an app is the most tedious part of logging food. Energy, fat, saturates, carbs, sugars, fibre, protein, salt, then the serving size, with the packet balanced in one hand. So taking a photo of the label instead sounds great. Right up until it gets a number wrong, because you're never going to re-check a number you didn't type.

Here's the short answer. On 141 real labels, Ampsu's label reader got 88.8% of the numbers right, got 8.4% wrong and left the rest empty, in about five seconds a scan. That's good enough to save you the typing, and not good enough to skip a glance before you save. The rest of this post is how I tested it and what to do with those numbers.

How did you test it?

With the kind of photos people actually take. I used 141 photos of nutrition tables from products sold across Europe, printed in a lot of different languages. Some are sharp and straight, some are crumpled, tilted or a bit blurry, which is roughly what a kitchen looks like.

Each photo went through the same code the app uses, and every field it read was compared with what's printed on that packet: energy, fat, saturates, carbs, sugars, fibre, protein, salt, plus the brand. One catch worth knowing about: some of the reference values were calculated rather than copied from the label, like a kilojoule figure worked out from the kilocalories. Those would make a correct reading look wrong, so only numbers that are actually on the packet counted.

What were the results?

Now The version before
Numbers read correctly 88.8% 63.5%
Numbers read wrong 8.4% 22.9%
Brand read correctly 87% 43%
Time per scan 5.0 s about 29 s

The version before is the label reader Ampsu shipped first. It was slower and got almost a quarter of the numbers wrong, which is why it isn't around any more.

Why is a blank better than a wrong number?

Because you notice a blank. An empty fibre field is obvious, and you either fill it in or decide you don't care. A wrong fat figure looks exactly like a right one, gets saved, and quietly ends up in every day you eat that food.

So the label reader is told to leave a number empty when it can't read it clearly, rather than make one up. It also won't hand you something impossible, like more sugar than total carbs. When in doubt, it leaves a gap for you instead.

So should I trust it?

Trust it to do the typing. Before you save, glance at the energy figure and whatever matters most to you, protein for a lot of people, and compare it with the packet. It takes a couple of seconds.

And if it's something you eat every week, check it properly once and save it. After that you're scanning the barcode, not the label, and the numbers are the ones you already checked.

How do I get a good read?

  • Lay the packet flat, or hold it so the table isn't bent around a curve.
  • Get the whole table in the frame, column headers included, so it knows which column is per 100 g.
  • Tilt it a little if there's glare. A shiny wrapper under a kitchen light is the most common reason a number goes missing.