A barcode identifies a package, not a recipe#
Scanning is the most reliable entry method available to a calorie tracker, and it still has one specific blind spot that no amount of care on your part will close: the number you scan is a supply-chain identifier, and its guarantees are about commerce rather than about nutrition. The clearest way to see this is to read the rule that governs when a product must be given a new barcode.
GS1, which administers the global numbering system, sets two rules that behave very differently. On pack size: "Any change (increase or decrease) to the legally-required declared net content that is printed on the pack, requires assignment of a new GTIN." On the recipe: "A change to the formulation or functionality of an existing trade item that affects the legally-required declared information on the packaging of a product and also where the brand owner expects the consumer or supply chain partner to distinguish the difference requires a new GTIN. Both conditions must be met requiring the assignment of a new GTIN"1.
Read those side by side. A bag of crisps going from 680 g to 794 g gets a new number, unconditionally — that is one of the standard's own worked examples. A change to what is inside the bag gets a new number only when two separate conditions both hold, one of which is that the brand owner wants you to notice. The system was built to keep pallets, invoices and shelf space straight. It was never built to tell your app the oil content changed.
The changes that make the news get a new number#
The examples GS1 gives of reformulations that do require a new barcode are instructive, because they share a property: in every one, the manufacturer wants the difference visible. A product gains nuts, "which introduces a new allergen which is a legally-governed declaration and must be distinguishable by the consumer." Sugar is cut by 50 percent "to make the trade item 'low sugar'." Previously frozen salmon is now sold as fresh1.
Those are the reformulations a brand puts on the front of the pack. They are also, for that reason, the reformulations you were least likely to miss. The category the rule leaves untouched is the quiet one — a slightly cheaper oil, a marginally different ratio, a supplier swap — where no legally-required declaration shifts and nobody is meant to notice. That change can travel through the supply chain on the same number it started with, entirely legitimately.
The barcode is not failing when it returns a stale recipe. It is doing exactly what the standard specifies. Nutrition currency was never one of its promises.
One further clause matters for anyone scanning products bought abroad, and it comes from the same standard: "Local, national or regional regulations may require more frequent GTIN changes. Such regulations have precedence over the rules provided within the GTIN Management Standard." The threshold for a new number is not uniform across markets, so two versions of the same brand in two countries are governed by different tripwires before you even reach the question of whether the formulation differs.
The failure is silent, which is what makes it expensive#
Most measurement errors announce themselves somehow. A search that returns nothing tells you it found nothing. An entry with an implausible weight can be caught by looking at it. A scan that resolves to an outdated record produces none of those signals: the app fills in a complete, confident, correctly-branded nutrition panel, and it looks identical to one populated an hour ago from a current label.
That is the practical shape of the problem. You cannot tell a good scan from a stale one by examining the result, because the staleness lives in a field the interface does not show you — the date. General audits of composition data make the point about how far records can lag: reviewing USDA's SR Legacy, researchers found "the oldest nutrient measures in SR Legacy were added in 1976," with a mean date of addition of 5 June 2003, and warned that "methods change and evolve over time such that older data may not reflect the present day nutrient content of foods"2. That audit covers a curated reference database rather than barcoded branded records, so do not carry the specific dates across. Carry the structural point: a composition value has an age, and downstream it arrives without one.
Even the best-kept branded database is a monthly snapshot#
It is worth being precise about what sits behind a scan at its best, because the answer is better than most people assume and still not live. USDA's FoodData Central describes its Branded Foods data type as "data from labels of national and international branded foods collected by a public-private partnership," updated "Monthly"3.
That is a genuinely good pipeline — label-derived, institutionally maintained, refreshed on a schedule. It is also a periodic collection of what packages said when they were collected, not a feed from manufacturers announcing changes. Consumer apps generally sit further from the label than this, with entries that may have been typed by another user; the structure of that layer is taken apart in crowd-sourced food database errors. The point here is that even the cleanest branded source shares the same latency problem, because there is no mechanism anywhere in the chain that pushes a reformulation to a database the way a price change reaches a till.
| What the scan is reliable about | What it is not |
|---|---|
| Which product you are holding | When the record was last refreshed |
| The declared net content of the pack | Whether the formulation changed since |
| Brand and variant identity | Whether the record is the right regional version |
| Bypassing a search results page | Whether the panel was ever complete |
What the number is, once you have it#
Even a perfectly current record hands you a value that was never a measurement of the item in your hand. Under EU law the figures on a label "shall, according to the individual case, be average values based on: (a) the manufacturer's analysis of the food; (b) a calculation from the known or actual average values of the ingredients used; or (c) a calculation from generally established and accepted data"4.
So the scan is faithfully retrieving an average of a production run. That is a perfectly respectable thing for it to be, and it is still a different object from the specific package you are about to eat. How much slack sits inside a declared figure is covered in how accurate nutrition labels are, and why the same product can carry legitimately different numbers in different jurisdictions is worked through in why calorie estimates vary.
Scanning well#
The conclusion is not to stop scanning. A scan skips the entry-selection step that does most of the damage in a food database, and packaged food remains the best-characterized number in anyone's day. It is to scan with the right expectations.
Trust the scan most for identity and pack size. These are precisely the two things GS1's rules protect. If the barcode resolves, you have the right product at the right declared net content.
Check the panel against the pack when the product matters. For a staple you eat daily, thirty seconds comparing the app's calories-per-100g against the printed figure is worth more than any other verification you could run. If they disagree, the pack wins — it is the newer document. What each line on it actually means is in the nutrition label reading guide.
Treat a packaging redesign as a prompt to re-check. New artwork often accompanies a reformulation, and by the rules above the barcode may not have moved. A pack that suddenly looks different is the one visible signal you get.
Be more careful with imported and regional variants. Different markets apply different thresholds for renumbering, and the same brand can be a genuinely different food in another country.
Do not upgrade your confidence just because the entry looks complete. A scan removes the searching error, not the label's own tolerance, not the record's age, and not the gap between an average and your package. It moves you to the good end of the range described in how accurate calorie counting is — which is where the remaining uncertainty is small, but not zero, and worth reporting as such rather than as a precise figure. The wider case on what apps do and do not get right is in how accurate calorie-tracking apps are.
FAQ#
Are barcode scans accurate enough for calorie tracking?#
Yes — they are the strongest entry method available, because they skip the step where you choose between near-duplicate database entries and because the underlying figure is a manufacturer's declaration. The residual uncertainty is the label's own tolerance plus the age of the record, and neither is visible in the app.
Does a product get a new barcode when the recipe changes?#
Only when two conditions are both satisfied. GS1 requires a new GTIN where a formulation change "affects the legally-required declared information on the packaging" and "the brand owner expects the consumer or supply chain partner to distinguish the difference" — and states plainly that "both conditions must be met"1. A change to net content, by contrast, always requires a new number.
Should I trust the scanned data or the label on the pack?#
The pack, whenever they disagree. The physical label is the most recent document in the chain; the database record is a copy of some earlier label, and even USDA's institutional branded collection refreshes monthly rather than continuously3. Correct the entry to match the pack and the correction sticks for every future scan.
Sources#
- GS1. GTIN Management Standard, Release 1.1, Ratified, September 2023.
- Li Z, Forester S, Jennings-Dobbs E, Heber D. Perspective: a comprehensive evaluation of data quality in nutrient databases. Adv Nutr. 2023;14(3):379-391.
- USDA Agricultural Research Service. FoodData Central — data type documentation (Branded Foods).
- Regulation (EU) No 1169/2011 on the provision of food information to consumers, Article 31 — expression of nutrition values.



