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.
| Step | Calculation | Result |
|---|---|---|
| Energy leaving storage per week | 0.3 kg × 6,400 kcal/kg | ≈ 1,920 kcal |
| Energy leaving storage per day | 1,920 ÷ 7 | ≈ 280 kcal |
| Expenditure | 2,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/day | flat | 2,400 |
| 2,400 kcal/day | falling 0.3 kg/week | 2,680 |
| 2,400 kcal/day | rising 0.3 kg/week | 2,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.
- Logged intake
- Weekly average
- Scale weight
- Trend weight · 81.2 → 80.0 kg
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.
- Your expenditure
- Confidence range
- Setup estimate
- Calibrating
- Refining
- Refined
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 happened | What your expenditure does |
|---|---|
| A big logged weekend | Almost nothing. Two days out of twenty-one, and you logged them, so the maths still balances. |
| The scale jumps a kilo after a salty dinner | Almost nothing. The trend line absorbs a one-day spike. |
| You start walking to work | Drifts up over two to three weeks as the extra burn shows up in your weight trend. |
| Months into a deficit | A 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 incomplete | Drifts 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 days | Recalculated 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:
- 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.
- When you truly cannot reconstruct a day, mark it incomplete. The day drops out of the calculation cleanly instead of dragging it down.
- 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.
| Expenditure | Calorie target | |
|---|---|---|
| What it is | What your body burns | What you should eat to reach your goal |
| Updates | Every day you log | At your weekly check-in, only if you apply the suggestion |
| Driven by | Your intake and your weight trend | Your 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.
| Detail | Value |
|---|---|
| Intake window | Average of your logged days across the 21 complete days ending yesterday |
| Starts producing an estimate at | 7 complete logged days inside that window |
| Weight signal | Slope of the trend weight over the last 20 days |
| Trend weight | Exponential smoothing; a weigh-in's influence halves roughly every 8 days |
| Energy per kg lost or gained | Fat about 9,400 kcal/kg, lean tissue about 1,800 kcal/kg, blended by your body fat percentage |
| Daily step toward the evidence | Largest 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 Range | Spread of the last 21 daily readings around the estimate, kept between ±100 and ±250 kcal |
| Bounds | Never below your resting metabolism, never above 2.5× it |
| Keeps updating while | At least 4 days logged and 1 weigh-in in the last 7 days |
| Confidence | Refining at 7 logged days in the last 14, Refined at 14 |
The research behind these choices is listed on the citations page.