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.

How to Track Calories Without Fooling Yourself

Food labels and databases carry known errors. Learn where calorie numbers come from, how to weigh portions, and how to log accurately without fooling yourself.

Calorie tracking fails for arithmetic reasons before it fails for motivational ones. A food diary is a measurement, and every measurement has an error term. The errors in food data are not random noise; they have known sizes and known directions. A label can legally understate energy by 20%. A cup of rice can vary by 40% depending on packing. A cooked chicken breast logged against a raw entry understates protein and overstates water. The procedure below removes the four errors that make tracking useless: crowd-sourced entries, estimated portions, cooked-versus-raw mismatches, and omitted oils and drinks.

This page is not medical advice. If weight or eating is causing distress, contact a clinician. In the US, the National Eating Disorders Association helpline is 1-800-931-2237. In the UK, Beat’s helpline is 0808 801 0677.

Where the numbers come from

Every calorie figure on a label or in a database traces back to one of four sources: bomb calorimetry, the Atwater system, a manufacturer’s calculation, or a user submission. The first is a laboratory measurement. The second is a set of average conversion factors. The third is arithmetic on a recipe. The fourth is a guess.

The Atwater system assigns 4 kcal per gram of protein, 4 kcal per gram of carbohydrate, 9 kcal per gram of fat, and 7 kcal per gram of alcohol. These are averages. The actual metabolizable energy of a specific protein depends on its amino acid profile and the food matrix. For mixed diets, the error is small. For isolated fibers, sugar alcohols, and novel proteins, it can exceed 20%.

A label in the US is governed by 21 CFR 101.9. It permits a 20% tolerance on calories: the stated value can be 20% below the actual value and still be compliant. In the EU, Regulation 1169/2011 sets tolerances for foods other than supplements at ±20% for energy. Rounding rules compound this. A food with 4 kcal per serving can be labeled “0 calories” if the serving size is small enough. A food with 0.4 g of fat can be labeled “0 g fat.”

Databases inherit these errors and add their own. A verified entry from a national database, such as USDA FoodData Central, carries the analytical error of the underlying sample. A crowd-sourced entry carries the error of whoever typed it, plus the error of the label they copied, plus the error of the serving size they assumed.

Data sourceTypical energy errorCondition that changes the figure
Bomb calorimetry±2-5%Laboratory method, not available for most foods
USDA FoodData Central (SR Legacy)±5-10%Analytical variation across samples
US nutrition labelup to -20%21 CFR 101.9 tolerance; rounding to nearest 5 or 10 kcal
EU nutrition label±20%Regulation 1169/2011, foods other than supplements
Crowd-sourced entry±30% or moreUser-submitted; no verification
Cooked vs raw weight±25%Water loss or gain during cooking

The four errors and the procedure that removes each

Error 1: Choosing a crowd-sourced entry over a verified one

A calorie tracking app is a front end. The differences that matter are in the database behind it. A verified entry has a source: USDA, a manufacturer’s laboratory analysis, or a national food composition table. A crowd-sourced entry has a username.

The procedure: when logging a whole food, search for the generic entry first. “Apple, raw, with skin” is a USDA entry. “Apple from Joe’s” is not. When logging a branded product, scan the barcode. If the barcode returns a crowd-sourced entry, check the label yourself and create a private entry with the label’s numbers. The label is the manufacturer’s legal statement; the crowd-sourced entry is not.

Error 2: Estimating portions instead of weighing

Volume estimates for solid foods are poor. A study in the Journal of the American Dietetic Association found that people underestimated portion sizes by 20-50% for amorphous foods like pasta and cereal. The error is not random; it is directional. A “cup” of rice depends on how tightly it is packed. A “tablespoon” of peanut butter depends on whether the knife is level.

The procedure: weigh solid foods in grams. Use a scale that reads to 1 g. For liquids, use a graduated cup or weigh them. For foods eaten away from home, use a standard reference: a deck of cards is about 85 g of meat, a golf ball is about 20 g of nuts. These are estimates, but they are anchored estimates.

Error 3: Logging cooked weight against raw entries

This is the most common arithmetic error in food diaries. A database entry for “chicken breast, raw” has a different energy density than “chicken breast, cooked.” Cooking drives off water. A 100 g raw chicken breast becomes about 75 g cooked. If the cooked weight is logged against the raw entry, the energy is understated by 25%.

The procedure: decide whether the entry is raw or cooked before weighing. If the entry says raw, weigh the food raw. If the entry says cooked, weigh it cooked. When a recipe is involved, weigh the raw ingredients, sum the energy, then weigh the final cooked dish and divide. The energy per gram of the cooked dish is the total energy divided by the cooked weight.

Error 4: Omitting oils and drinks

Oil used in cooking is often left unlogged. A tablespoon of olive oil is about 14 g and 119 kcal. If three meals a day each use a tablespoon, that is 357 kcal unlogged. Drinks are similar: a 12 oz can of soda is about 140 kcal; a large latte with whole milk is about 250 kcal. These are not trivial. They are the difference between maintenance and a surplus.

The procedure: log the oil before it goes in the pan. Put the pan on the scale, tare, pour, and record the weight. For drinks, log them before drinking. If a drink is shared, log the fraction consumed.

A worked calculation

A reader wants to log a chicken and rice meal. The database has a raw chicken breast entry and a cooked white rice entry. The reader weighs the cooked chicken at 150 g and the cooked rice at 200 g. The raw chicken entry lists 165 kcal per 100 g. The cooked rice entry lists 130 kcal per 100 g.

Step 1: Identify the state of each entry.
  Chicken entry: raw. Rice entry: cooked.

Step 2: Convert the cooked chicken weight to raw equivalent.
  Raw-to-cooked yield for chicken breast: about 75%.
  Raw weight = cooked weight / 0.75
  Raw weight = 150 g / 0.75 = 200 g

Step 3: Calculate energy from the raw chicken entry.
  Energy = 200 g * (165 kcal / 100 g) = 330 kcal

Step 4: Calculate energy from the cooked rice entry.
  Energy = 200 g * (130 kcal / 100 g) = 260 kcal

Step 5: Add oil used in cooking.
  Oil logged: 10 g olive oil at 9 kcal/g = 90 kcal

Step 6: Total meal energy.
  Total = 330 + 260 + 90 = 680 kcal

If the reader had logged the cooked chicken weight against the raw entry, the chicken energy would have been 150 g * 1.65 = 248 kcal, understating the meal by 82 kcal. Over three meals, that is 246 kcal per day, or about 1,720 kcal per week. The 7,700 kcal per kilogram figure describes adipose tissue, not body weight, and it is wrong in both directions: early weight change includes water, and later maintenance falls as mass is lost.

What people get wrong about this

The mistakes above are not stupid. They are natural consequences of how food data is presented. A database search returns a list of entries with no indication of which is verified. A label says “0 g trans fat” because the rounding rule allows it, not because the food contains none. A recipe says “1 cup rice” without specifying whether that is before or after cooking.

The natural response is to distrust all numbers. That is also wrong. The numbers are useful if the error is bounded. A verified entry with a 10% error is better than an estimate with a 50% error. The procedure is to prefer verified entries, weigh when possible, match the state of the food to the state of the entry, and log the oil and the drinks. The remaining error is small enough that it does not obscure the trend.

What the reader should do differently is weigh rather than distrust. A scale costs less than a week of takeout. Weighing takes seconds. The alternative is a food diary that is a work of fiction with a consistent bias.

Common questions

How accurate are calorie tracking apps?

The app is only as accurate as the database entry selected. A verified entry from USDA FoodData Central carries an analytical error of about 5-10%. A crowd-sourced entry can be off by 30% or more. The app's interface does not change the underlying data.

Should I weigh food raw or cooked?

Match the weight to the entry. If the database entry says raw, weigh the food raw. If it says cooked, weigh it cooked. Cooking drives off water, so a cooked weight logged against a raw entry understates energy by about 25% for meat.

Why does my food label say 0 calories when it has calories?

US labeling rules allow a product to round down to zero if it contains less than 5 kcal per serving. The food still contains energy; the serving size is simply small enough that the rounded value is zero. Multiple servings carry the full amount.

Do I need to log oils and drinks?

Yes. A tablespoon of oil is about 119 kcal. A 12 oz soda is about 140 kcal. These are often omitted because they are not part of the plate, but they count toward the daily total and can be the difference between maintenance and a surplus.

What is the best way to count calories?

Use verified database entries, weigh solid foods in grams, match the state of the food to the state of the entry, and log oils and drinks before consuming them. The method matters more than the app.

Read next