An app that scans food for calories does it one of two ways, and they're not equally reliable. Barcode scanning reads the packaged product's own nutrition panel — close to exact, because you're pulling the manufacturer's declared numbers rather than an estimate. Photo scanning points the camera at a plate and estimates what's on it from the image: fast and genuinely useful, but it works in ranges rather than to the calorie. Use barcodes for packaged food, photos for cooked and restaurant meals, and correct the photo estimate for what the camera can't see — like cooking oil.
Last updated: August 2026
Everyone assumes food scanning is one feature. It's two, they fail in completely different ways, and knowing which one you're using is the difference between a log you can trust and a number you're quietly making up.
Barcode scanning: near-exact, until it isn't
Point the camera at the barcode on a packet and the app pulls the nutrition data tied to that product code. When the entry is correct, the numbers are as good as reading the label yourself.
Where it breaks:
- Regional variants. The same brand and product name can have different formulations in different countries under different barcodes. Scan the wrong region's entry and your macros drift.
- Reformulations. Manufacturers change recipes. The database entry may lag the packet in your hand.
- Serving size confusion. This is the big one. The panel is per 100g, per serving, or per container, and apps don't always default to what you actually ate. Most bad barcode logs I've seen are correct data attached to the wrong quantity.
- Anything unpackaged. No barcode on a chicken breast.
Fix: weigh what you're eating and enter grams rather than accepting "1 serving". That single habit removes most barcode-scanning error.
Photo scanning: fast, approximate, and worth it anyway
Photo estimation identifies the foods on a plate and returns calorie and macro estimates. AllStrong's photo meal logging does exactly this — vision estimates calories and macros from a single photo of a meal, so you're logging a plate instead of hunting through a database for four separate ingredients.
What it handles well: recognisable whole foods, standard restaurant plates, anything where the portion is visible and the preparation is obvious. What it can't see, and neither can any competing app:
- Fats absorbed during cooking. Oil and butter vanish into the food. This is the single largest source of underestimation.
- What's underneath. Sauces, dressings, the layer of rice under the curry.
- Density. A photo shows area and shape. It can't tell you whether the meat is lean or marbled.
- Portion depth. Bowls hide volume in a way plates don't.
So the honest framing is that photo logging trades a little precision for a very large gain in consistency — and consistency is what actually drives results, because a log you keep for six months beats a perfect log you abandon in nine days.
The accuracy question, answered properly
People ask "how accurate is it?" and want a percentage. The more useful question is how accurate does it need to be?
If you're tracking to hold a moderate calorie deficit or hit a protein target, being consistently a bit off in the same direction is fine — you adjust based on what the scale and the mirror do over a few weeks, and the baseline error washes out. What ruins tracking is not a consistent error that leans the same way every day. It's inconsistency: weighing carefully on Monday, eyeballing on Friday, skipping Saturday entirely.
That's the argument for scanning over manual entry. Not that it's more accurate in a single instance, but that it's fast enough that you keep doing it.
A workflow that keeps the numbers honest
- Packaged food → barcode, then fix the quantity. Grams, not servings.
- Home-cooked → photo, then add the cooking fat manually. A tablespoon of oil is meaningful and the camera will never see it.
- Restaurant → photo, then round up. Kitchens use more butter than you'd use at home.
- Repeat meals → save them. Most people eat a small rotation. Log breakfast once properly and reuse it.
- Check the weekly average, not the daily number. Single days are noise.
If you'd rather not weigh anything at all, our counting calories without weighing food guide covers the hand-portion approach and where its error bars sit.
What to look for when you're choosing one
- Both scanning modes, not just one. AllStrong covers photo logging as a core feature and includes a barcode scanner that pulls packaged-food data from the Open Food Facts database.
- Nutrition depth beyond calories. Calories alone don't tell you whether the diet is working. AllStrong's micronutrient analysis combines its own food decomposition with USDA FoodData Central lookups and tracks 25+ micronutrients, flagging gaps and suggesting foods that fill them.
- A correction path. If you can't override a bad estimate in two taps, you'll stop bothering.
- Something that connects food to training. AllStrong's coach chat adapts your plan as you progress, and workout tracking with progressive-overload guidance lives in the same app, so nutrition data and training data aren't sitting in two places that never talk to each other.
- No ad wall on the thing you use daily. A common complaint about the incumbents — MyFitnessPal in particular — is that the features people relied on ended up behind ads and a paywall.
For a deeper look at how photo-based logging works day to day, see our photo food logging app breakdown.
If you're a coach fielding this question
Gym owners and coaches get asked "which app should I use?" constantly, and the answer that sticks isn't the most accurate app — it's the one your members will still be opening in month three.
What I'd tell members: pick one tool, use scanning for speed rather than precision, and judge it on whether they're still logging in eight weeks. Nutrition tracking that gets abandoned produces no data at all, and no amount of accuracy compensates for that. Pairing food logging with something habit-shaped helps; our Habit tracking app page covers the consistency side of it.
Frequently Asked Questions
Can an app really tell calories from a photo?
It can estimate them, and for most everyday meals the estimate is close enough to be useful. What it cannot do is see cooking oil, hidden sauces, or how lean a cut of meat is, so it tends to read low on anything cooked in fat. Treat the number as a solid starting point and adjust upward for anything you know was cooked richly.
Is barcode scanning more accurate than photo scanning?
Yes, when the barcode entry is correct and you enter the right quantity. You're reading the manufacturer's own declared nutrition rather than estimating from an image. The two failure modes to watch are outdated entries after a recipe change and, far more commonly, logging "one serving" when you ate substantially more or less than the panel's serving size.
Do I still need to weigh my food if the app scans it?
Not always, but weighing packaged food takes seconds and removes the largest error source in barcode logging. For photo-logged meals, weighing defeats the point — you're using photos precisely because you don't want to break the plate into components. A reasonable middle ground is weighing your protein sources and calorie-dense items, and estimating everything else.
What should I do when the app's estimate is obviously wrong?
Override it, and do it immediately rather than promising yourself you'll fix it later. Every decent food logger lets you edit the entry. The habit worth building is a quick sanity check on anything that looks unusually low — a plate of fried food returning a modest calorie figure is the classic case, and correcting it takes about five seconds.