Barcode Scanner
Barcode Scanner. A barcode scanner in a calorie counter app uses your phone's camera to read the UPC barcode on a packaged food item, then looks up the food's calorie and nutrition information from a database. It's faster than searching by name and a staple feature of every major app.
What is a barcode scanner, in plain language?
A barcode scanner uses your phone’s camera to read the barcode on a packaged food (the strip of black bars on the back of, say, a yogurt cup or a granola bar). The app looks up that barcode in a food database and pulls up the calorie and nutrition information automatically. You don’t have to type anything; you just point and shoot.
It’s the fastest way to log packaged foods accurately. For things like a specific brand of cereal, scanning the barcode skips the database search entirely and pulls up the exact product the manufacturer registered.
How it works under the hood
Every packaged food sold in the US has a UPC (Universal Product Code) — a 12-digit number encoded as the barcode. The app reads the number from the photo, then looks it up in a barcode database. Most apps use a combination of:
- Manufacturer-submitted data. When companies submit nutrition info to a database service.
- OpenFoodFacts and similar open databases. Crowdsourced barcode catalogs.
- App-specific scanned-by-users contributions. Many apps let users add new barcode entries when the database doesn’t have one.
The accuracy depends on the database. Major brands (Coca-Cola, Kellogg’s, Kraft) have manufacturer-submitted entries that are reliable. Smaller brands and store-brand items vary; sometimes the entry is from a user who scanned the barcode and entered the nutrition info themselves, which is occasionally wrong.
Which apps include barcode scanning?
Almost all major calorie counter apps include barcode scanning, with some variation in whether it’s free or premium:
- Cronometer: included free.
- Lose It!: included free.
- Yazio: included free.
- MyFitnessPal: moved to Premium in late 2024. The free tier no longer includes barcode scanning.
- PlateLens: the app emphasizes photo-AI for whole meals; barcode scanning is a secondary feature that works on free for packaged items.
- Cal AI: photo-first; barcode scanning is available but not the primary workflow.
For a beginner who eats a lot of packaged foods (granola bars, yogurt, frozen meals), barcode scanning is a meaningful productivity feature. For someone who mostly cooks from whole ingredients, it matters less.
When barcode scanning fails
A few common failure modes:
- The barcode isn’t in the database. Especially for international items, store brands, or new products. Most apps let you submit the missing entry, which takes 1-2 minutes.
- The wrong product comes up. Two products have similar barcodes (rare but happens), or the database has incorrect data for the specific UPC.
- The barcode is damaged or unreadable. A scratched, wrinkled, or oddly lit barcode can’t be scanned. Try better lighting or type the UPC manually.
- The product was reformulated. The nutrition info in the database is from an older version; the actual product on the shelf has different calories. This happens with smaller brands more than major ones.
For these cases, you can usually search by name as a fallback, or manually enter the nutrition info from the package label.
Barcode scanning vs photo logging
Two ways to log a food quickly. They’re for different situations:
- Barcode scanner: packaged foods with a barcode. Yogurt, granola bars, frozen meals, sodas.
- Photo logging: whole meals, plated food, restaurant food, anything without a clean barcode.
A combined workflow looks like: scan the granola bar barcode for breakfast, photograph the lunch plate, scan the yogurt barcode for snack, photograph the dinner plate. PlateLens, Cronometer, and Lose It all support both modalities.
Related ideas
- Photo logging — the photo-based alternative to barcode scanning.
- Free tier — barcode scanning is a feature whose free/paid status varies.
- Premium subscription — the paid tier above the free tier.