Both numbers can be right#
Two apps give the same meal different calories because they are running different arithmetic over different source data — and both are following the rules. That is the part that surprises people. The disagreement is usually not a bug one of the apps ought to fix: US labeling law hands a manufacturer a menu of six legal methods for computing the calories it prints on a package, European law assigns dietary fibre 2 calories per gram where the American general method counts it at 4, and the USDA reference sitting behind a large share of every food database in the English-speaking world is not one database but five, each with its own provenance for the same food.
So when your app says 480 and your partner's says 545, you are rarely looking at an error. You are looking at two defensible answers to a question that was never as well-posed as the interface implied. Where estimation error enters and how big it grows is the pillar's job — how accurate calorie counting is audits the full stack. This article is about something narrower: the places where the rules themselves fork, so that two competent tools are guaranteed to disagree no matter how good either one gets.
Six legal ways to calculate one package#
Start where you would assume there is no ambiguity: a sealed package with a printed number.
Federal regulation does not tell a manufacturer what the calories in its product are. It offers a set of methods and lets the manufacturer choose. Under 21 CFR 101.9(c)(1)(i), caloric content may be calculated1:
- (A) "Using specific Atwater factors (i.e., the Atwater method) given in table 13, USDA Handbook No. 74"
- (B) "Using the general factors of 4, 4, and 9 calories per gram for protein, total carbohydrate, and total fat"
- (C) Using those same general factors, but on "total carbohydrate (less the amount of non-digestible carbohydrates and sugar alcohols)"
- (D) "Using data for specific food factors for particular foods or ingredients approved by the Food and Drug Administration (FDA)"
- (E) "Using bomb calorimetry data subtracting 1.25 calories per gram protein to correct for incomplete digestibility"
A sixth method covers sugar alcohols with their own per-type caloric values.
Now read (B) against (C). They differ by one thing: whether fibre and sugar alcohols are counted. For a plain chicken breast the choice is irrelevant. For a high-fibre bar it is the entire ballgame — the same bar, analyzed in the same lab, can carry two different legal calorie declarations depending only on which line its manufacturer picked. Neither is misbranded.
This sits underneath the more familiar slack in a label: the rounding rules, and the tolerance that lets measured calories exceed the printed figure before a food is misbranded (how accurate nutrition labels are takes both apart). The calculation-method fork is upstream of both and is not a tolerance at all. It is a choice, made once, in an office.
Fibre is two calories in Europe and four in America#
Cross the Atlantic and the fork becomes national. EU Regulation 1169/2011 does not offer a menu — it prints one conversion table, and every packaged food sold in Europe uses it:
| Component | EU factor |
|---|---|
| Carbohydrate (except polyols) | 4 kcal/g |
| Protein | 4 kcal/g |
| Fat | 9 kcal/g |
| Fibre | 2 kcal/g |
| Polyols | 2.4 kcal/g |
| Erythritol | 0 kcal/g |
| Organic acid | 3 kcal/g |
| Alcohol (ethanol) | 7 kcal/g |
| Salatrims | 6 kcal/g |
Data: Regulation (EU) No 1169/2011, Annex XIV.
Four of those rows have no American counterpart on a general-method label. Fibre gets an explicit factor of 2 kcal/g. Erythritol is legislated to zero. Organic acids and salatrims get their own lines. A European high-fibre cereal counts its fibre at half the rate the US general method does, and an erythritol-sweetened product carries a genuinely different calorie count in Dublin than in Denver — with nobody in the chain lying.
Two apps can disagree about the same granola bar with neither of them wrong. One is following a regulation written in Washington and the other a regulation written in Brussels, and the two do not agree about what a gram of fibre is worth.
What half a million food diaries showed#
This is not theoretical, and one study is large enough to size it. Researchers took the EPIC cohort's dietary data — 476,768 participants' questionnaires and 34,064 24-hour recalls across ten European countries — and ran identical food data through two reference databases: the US nutrient database (USNDB) and the EPIC Nutrient Database (ENDB). Same eating, two national reference systems3.
| Nutrient | USNDB vs ENDB (questionnaires) | Correlation |
|---|---|---|
| Energy | +61.2 kcal/day (3%) | r = 0.98 |
| Total fat | +1.2 g/day (1.5%) | r = 0.97 |
| Protein | −4.3 g/day (−4.9%) | r = 0.97 |
| Carbohydrate | +24.0 g/day (10.4%) | r = 0.95 |
Data: Van Puyvelde et al., 2020.
Two things fall out of that table, and they pull in opposite directions. Energy came within 3 percent — a reassuring result, and consistent with energy being the sturdiest figure in a nutrient panel rather than the flakiest (why calorie counts are ranges works through why). But carbohydrate diverged by more than 10 percent, and the authors name the reason precisely: "Within the USNDB, data on total carbohydrates was calculated 'by difference' (i.e., the difference between 100 and the sum of the percentages of water, protein, total fat, ash and, when present, alcohol), and includes total dietary fibre. Within the ENDB, the sum of analysed fractions was the reference method, excluding dietary fibre"3.
There is the same fibre fork again, arriving from a completely different direction. "Carbohydrate by difference" means the American number is whatever is left over once everything else is weighed — so every measurement error elsewhere in the analysis lands in the carbohydrate column, and fibre rides along inside it. The European number is a sum of things actually measured, with fibre pulled out and priced separately. These are not a right method and a wrong method. They are two coherent conventions that cannot both produce the same answer.
The USDA is not one database#
The last fork is architectural, and almost nobody who uses a food app knows about it. FoodData Central — the USDA system most nutrition data ultimately traces to — is not a single table. It is five data types with different origins4:
| Data type | Where the numbers come from |
|---|---|
| Foundation Foods | USDA laboratory analysis, with sampling metadata |
| SR Legacy | USDA analysis; final release 2018, never updated again |
| FNDDS | Values for foods reported in the NHANES survey |
| Branded Foods | "Industry-provided label data for over 350,000 foods" |
| Experimental Foods | Foods produced under experimental conditions |
Read the fourth row carefully. Branded Foods values are "received from food industry data providers" and are the numbers "that appear on the product label"5 — which means every fork from the first two sections of this article is already baked into them before your app ever sees them. A Foundation Foods entry for chicken is a laboratory measurement. A Branded Foods entry for chicken is a manufacturer's declaration, computed by one of six permitted methods and rounded by rule. An app resolving your "chicken breast" to one rather than the other has not made a mistake. It has made a choice, silently, on your behalf.
Portions fork too. The USDA is explicit that "serving sizes have slightly different context in each data type. For example, Branded Foods contain serving sizes as listed on the label whereas the Food and Nutrient Database for Dietary Studies uses the portion sizes recorded in the survey"5. So two apps can agree perfectly on calories per 100 g and still disagree on your dinner, because they inherited different default servings for the same word.
All of which sits on top of the ordinary variation a review of food-composition databases catalogues as routine: differences in how foods are described, how energy is calculated, which analytical methods were used, and how recipes are aggregated6. And none of it touches the crowd-sourced entries and near-duplicate search results that dominate consumer apps — a separate mechanism argued in how accurate calorie-tracking apps are and in crowd-sourced food database errors.
So which number should you use?#
The question is malformed, and recognizing that is worth more than any app-switching decision you could make.
Pick one tool and stay in it — not because it is the accurate one, but because every fork described above is stable within a tool. If your app resolves oats to a Branded Foods entry computed with general factors and a label serving, it will do that again tomorrow. The offset is constant, and a constant offset cancels out of the only comparison you actually run: this week against last week. Switching apps mid-diet is the one practical mistake this article can save you from — it changes the ruler halfway through the measurement, and the step change in your total will look exactly like a change in your eating when it is nothing of the kind.
And when two tools disagree, resist the urge to adjudicate. The gap between them is not a contest with a winner. It is an unusually direct readout of how much the food's number depends on conventions nobody consulted you about — which is the same reason a single confident figure was always the wrong shape for the answer.
FAQ#
Does the same food really have different calories in the US and Europe?#
On the label, yes — legitimately. EU Regulation 1169/2011 sets fibre at 2 kcal/g and erythritol at 0 kcal/g in a fixed conversion table2, while the US general method applies 4 kcal/g to total carbohydrate, which is calculated by difference and includes fibre3. The food is identical. The arithmetic the law requires is not.
Which USDA data type should a food entry come from?#
For a whole food, Foundation Foods is laboratory-analyzed and carries sampling metadata; SR Legacy is the same tradition but frozen since 2018 and never updated again4. Branded Foods is label data supplied by industry5 — the right source for a packaged product, and a poor one for "chicken breast" in the abstract. Most consumer apps do not show you which you got.
If two apps disagree, is one of them wrong?#
Usually neither. Running identical diets through two national reference databases moved energy by about 3 percent and carbohydrate by over 10 percent, purely from convention differences3. Treat a disagreement as a measurement of the convention gap, not as evidence against either app — and pick the one you will keep using.
Sources#
- 21 CFR 101.9 — Nutrition labeling of food. Code of Federal Regulations (Cornell Legal Information Institute).
- Regulation (EU) No 1169/2011 on the provision of food information to consumers, Annex XIV — Conversion factors.
- Van Puyvelde H, et al. Comparing calculated nutrient intakes using different food composition databases: results from the EPIC cohort. Nutrients. 2020.
- McKillop KA, et al. FoodData Central, USDA's updated approach to food composition data systems. Curr Dev Nutr. 2021.
- USDA FoodData Central. Frequently Asked Questions.
- Martinez-Victoria E, et al. Intake of energy and nutrients; harmonization of food composition databases. Nutr Hosp. 2015.



