Calories and macros on the label: why the numbers don't match reality
The same buckwheat in three different apps gives three different calorie counts, and the package shows a fourth. It is not that someone made a mistake: the number on the packaging is obtained by calculation using average coefficients, some of its components are calculated by subtraction, and it is based on raw materials whose composition varies from batch to batch. Let's analyze how this number is put together and where it diverges most from what is on your plate.
What the table must contain
TR TS 022/2011 requires packaged products to include a nutrition facts table based on 100 grams or 100 milliliters. The mandatory minimum includes energy value and the amount of protein, fat, and carbohydrates. Everything else is added by the manufacturer voluntarily or because they committed to it via a label on the front of the package.
The rules do not require a separate line for "including sugars," and most Russian products do not have one. Salt and saturated fats are also included in the table at the manufacturer's discretion. Therefore, the question of "how much sugar is in here" on our shelves is more often resolved by checking the ingredients rather than the table—how exactly to do this is covered in the article on reading ingredient labels.
The "per serving" column is a voluntary addition, and the serving size is determined by the manufacturer. This is not a standardized value: for some cereals, a serving is 30 grams, for others 45; for ice cream, it is half a cup; for cookies, it is two pieces out of twenty in a pack. You can only compare two products using the per-100-gram column; per-serving numbers cannot be compared because the servings behind them are different.
Some products are legally exempt from the table entirely: fresh fruits and vegetables, spices, tea and coffee without additives, drinking and mineral water, vinegar, and anything packed and weighed in the presence of the customer, such as deli cheeses, prepared foods, and bakery items from an in-store bakery. The absence of numbers on such goods is not a violation.
Where the calorie count comes from
Caloric content on packaging is almost never measured directly. The measurement process involves burning a sample in a bomb calorimeter in an oxygen atmosphere and observing how much the water surrounding the chamber heats up. This method provides the total heat of combustion of the substance, but a human is not a furnace: part of what is eaten is not digested and passes through, and some nitrogen is excreted in urine partially oxidized. Therefore, for labeling purposes, calculated calories are used instead of burned ones.
The calculation is performed using Atwater factors. Each gram of a macronutrient is multiplied by its specific number, and the products are added together:
- Protein — 4 kcal per gram. The protein itself is also calculated: in the laboratory, total nitrogen is measured and multiplied by 6.25.
- Carbohydrates — 4 kcal per gram. This refers to digestible carbohydrates, i.e., starch and sugars.
- Fats — 9 kcal per gram. The most significant coefficient: an error of one gram of fat costs nine kilocalories.
- Alcohol — 7 kcal per gram. This explains the caloric content of strong alcohol, which contains neither protein nor carbohydrates.
- Organic acids — 3 kcal per gram. Noticeable in fermented dairy products and marinades.
- Polyols (sugar alcohols) — 2.4 kcal per gram. Maltitol, sorbitol, xylitol; erythritol is considered to have zero.
- Dietary fiber — 2 kcal per gram. Not because humans digest them, but because part of them is fermented by the microflora of the large intestine.
The coefficients are averages across entire classes of substances, which is both their strength and their weakness. The fat in olive oil and the fat inside almond cells receive the same nine, although in measurements, the digestibility of whole nuts turns out to be noticeably lower than calculated: part of the fat remains trapped in intact cell walls and exits undigested. The 6.25 coefficient for protein is also conditional—5.7 is used for wheat, 6.38 for milk, and a general one is used for products with complex recipes.
From this follows the main property of the table: two conscientious manufacturers of the same product will get different numbers because they used different source data—their own laboratory analyses, composition databases, or recipe calculations. Neither of them lied.
Carbohydrates "by difference": where all the errors go
In Russian practice, carbohydrates are most often not measured at all. They are obtained by subtraction: protein, fat, water, ash, and, if listed separately, dietary fiber are subtracted from 100 grams of the product. What remains is declared as digestible carbohydrates.
The method is reasonable: measuring starch, sucrose, glucose, fructose, lactose, and maltose separately is expensive and time-consuming, while water, ash, fat, and nitrogen are measured simply and reliably. But subtraction has an unpleasant property—it collects the errors of all other components into a single number.
If moisture is determined to be two grams lower than the actual amount, these two grams will appear in the "carbohydrates" line and add eight kilocalories to the product. If the wrong nitrogen-to-protein conversion factor is used, the difference will end up there as well. Non-protein nitrogen in raw materials, unaccounted-for ash, and losses during sample drying—everything flows into one cell of the table, often with a sign opposite to the original error.
The opposite case is seen in products where there are almost no carbohydrates. In meat, fish, and hard cheese, the difference between one hundred and the sum of the measured components is mainly methodological noise, which is why 0.5–1 gram of carbohydrates regularly appears in tables where they physically do not exist. On the plate, this value means nothing, but in a weekly log, it adds up to a noticeable number.
This also explains the discrepancy between sources. A reference book, an app database, and a manufacturer's laboratory calculated the difference from different components obtained by different methods. What stands behind each of the four letters and how they add up to a daily norm is analyzed in the article what is KBZHU.
The stated value is a tolerance, not a point
The number on the packaging describes not a specific package, but the average for the production run. TR TS 022/2011 mandates providing nutritional values taking into account permissible deviations, but it does not set a single tolerance figure for all product groups: deviations are regulated by documents for specific types of goods. In European practice, the European Commission's guidance serves as a control benchmark, where for most nutrients the tolerance is about ±20%—an order of magnitude, not our standard, but it shows the scale we are talking about.
The reason for the tolerance is not negligence, but the raw materials. The fat content of milk changes by season, breed, and herd. Starch content in potatoes depends on the variety and storage time. Fat in a piece of pork varies from animal to animal and from cut to cut more than any typographical error. A batch of apples is never identical, and demanding the repeatability of a laboratory reagent from it is pointless.
The practical conclusion from this is calm: a discrepancy of your product with any table within ten percent is a normal part of working with natural raw materials, not deception. Deception is something else—a systematic shift in one direction: an artificially small serving in the column, gross weight instead of net, fat calculated by recipe instead of fact. Such discrepancies do not fluctuate around the truth but always favor the seller.
Where the numbers diverge the most
Discrepancies are not spread evenly across the shelf. There are four groups of goods where the gap between the table and the plate is predictably large.
Products with fluctuating moisture. Bread loses water from the first hour after baking. A fresh loaf and the same loaf two days later contain the same mass of dry matter but a different mass of water, so there are more calories per 100 grams of dried-out bread—even though nothing was added to it. The same applies to meat and fish: when frying, a piece loses a quarter to a third of its mass due to water, and "100 grams" of raw and cooked are two different amounts of food. How to account for this when cooking is covered in the material on calories in homemade food.
Cheese and fat content "in dry matter". The familiar 45% on a wheel of cheese is not 45 grams of fat per 100 grams of product, but the share of fat in the dry residue. At 40% moisture, the product contains approximately 27 grams of fat per hundred, which is almost half the scary number. Russian labels more often provide the already converted value in the table, but on deli cheeses and imports, the old designation is encountered regularly.
Glaze and brine. Frozen fish and shrimp are covered with an ice crust so they do not dry out or oxidize—a necessary technology. According to TR EAEU 040/2016, the net weight is indicated without glaze, and its share is limited: no more than 5% of the net weight for frozen fish and no more than 7% for crustaceans and mollusks. Inspections regularly find excesses, and this is easy to discover at home: defrost, drain the water, weigh. Canned goods and brines are set up the same way—on a jar of olives or corn, there are two weights: the net weight of the entire contents and the weight of the main product, and you should calculate based on the second.
Prepared foods. Supermarket salads, bakery items from an in-store bakery, ready-to-eat meals by weight—their numbers are not measured in a laboratory but calculated by recipe. In a real production kitchen, dressing is poured not by the gram, and oil on a baking sheet is measured by eye. Here, the error easily exceeds any regulatory tolerance and almost always points in one direction: there is more fat on the plate than in the recipe. The caloric content of restaurant dishes falls into the same category.
Bars where the sum does not add up legally
A separate case is "diet" bars and desserts, where multiplying grams by coefficients gives more than the stated caloric content. This is not a printing error, but a direct consequence of the table of coefficients from the second section.
If a bar has 20 grams of carbohydrates and 12 of them are maltitol, those twelve are calculated at 2.4 kcal, not 4. Dietary fiber is calculated at 2 kcal, erythritol at zero, and polydextrose at about one. In total, the bar receives the stated 150 kilocalories instead of the 190 that a person would calculate by multiplying everything by four and nine. Formally, everything is correct.
This is complicated by the fact that there is no single rule for the "carbohydrates" line: one manufacturer lists dietary fiber separately and does not include it in carbohydrates, while another does. Therefore, the sum of proteins, fats, and carbohydrates for different packs is calculated differently, and you cannot blindly transfer it to a log—you need to check against the caloric content, not the sum.
There is also a practical side that is worth knowing in advance. Polyols are poorly absorbed and draw water into the intestinal lumen, so if the content of polyols exceeds 10%, the label must carry a warning about a possible laxative effect if consumed in excess. Two bars in a row is already excessive consumption for many. More details on this class of substances can be found in the article on sugar substitutes, and on fiber in the material on fiber.
What to do with this in the kitchen
The conclusion from all of the above is not "you can't trust the packaging," but "you need to read it in the correct column and with a scale in your hands." The difference between these two positions is roughly the entire accuracy of the calculation.
- Calculate by the per-100-gram column and by the actually weighed mass. The serving size on the pack is a marketing value; your serving is determined by the scale. How much this is in real numbers is shown in the breakdown of serving weight.
- Do not confuse grams with milliliters. The table for liquids is given per 100 ml, and this only coincides with grams for water. Vegetable oil weighs about 92 grams per 100 ml, honey—about 140. A measuring spoon and cup are even more inaccurate: the same volume of flour weighs from 130 to 160 grams depending on how it was poured.
- For products with liquid—weigh the drained product. Olives, corn, tuna, feta, frozen shrimp: put on a sieve, let drain, then put on the scale.
- Record one state. Either everything raw or everything cooked—but do not mix raw cereal with cooked porridge in the same day. The expansion coefficient for buckwheat and rice is different, and it is easy to miss by half.
- Do not transfer numbers between sources. If the product is on the packaging, take it from there; if not, take one reference book and stick to it.
The actual reading of the label does not have to be done manually: FoodGPT recognizes the composition and nutrition table from a photo of the packaging. But it does not replace the scale—the camera does not know how much you put on your plate, and the weight still comes from the scale.
How accurate can counting actually be
Add up the errors honestly: averaged coefficients, carbohydrates from difference, tolerance for raw materials, water loss during cooking, measuring by eye in the kitchen. The accuracy of everyday counting is about ten percent, not units, and no amount of neatness will fundamentally improve it because the limit is set by the source data, not your discipline.
This does not make counting useless—it just works differently than it seems. The value of a log is not in the absolute correctness of the number, but in comparability: the same systematic error repeats day after day and does not prevent you from seeing that today's diet is a third heavier than yesterday's. The trend and structure are read reliably, even when each individual number is approximate. Why this is needed and what exactly it provides is analyzed in the article why count calories.
The practical criterion is simple: if the discrepancy with your expectations does not exceed one-tenth, there is no reason to look for someone to blame. If a product consistently turns out to be "lighter" than expected, but your weight stays the same—you should look not at the table, but at the mass that ended up on your plate.
Frequently asked questions
- Why does the calorie count on the packaging differ from the tables in apps?
- Because both numbers are estimates derived from different source data. The manufacturer calculates based on their own analysis or recipe, while the app database uses a reference guide. In both cases, carbohydrates are calculated by subtraction, which is where all the margins of error accumulate. A discrepancy within ten percent is normal here.
- Can the nutrition facts on the packaging be trusted?
- Yes, as an estimate of the production average, not as an exact description of a specific package. TR TS 022/2011 requires values to be stated with allowable tolerances because the composition of natural raw materials varies from batch to batch. You should be concerned not by the variance, but by a systematic shift in one direction—for example, a small serving size in the column or weight including brine.
- What should I do if there is no nutrition information on the packaging?
- For some products, this is legal: fresh fruits and vegetables, spices, tea and coffee without additives, water, vinegar, and anything weighed in front of the customer are exempt from the table. In such cases, take the value from one reference guide and stick to it so that the error remains consistent from day to day.
- Why does the sum of proteins, fats, and carbohydrates not add up to 100 grams?
- Because in one hundred grams of a product, there is also water, ash (mineral substances), and often dietary fiber, which may not be included in the carbohydrate line. In a cucumber, the sum of protein, fat, and carbohydrates is about 3 grams; the rest is water. It is not supposed to add up to one hundred.
- Should I calculate by the serving size on the package or by 100 grams?
- By 100 grams and by weighed mass. The manufacturer determines the serving size themselves; it is not standardized and can differ twofold between brands, so serving-based numbers are not comparable across products. The 100-gram column is mandatory and identical for everyone.
Read next
- How to read the ingredients list on a label: the rules governing its writing — A label looks like a list of words from which everyone reads something different: one person considers a long list of ingredients a red flag, another looks for E numbers.
- What is KBZHU — KBZHU represents four numbers that describe food: caloric content and the three macronutrients that make it up.
- "Sugar-free," "fitness," "eco": what these labels actually mean — The front of a package speaks in short words: "light," "fitness," "sugar-free," "eco.
This article is for general information. It is not medical advice, a diagnosis, or a prescription for treatment or a diet, and it does not replace a consultation with your doctor. If you have a health condition, are pregnant, take medication, or follow a diet prescribed to you, decisions about food belong with your doctor.
Figures from regulations, guidelines and studies are given as they stood when this article was prepared and may since have changed; check them against the primary sources. This article is not advertising, an offer, or individual advice, and neither the author nor the site owner is responsible for decisions taken on the basis of it.