How to Count Macros (and How Accurate It Can Actually Be)
By Jesse · Last updated August 20, 2026
Counting macros is simple to describe: get a daily calorie target, split it into protein, carbohydrate, and fat, and log food against the three totals. The part nobody explains is that every input to that arithmetic is already wrong by a knowable amount — the label, the database entry, the scale, and the state the food was in when you weighed it. This guide puts a size on each of those errors, then shows how to set up tracking so they stop mattering.
This is the guide that owns tracking accuracy and method. Choosing the calorie target in the first place is covered in how many calories to eat to lose weight, and how much protein to aim for in how much protein you really need per day.
The setup, in four decisions
Almost all the accuracy you can get comes from four choices made once, before you log a single meal.
- Get the three targets. The macro calculator produces a calorie figure and a protein, carbohydrate, and fat split from your stats and goal. Write them down and leave them alone for at least a fortnight.
- Buy a digital scale that reads to 1 g. Volume measures are the largest avoidable error in home tracking, because the same cup of rice, oats, or nut butter weighs differently every time it is packed. A scale costs less than a month of a tracking app subscription.
- Pick one food database and stay in it.Entries disagree, and switching sources mid-plan changes your numbers without changing your food. Prefer entries attributed to USDA or copied from a manufacturer's own label over crowd-sourced ones.
- Decide raw or cooked, once, per food. Weigh in the state your database entry describes. This is the error that catches most people, and the section below shows how big it is.
What a food label is legally allowed to say
A Nutrition Facts panel is not a measurement of the packet in your hand. It is a declaration that has to survive a compliance test, and the regulation that defines that test — 21 CFR 101.9 — permits more slack than most people would guess, in a direction that is not symmetrical.
| Nutrient | What the law requires | Worst legal case for a 100-unit declaration |
|---|---|---|
| Calories, total fat, saturated fat, sugars, sodium | Must not exceed 120% of the declared value | 120 — a fifth more than the label says |
| Protein, carbohydrate, fibre (naturally occurring) | Must be at least 80% of the declared value | 80 — a fifth less than the label says |
| Protein, vitamins, minerals (added to the food) | Must be formulated to at least the declared value | 100 or more |
| Calories, as printed | Rounded to the nearest 5 kcal up to 50, nearest 10 kcal above; under 5 kcal may be printed as zero | A 4 kcal serving may be declared as 0 kcal |
| Fat, as printed | Rounded to the nearest 0.5 g below 5 g, nearest 1 g above; under 0.5 g may be printed as zero | 0.4 g of fat may be declared as 0 g |
21 CFR 101.9(c)(1) and (c)(2) for the rounding rules, 101.9(g)(4) and (g)(5) for the compliance tolerances. The tolerances are enforcement thresholds, not typical errors.
Read the first two rows together and the asymmetry is the point. The legal slack runs towards more calories and less protein than declared — exactly the two directions that quietly undo a fat-loss plan. A day built entirely from packaged food declaring 2,000 kcal and 150 g of protein could, with every item at its legal limit and every item still compliant, deliver 2,400 kcal and 120 g of protein. That is 400 kcal of overshoot, enough to erase a 500 kcal intended deficit almost entirely.
Nothing here suggests manufacturers routinely sit at the limit; the tolerances exist because analytical methods and agricultural produce both vary, and most products are much closer than that. The useful conclusion is narrower and still important: the label is not precise enough to justify treating your logged total as a measurement, so it should never outrank what the scale and the tape measure tell you over a month.
The rounding rules are a smaller but more comic problem. Anything under 5 kcal per serving may legally be printed as zero, which is how cooking sprays, zero-calorie syrups, and single-serve sauces exist. Ten servings of a genuinely 4 kcal item is 40 real calories logged as none. It does not matter once; it matters if it is how you season everything.
Raw or cooked: the error that dwarfs the others
Water is not a macronutrient, but it is most of the weight of most food. Cooking drives water out of meat and into grains and pulses, so the same food changes its per-100 g figures dramatically without a single macronutrient being added or removed. Both columns below are from USDA FoodData Central, per 100 g.
| Food | Per 100 g uncooked | Per 100 g cooked | Error if you weigh cooked, log raw | Error if you weigh raw, log cooked |
|---|---|---|---|---|
| Chicken breast | 120 kcal (raw) | 165 kcal (roasted) | +38% | -27% |
| Beef mince, 93% lean | 152 kcal (raw) | 193 kcal (broiled) | +27% | -21% |
| White rice | 365 kcal (dry) | 130 kcal (boiled) | -64% | +181% |
| Pasta | 371 kcal (dry) | 158 kcal (boiled) | -57% | +135% |
| Lentils | 352 kcal (dry) | 116 kcal (boiled) | -67% | +203% |
| Potato | 77 kcal (raw) | 93 kcal (baked) | +21% | -17% |
USDA FoodData Central SR Legacy. A positive error means you eat more than you logged.
The two failure modes are opposite and both common. Weighing chicken after roasting and logging it against a raw entry under-counts by 38%, because the water that left concentrated everything else. Weighing rice after boiling and logging it against a dry entry runs the other way and is far worse: boiled rice is 64% less calorie-dense than dry, so logging 130 kcal of food as if it were dry rice inflates it by 181% — roughly triple. Someone doing that with a large portion can log a 900 kcal dinner that was 400.
Weigh raw where you can. It is the state databases default to, it is what you bought, and unlike a cooked weight it does not depend on how long the pan was on. Where raw is impossible — a shared meal, a batch cooked days ago — use an entry that explicitly says cooked, and check the calorie figure looks like the cooked column above rather than the uncooked one.
Why two databases disagree about the same food
Crowd-sourced typos explain some of it. The rest is genuine, and it is sanctioned by the same regulation: 21 CFR 101.9(c)(1) lets a manufacturer calculate calories using food-specific Atwater factors, or the general 4, 4, and 9 kcal per gram figures, or bomb calorimetry. Those methods do not agree, because the general factors assume every food's protein, carbohydrate, and fat are digested equally well, and they are not. USDA credits the protein in vegetables at 2.44 kcal per gram, not 4.
| Food (per 100 g) | USDA energy value | 4/4/9 from the same grams | Difference |
|---|---|---|---|
| Spinach (raw) | 23 kcal | 29 kcal | +28.1% |
| Broccoli (raw) | 34 kcal | 41 kcal | +21.1% |
| Almonds (raw) | 579 kcal | 620 kcal | +7.1% |
| Lentils (dry) | 352 kcal | 361 kcal | +2.7% |
| Milk, 2% fat (fluid) | 50 kcal | 50 kcal | +0.4% |
| White rice, long grain (dry) | 365 kcal | 354 kcal | -2.9% |
| Cod (raw) | 82 kcal | 77 kcal | -5.8% |
| Egg white (raw) | 52 kcal | 48 kcal | -7.6% |
Both columns computed from the same USDA macronutrient figures. A positive difference means 4/4/9 reads high.
The spread runs from 28.1% high for spinach to 7.6% low for egg white. In absolute terms the vegetable errors are trivial — a fifth of 23 kcal is nothing — but the same effect on nuts, seeds, and pulses is worth real calories, and it explains why an app can show a total that does not equal the macros it just listed. Our macros by food chart works through the factors in full and lists the source record for every food.
The practical response is not to chase the correct method. It is to stop switching: pick one database, accept its convention, and let your own weight trend absorb whatever bias it carries. A consistent few-percent error you calibrate against is harmless. An inconsistent one is not.
Where to spend your weighing effort
Precision is not free — it costs attention, and attention is the resource that runs out first. Spend it where a gram is expensive. Calories per gram varies by a factor of 38 across the foods in our composition table, so the same 10 g slip costs wildly different amounts depending on what it is in.
| Food (per 100 g) | Energy density | Cost of a 10 g error |
|---|---|---|
| Olive oil (as sold) | 8.84 kcal/g | 88 kcal |
| Walnuts (raw) | 6.54 kcal/g | 65 kcal |
| Peanut butter, smooth (unsalted) | 5.98 kcal/g | 60 kcal |
| Almonds (raw) | 5.79 kcal/g | 58 kcal |
| Carrots (raw) | 0.41 kcal/g | 4 kcal |
| Broccoli (raw) | 0.34 kcal/g | 3 kcal |
| Spinach (raw) | 0.23 kcal/g | 2 kcal |
USDA FoodData Central. The four most and three least calorie-dense foods in our food table.
Weigh the top of that list properly: oils, butter, nut butters, nuts, seeds, hard cheese, and anything poured rather than counted. Free-pouring olive oil 10 g past the tablespoon you logged adds 88 kcal, and it is very easy to be 10g out by eye. Estimate the bottom of the list freely — being 50 g out on spinach is not worth a second of anyone's day.
Two more habits pay for themselves. Weigh the fat you cook in, not the fat you intend to eat; oil left in the pan is a small correction and oil absorbed into food is not. And for anything you eat several times a week, weigh it carefully a few times, then reuse that figure — a repeated meal only has to be measured properly once.
The error you cannot fix by weighing more carefully
All of the above concerns the food. The larger error is usually the logging itself, and it runs one direction: people under-record. The finding most often quoted on this comes from a 1992 study of people who reported being unable to lose weight on a low intake; measured against doubly labelled water, that group under-reported food by 47% on average. It is worth being precise about what that shows, because it is routinely overstated: those ten participants were a deliberately selected diet-resistant subgroup, not a sample of the population, so 47% is not the typical error. What the study established is that the direction is systematic and the magnitude can be extreme, in people who are certain they are logging honestly.
Eating out is the other reliable gap. When researchers chemically analysed 269 restaurant menu items against their published figures, the average difference was small — about 10 kcal per portion, not statistically significant. But 19% of items exceeded their stated calories by at least 100 kcal, the worst tenth averaged 289 kcal over, and the items marketed as low-calorie were the ones most likely to understate. Averages are reassuring; the tail is what lands on your plate.
Neither of these is solved by a better scale. They are solved by treating your log as a controlled input rather than a measurement, and by checking it against the one number that cannot be misreported — your weight trend. The method for that is in why TDEE calculators are estimates.
An error budget worth planning around
Put the pieces together and you get a realistic picture of what tracking delivers. Label tolerance and rounding contribute a few percent. Database method disagreement contributes a few percent more. Weighing slips contribute tens of calories, concentrated in dense foods. Cooked-versus-raw confusion can contribute hundreds if it goes unnoticed. Un-logged items — the tasting spoon, the office biscuit, the second splash of milk — contribute the most of all.
There is no single published figure for how accurate careful home tracking is, and it would vary by person and by diet in any case. The defensible summary is that the food-side errors above are individually small and collectively worth a few percent, that the logging-side errors are larger and one-directional, and that tracking therefore tells you your intake to the nearest few hundred calories rather than to the nearest ten. That is still enormously more than knowing nothing — and it is why a sensible plan is built to tolerate the error rather than to assume it away:
- Use a deficit larger than your error bar. A 500 kcal target survives a 10% logging error and still produces loss. A 200 kcal target may not survive it at all.
- Judge the plan on the trend, not the log. Compare seven-day average weights over two to three weeks. If the trend moves as intended, your tracking is accurate enough by definition — whatever the bias, you have calibrated around it.
- Keep the method fixed while you measure. Changing database, changing raw to cooked, or getting stricter mid-fortnight changes the reading and ruins the comparison.
- Hold protein and calories, relax the rest. Within about 5 to 10 g of protein and 100 kcal of the calorie target is close enough. The carbohydrate-to-fat split can move a long way with no effect on fat loss.
Common questions
How do I count macros?
Set a daily calorie target, split it into protein, carbohydrate, and fat, then log what you eat against those three totals. In practice: weigh food on a digital scale rather than using cups or eyeballing, weigh it in the state your database entry describes (usually raw), pick one food database and stay in it, and treat the daily figures as a seven-day average rather than a daily pass or fail.
How accurate is macro tracking?
More accurate than not tracking, and less accurate than the two decimal places an app displays. Three known error sources stack up: US food labels may legally overstate protein and carbohydrate by 20% (the regulation sets a floor at 80% of the declared value) and understate calories by the same margin, database entries for the same food differ because different legal calculation methods are permitted, and weighing food cooked when the entry is raw shifts chicken breast by 38%. A realistic expectation is a few hundred calories a day, which is why the weight trend is the thing you actually calibrate against.
Should I weigh food raw or cooked?
Raw, because that is the state most database entries describe and it is the only state that does not depend on how long you cooked it. The difference is large in both directions: 100 g of chicken breast becomes 165 kcal once roasted rather than 120 kcal, while 100 g of dry rice becomes 130 kcal once boiled rather than 365 kcal. If you can only weigh cooked food, use a database entry that says cooked.
Do I need to weigh everything?
No, and where you spend the effort matters more than how much you spend. Calories per gram sets the price of imprecision: a 10 g error in olive oil costs 88 kcal, and the same error in spinach costs 2 kcal — about 38 times less. Weigh oils, nut butters, nuts, cheese, and anything you eat a lot of. Estimate vegetables freely.
Why do two apps give different macros for the same food?
Partly crowd-sourced entries with typos, and partly a real regulatory answer: 21 CFR 101.9(c)(1) lets a manufacturer derive calories using food-specific Atwater factors, the general 4/4/9 factors, or bomb calorimetry. Those methods disagree — for spinach, 4/4/9 reads 28.1% above the figure USDA publishes. Pick one database, prefer entries sourced from USDA or a manufacturer's own label, and accept that consistency matters more than which one you chose.
How close to my macro targets do I need to be?
Within roughly 100 kcal of the calorie target and 5 to 10 g of the protein target is close enough for the plan to work. The split between carbohydrate and fat can move a long way without changing the outcome, as long as calories and protein hold. Chasing exactness costs adherence, and adherence is worth more than precision.
How do I count macros in restaurant food?
Estimate the components rather than the dish, and expect to be low. When 269 restaurant items were analysed against their published figures the average error was small, but 19% of items exceeded their stated calories by 100 kcal or more, and the worst tenth averaged 289 kcal over per portion. The practical adjustments: assume more oil than you would use at home, log a generous portion size, and do not let one restaurant meal make you rewrite a target that a fortnight of home cooking established.
Is counting macros better than counting calories?
For fat loss the calorie total does most of the work, so counting calories alone gets you most of the result. Adding a protein target is the single most useful refinement, because protein intake changes how much of the weight you lose is fat rather than muscle. Tracking carbohydrate and fat separately mostly helps by making the protein figure and the calorie figure harder to fudge.
Can I stop tracking once I know what I am doing?
Most people can, and many do better on a lighter method: track for two or three weeks to learn what your usual meals actually cost, then keep a rough count and weigh only the calorie-dense items. Re-tracking properly for a fortnight whenever progress stalls or your routine changes catches drift without the daily overhead.
These are general estimates for healthy adults, not medical advice. If you are pregnant, under 18, have a medical condition, or a history of disordered eating, talk to a doctor or registered dietitian before changing your intake or starting to track food. See our methodology for the sources behind these figures.