DataFood
Educational only, and not medical advice. The figures on this site are estimates from population equations, not measurements of any individual. If you are pregnant, under 18, managing a medical condition, or have any history of disordered eating, speak to a clinician rather than a calculator.

Why Two Food Databases Give Different Numbers

Food database accuracy varies by source. USDA data, manufacturer labels, and user entries give different numbers for the same food. Here is why and how to read them.

A food’s calorie count is not a single number. It is an estimate produced by a specific method, and different databases use different methods. USDA FoodData Central publishes values derived from laboratory analysis or calculated from recipes. Manufacturer labels report values the company is legally responsible for, within a tolerance. Crowd-sourced apps contain entries typed by users, and those entries are the largest source of error in practice. The same banana can appear as 89 kcal, 105 kcal, or 121 kcal depending on which entry is selected. The difference is not random noise; it comes from where the number originated and what rules were applied when it was written down.

Where nutrition numbers come from

Three sources dominate consumer-facing food databases.

USDA FoodData Central. This is the U.S. Department of Agriculture’s public database. It contains several data types. Foundation Foods are analyzed in laboratories, with values for proximates, minerals, and vitamins. SR Legacy is the older Standard Reference database, now frozen. Branded Foods are manufacturer-submitted label data. Survey Foods (FNDDS) are used for national intake surveys and are often recipe-based. A Foundation Foods entry for raw apple may list 52 kcal per 100 g, derived from bomb calorimetry and Atwater factors. A Branded Foods entry for a specific apple-flavored snack may list 120 kcal per 30 g serving, taken directly from the label.

Manufacturer submissions. Companies submit label values to USDA or publish them on packaging. The FDA allows a tolerance for calories: for a product with 50 kcal or more per serving, the label may be up to 20% above the analyzed value. For a product with less than 50 kcal, the label may be up to 20% above or below. This means a label claiming 100 kcal could legally contain 80 kcal or 120 kcal. The tolerance exists because food is variable and analytical methods have uncertainty, not because companies are permitted to lie.

Crowd-sourced entries. Apps like MyFitnessPal allow users to create new food entries. A user may type “banana” and enter 105 kcal based on a medium banana they weighed once. Another user may enter 121 kcal for a large banana. Neither entry is verified against a laboratory. MyFitnessPal accuracy depends entirely on which entry is chosen. The app’s database contains millions of entries, many duplicated with different values. A search for “chicken breast” returns raw, cooked, grilled, breaded, and rotisserie versions, each with different calorie counts per 100 g.

Why the same food differs by 20% or more

Differences arise from four sources: analytical method, moisture loss or gain, rounding rules, and user error.

Analytical method. Atwater factors are averages. Protein and carbohydrate each yield about 4 kcal per gram, fat about 9 kcal per gram, alcohol about 7 kcal per gram. These are rounded general factors. The actual metabolizable energy of a specific protein depends on its amino acid composition and the food matrix. For most mixed diets, the error is small, but for single foods it can be several percent. USDA Foundation Foods use specific Atwater factors when available; labels often use the general factors.

Moisture. Cooking changes water content. A raw chicken breast is about 75% water; a cooked one is about 65% water. The same 100 g of chicken breast therefore contains more protein and fat after cooking. USDA entries distinguish raw from cooked. A user who selects “chicken breast, cooked” but weighs the meat raw will overestimate calories by roughly 20-30%. The reverse mistake underestimates.

Rounding. FDA labeling rules permit rounding to the nearest 5 kcal for values above 50 kcal, and to the nearest 5 kcal below 50 kcal. A product with 47 kcal may be labeled “45 kcal.” A product with 2.4 kcal may be labeled “0 kcal” if it contains less than 5 kcal per serving and meets other criteria. This is why a zero-calorie cooking spray can still contribute calories when used in quantity. The rounding rule is legal and disclosed in FDA guidance, but it means the label is not an exact measurement.

User error. A crowd-sourced entry may be created from a label, from a restaurant website, from a memory, or from another app. The entry may specify a serving size that does not match what the user eats. One entry for “oatmeal” may be 1 cup cooked, another 1/2 cup dry. Dry oats weigh about 40 g per 1/2 cup and contain about 150 kcal. Cooked oats weigh about 234 g per 1 cup and contain about 166 kcal. The numbers are close, but the serving descriptions are not interchangeable.

A table of conditions that change the figure

ConditionEffect on reported calories per 100 gExample
USDA Foundation Foods vs. Branded FoodsFoundation values are analyzed; branded values are label-submitted with up to 20% toleranceRaw apple: 52 kcal (Foundation) vs. 60 kcal (branded applesauce)
Raw vs. cookedCooking concentrates solids by losing waterChicken breast: 120 kcal raw vs. 165 kcal cooked
FDA roundingValues may be rounded to nearest 5 kcal; below 5 kcal may be listed as 047 kcal may appear as 45 kcal
Crowd-sourced entryUser-typed, unverified, often duplicated with different valuesBanana: 89, 105, 121 kcal entries coexist
Serving size definitionDry vs. cooked, cup vs. gram, piece vs. weightOats: 1/2 cup dry (40 g) vs. 1 cup cooked (234 g)

Worked calculation: recovering the real figure from a label

Suppose a label states 110 kcal per 30 g serving. The FDA tolerance allows the true value to be up to 20% above or below. The range is 88 to 132 kcal. If the product is a dry mix and the user adds water, the label value applies to the dry mix as sold. If the user cooks it and weighs the cooked product, the density changes. The following steps show how to convert a label value to a per-gram basis and compare it to a USDA entry.

Label: 110 kcal per 30 g serving
Step 1: Calories per gram = 110 / 30 = 3.67 kcal/g
Step 2: Apply FDA tolerance: 3.67 * 0.80 = 2.94 kcal/g (low)
Step 3: Apply FDA tolerance: 3.67 * 1.20 = 4.40 kcal/g (high)
Step 4: USDA Foundation entry for similar food: 3.50 kcal/g
Step 5: Difference from label midpoint: (3.67 - 3.50) / 3.50 = 4.9%
Step 6: Difference from label low: (2.94 - 3.50) / 3.50 = -16.0%
Step 7: Difference from label high: (4.40 - 3.50) / 3.50 = 25.7%

The label midpoint is close to the USDA value, but the legal range spans from 16% below to 26% above the USDA figure. For a single food, this range is small in absolute terms. For a day’s intake of 2,000 kcal, a systematic 10% error is 200 kcal, which over weeks can shift energy balance. The direction of the error depends on whether the user consistently chooses entries that are high or low.

What people get wrong about food database accuracy

The natural mistake is to treat the first search result as the true value. This is natural because apps present entries in a list without ranking by data quality. A user searching “apple” sees “Apple, raw, with skin” from USDA, “Apple” from a user entry, and “Apple slices” from a restaurant. The first result may be a user entry with a generic name. The user has no way to know which is most accurate unless they recognize the source.

Another mistake is to assume that because a label is legally required, it is precise. The FDA tolerance exists because measurement is uncertain. A label is a declaration, not a laboratory report. The rounding rules mean that small values can be printed as zero. A cooking spray labeled “0 kcal” may contain 0.5 kcal per spray. Ten sprays is 5 kcal, which rounds to 5 kcal on a label but is not zero in the body.

A third mistake is to distrust all numbers and stop tracking. The better response is to choose entries from USDA Foundation Foods or SR Legacy when available, to weigh food in grams rather than use cups or pieces, and to use the same entry consistently for the same food. Consistency reduces random error. If a user always selects the same USDA entry for oats and weighs the dry oats, the error is small and stable. If the user switches between entries, the error is larger and unpredictable.

What to do differently

Weigh food in grams. A digital scale costs little and removes the serving-size ambiguity. Use USDA FoodData Central as the reference when a whole food is involved. For packaged foods, use the label value but recognize its tolerance. For restaurant foods, use the restaurant’s published data if available; otherwise, use a USDA entry for a similar food and accept a wider range. When using a crowd-sourced app, search for the USDA entry by name and select it. If only user entries exist, check the serving size and the source. A user entry that cites a USDA number is more reliable than one with no source.

The goal is not a perfect number. The goal is a number with a known direction and size of error. A weighed portion of a USDA Foundation food has an error of a few percent. A label value has an error of up to 20%. A user entry has an error that can exceed 50%. Knowing which category a number falls into is more useful than the number itself.

This article is for information only and is not medical advice. If you are concerned about your relationship with food or your eating behavior, contact the National Eating Disorders Association Helpline at 1-800-931-2237 (U.S.) or seek a qualified professional.

FAQ

Q: Why does MyFitnessPal show different calories for the same food? A: MyFitnessPal contains both USDA-sourced entries and user-created entries. User entries are not verified, so the same food can have multiple entries with different calorie values. The app does not rank entries by data quality. Choosing the USDA entry when available reduces the discrepancy.

Q: Is USDA food data more accurate than MyFitnessPal? A: USDA FoodData Central includes laboratory-analyzed values for many foods, which are more accurate than unverified user entries. However, USDA also contains branded label data with the same FDA tolerance as any label. The most accurate entries are Foundation Foods and SR Legacy, not Branded Foods.

Q: Why do calorie counts differ between raw and cooked food? A: Cooking removes water, so the same weight of cooked food contains more solids and therefore more calories. A 100 g raw chicken breast has about 120 kcal; 100 g cooked chicken breast has about 165 kcal. The difference is water loss, not a change in the food’s energy content.

Q: Can a food label legally say zero calories when it has calories? A: Yes. FDA rules allow a product with less than 5 kcal per serving to be labeled “0 kcal.” A cooking spray with 0.5 kcal per spray can be labeled zero. Using multiple servings multiplies the calories, so the label value becomes misleading in practice.

Q: How can I get a more accurate calorie count? A: Weigh food in grams and use a USDA Foundation Foods entry when possible. For packaged foods, use the label but understand its tolerance. For restaurant foods, use the restaurant’s published data or a USDA entry for a similar food. Consistency in entry selection reduces error more than any single correction.

Common questions

Why does MyFitnessPal show different calories for the same food?

MyFitnessPal contains both USDA-sourced entries and user-created entries. User entries are not verified, so the same food can have multiple entries with different calorie values. The app does not rank entries by data quality. Choosing the USDA entry when available reduces the discrepancy.

Is USDA food data more accurate than MyFitnessPal?

USDA FoodData Central includes laboratory-analyzed values for many foods, which are more accurate than unverified user entries. However, USDA also contains branded label data with the same FDA tolerance as any label. The most accurate entries are Foundation Foods and SR Legacy, not Branded Foods.

Why do calorie counts differ between raw and cooked food?

Cooking removes water, so the same weight of cooked food contains more solids and therefore more calories. A 100 g raw chicken breast has about 120 kcal; 100 g cooked chicken breast has about 165 kcal. The difference is water loss, not a change in the food's energy content.

Can a food label legally say zero calories when it has calories?

Yes. FDA rules allow a product with less than 5 kcal per serving to be labeled "0 kcal." A cooking spray with 0.5 kcal per spray can be labeled zero. Using multiple servings multiplies the calories, so the label value becomes misleading in practice.

How can I get a more accurate calorie count?

Weigh food in grams and use a USDA Foundation Foods entry when possible. For packaged foods, use the label but understand its tolerance. For restaurant foods, use the restaurant's published data or a USDA entry for a similar food. Consistency in entry selection reduces error more than any single correction.

Read next