How Your Expenditure Is Calculated

Your expenditure is not a formula filled in once. It is measured from what you eat and how your weight responds, and it updates every day you log.

Updated

Your expenditure is the number of calories your body burns in a day. It is the single most important number in Gravl Macros: every calorie target, every check-in suggestion and every "you're on pace" verdict is built on it. This article explains where it comes from, what moves it, and what you can do to keep it accurate.

The one idea behind everything

Energy that goes into your body either gets burned or gets stored. That is the whole principle:

Calories in − Calories out = Change in stored energy

Rearrange it and you get something useful. If you know how much you ate, and you know how much your body's energy stores changed, you know how much you burned:

Calories out = Calories in − Change in stored energy

Gravl Macros knows the first term because you log it. It can read the second from your trend weight: when your weight trends down, energy is leaving storage; when it trends up, energy is being stored. The difference is your expenditure.

Calories in

2,400 kcal

what you log · per day

Energy stored

−280 kcal

read from your trend weight · per day

Expenditure

2,680 kcal

what your body burned · per day

Notice what is not in the equation: no age, no height, no "moderately active" multiplier. Those things influence your expenditure, but the algorithm never has to guess at them. It sees their combined effect directly, in your own data.

A worked example

Take someone who logs about 2,400 kcal a day and whose trend weight is falling by 0.3 kg a week.

A kilogram of body weight holds a lot of energy, but exactly how much depends on what is being lost: fat stores roughly 9,400 kcal per kilo, lean tissue only about 1,800. Gravl uses your body fat percentage to estimate the mix, which lands most people somewhere between 5,000 and 8,000 kcal per kilo. For our example person it is about 6,400.

StepCalculationResult
Energy leaving storage per week0.3 kg × 6,400 kcal/kg≈ 1,920 kcal
Energy leaving storage per day1,920 ÷ 7≈ 280 kcal
Expenditure2,400 eaten + 280 from storage≈ 2,680 kcal/day

If the trend had been rising instead, the sign flips: the same intake with 0.3 kg a week gained would point to an expenditure of about 2,120. Same food, opposite conclusion, and the scale is what tells them apart.

You log about…Your trend weight is…So your expenditure is about…
2,400 kcal/dayflat2,400
2,400 kcal/dayfalling 0.3 kg/week2,680
2,400 kcal/dayrising 0.3 kg/week2,120

What the algorithm actually looks at

Single days are far too noisy for this. A birthday dinner or a salty meal would swing the answer by hundreds of calories. So the algorithm works with windows, not days:

  • Intake: the average of your logged days across the 21 complete days ending yesterday. Today is still open, so what you eat today moves tomorrow's estimate, not today's.
  • Weight: the slope of your trend weight, a smoothed line through your weigh-ins, measured over roughly the same period — with one difference: the weight line runs right up to today, because a weigh-in this morning is already a finished fact.

What the algorithm watches: four weeks of one person

Top: every logged day. Bottom: every weigh-in, and the trend the app follows through them.

Week 1 · 2,310 kcalWeek 1 · 2,480 kcalWeek 1 · 2,260 kcalWeek 1 · 2,550 kcalWeek 1 · 2,390 kcalWeek 1 · 2,870 kcalWeek 1 · 2,190 kcalWeek 2 · 2,420 kcalWeek 2 · 2,350 kcalWeek 2 · 2,610 kcalWeek 2 · 2,280 kcalWeek 2 · 2,440 kcalWeek 2 · 2,930 kcalWeek 2 · 2,150 kcalWeek 3 · 2,380 kcalWeek 3 · 2,500 kcalWeek 3 · 2,270 kcalWeek 3 · 2,460 kcalWeek 3 · 2,330 kcalWeek 3 · 2,810 kcalWeek 3 · 2,240 kcalWeek 4 · 2,410 kcalWeek 4 · 2,520 kcalWeek 4 · 2,300 kcalWeek 4 · 2,470 kcalWeek 4 · 2,360 kcalWeek 4 · 2,760 kcalWeek 4 · 2,210 kcal2,0002,4002,8002,4362,4542,4272,433
  • Logged intake
  • Weekly average
Week 1 · 81.4 kg (trend weight 81.2)Week 1 · 80.9 kg (trend weight 81.2)Week 1 · 81.6 kg (trend weight 81.1)Week 1 · 81.1 kg (trend weight 81.1)Week 1 · 80.7 kg (trend weight 81.0)Week 1 · 81.3 kg (trend weight 80.9)Week 2 · 80.8 kg (trend weight 80.9)Week 2 · 81.2 kg (trend weight 80.8)Week 2 · 80.5 kg (trend weight 80.8)Week 2 · 80.9 kg (trend weight 80.7)Week 2 · 80.4 kg (trend weight 80.7)Week 2 · 81.0 kg (trend weight 80.6)Week 3 · 80.6 kg (trend weight 80.6)Week 3 · 80.2 kg (trend weight 80.5)Week 3 · 80.8 kg (trend weight 80.5)Week 3 · 80.5 kg (trend weight 80.4)Week 3 · 80.1 kg (trend weight 80.4)Week 3 · 80.7 kg (trend weight 80.3)Week 4 · 80.3 kg (trend weight 80.3)Week 4 · 79.9 kg (trend weight 80.2)Week 4 · 80.4 kg (trend weight 80.2)Week 4 · 80.2 kg (trend weight 80.1)Week 4 · 79.8 kg (trend weight 80.0)Week 4 · 80.3 kg (trend weight 80.0)80.081.0Week 1Week 2Week 3Week 4
  • Scale weight
  • Trend weight · 81.2 → 80.0 kg
Individual days bounce around; the algorithm reads the weekly averages (top) against the slope of the trend line (bottom). Here: about 2,400 kcal a day in, and about 0.3 kg a week out.

Two kinds of day get special treatment. A day you mark as intentional fasting counts as a real day of zero intake. A day you mark as incomplete logging is removed from the calculation entirely, which is far better than letting a half-logged day masquerade as a low-calorie one. See Fasting days, incomplete days and manual totals.

How it learns, and why it slows down

Nothing happens at first. The algorithm needs seven complete logged days inside its three-week window before it will produce an estimate at all. Until then it holds the figure your setup produced and waits. Logging from day one, that is your first week.

Once it releases, it does not replace your expenditure with each new reading. Every day, it moves the current estimate part of the way toward what the latest three weeks of evidence say. How big that step is depends on three things:

  • How much history you have. A young estimate moves fastest, because a starting formula is the only thing it would be contradicting. The step is largest in the first days after the estimate releases and shrinks steadily from there, so that within a few weeks one odd week can no longer swing your targets.
  • How many days you logged. The step is scaled back until you have a fortnight of logged days inside the window, so a thinly logged three weeks cannot yank the estimate around.
  • How often you weighed in this week. With fewer than three weigh-ins in the last seven days the weight slope is less reliable, so the algorithm takes smaller steps until the scale data catches up.

How the estimate learns

The same person over twelve weeks: the setup formula said 2,450. Their data said otherwise.

Week 0 · 2,450 kcal ± 0Week 1 · 2,450 kcal ± 0Week 2 · 2,657 kcal ± 250Week 3 · 2,676 kcal ± 190Week 4 · 2,681 kcal ± 155Week 5 · 2,678 kcal ± 135Week 6 · 2,686 kcal ± 120Week 7 · 2,680 kcal ± 112Week 8 · 2,689 kcal ± 106Week 9 · 2,683 kcal ± 102Week 10 · 2,688 kcal ± 100Week 11 · 2,684 kcal ± 100Week 12 · 2,686 kcal ± 1002,4002,6002,800Week 036912Setup estimate · 2,450Your expenditure · 2,686
  • Your expenditure
  • Confidence range
  • Setup estimate
  • Calibrating
  • Refining
  • Refined
Nothing moves in the first week: the estimate holds the setup figure until seven complete logged days exist. Once it releases, it closes most of the gap inside a single week, because a young estimate has little history to contradict. By week three it has found its level and the band has tightened to its floor; from there it moves in small, deliberate steps. Small movement at this stage is the algorithm working, not failing.

The shaded band on your Expenditure screen, labelled Flux Range, is the same idea seen from the other side. It measures how much your recent three weeks of data disagree with the estimate: a wide band means noisy or thin data, a narrow one means the evidence is consistent. It never gets narrower than about ±100 kcal, because no amount of logging makes a body perfectly predictable.

The chip on your Expenditure screen, under the heading Accuracy, tracks the same journey by counting your logged days in the last two weeks: Calibrating, then Refining, then Refined. Expenditure confidence levels explains each stage.

What moves it, and what doesn't

Because everything runs through three-week windows and a smoothed weight line, most of what feels dramatic day to day barely registers. What does register is a real, sustained change.

What happenedWhat your expenditure does
A big logged weekendAlmost nothing. Two days out of twenty-one, and you logged them, so the maths still balances.
The scale jumps a kilo after a salty dinnerAlmost nothing. The trend line absorbs a one-day spike.
You start walking to workDrifts up over two to three weeks as the extra burn shows up in your weight trend.
Months into a deficitA slow downward drift of a few percent is normal. Your body adapts to less food, and the algorithm sees it.
A week of forgotten snacks, not marked incompleteDrifts down wrongly. Unlogged food reads as food you never ate. This is the one failure mode to watch.
You edit or add food or weights from past daysRecalculated from that day forward. See Editing past data recalculates your estimates.

It is adherence-neutral

The algorithm never looks at your targets. It only looks at what you actually ate and what your weight actually did. Overshooting your calories does not "penalise" your expenditure, and undershooting does not inflate it. Log a 3,500 kcal day honestly and the estimate stays exactly as accurate as before; the day is simply more data.

This is why honesty beats perfection. A day that went off plan and got logged is useful. A day that went off plan and got half-logged is the only kind of day that damages the estimate.

The Achilles' heel: incomplete logging

Missing weigh-ins are not a big deal. Weight is predictable from one day to the next, and the trend line bridges gaps of a few days without trouble.

Missing food is a different story. Intake varies wildly from day to day, so the algorithm cannot guess what a blank afternoon contained. Anything unlogged reads as "not eaten", which pushes the estimate down, which lowers the targets the check-in suggests next week.

Three habits keep it honest:

  1. Log everything, roughly if you must. A quick-added "about 600 kcal" for a restaurant meal is far better than nothing. The algorithm is happy with estimates within a few hundred calories; it is blanks that hurt.
  2. When you truly cannot reconstruct a day, mark it incomplete. The day drops out of the calculation cleanly instead of dragging it down.
  3. Weigh in at least a few times a week, ideally in the morning, so the trend has something to work with.

If the data gets too thin, the estimate does not guess. It holds its last good value and shows you why on the Expenditure screen. Why your expenditure is paused lists each condition and what fixes it.

Expenditure vs. your calorie target

These are two different numbers with two different rhythms.

ExpenditureCalorie target
What it isWhat your body burnsWhat you should eat to reach your goal
UpdatesEvery day you logAt your weekly check-in, only if you apply the suggestion
Driven byYour intake and your weight trendYour expenditure, your goal pace, and your current target

The check-in does not simply set your target to "expenditure minus deficit". It moves your current target part of the way toward that figure, so one noisy week never produces a jarring change. Your weekly check-in walks through the ritual.

For the curious: the numbers

Everything above in one place, for people who like to know exactly what is running.

DetailValue
Intake windowAverage of your logged days across the 21 complete days ending yesterday
Starts producing an estimate at7 complete logged days inside that window
Weight signalSlope of the trend weight over the last 20 days
Trend weightExponential smoothing; a weigh-in's influence halves roughly every 8 days
Energy per kg lost or gainedFat about 9,400 kcal/kg, lean tissue about 1,800 kcal/kg, blended by your body fat percentage
Daily step toward the evidenceLargest just after the estimate releases, shrinking as your history grows; scaled back with fewer than 3 weigh-ins in the last 7 days, or fewer than 14 logged days in the window
Flux RangeSpread of the last 21 daily readings around the estimate, kept between ±100 and ±250 kcal
BoundsNever below your resting metabolism, never above 2.5× it
Keeps updating whileAt least 4 days logged and 1 weigh-in in the last 7 days
ConfidenceRefining at 7 logged days in the last 14, Refined at 14

The research behind these choices is listed on the citations page.