SmartCrunch shows one number a day: what is left to eat. This page is where that number comes from — every rung, every threshold, every constant, and every case where the app declines to answer.
It is here because the promise is not “we have a good algorithm”, which is unfalsifiable. The promise is that the arithmetic is ordinary and you can check it. Nothing below is a trade secret, and nothing below is different in the paid tier — Pro changes how food gets into the diary and changes no computed number.
1. The one calculation#
Everything begins with maintenance: the daily energy intake at which your weight would hold steady. Your budget is that figure plus the change you asked for.
budget = max(1200, maintenance + your daily delta)
A deficit is a negative delta. The 1200 is a floor, and section 5 explains it.
Maintenance is the hard part, because it cannot be looked up. So the app tries to establish it five different ways, in order, and tells you which one it used — the line naming the source sits under the figure on the day-balance card and in the goals editor. It is not a label. It is the answer to “how much should I trust this?”
2. The five rungs#
The app takes the highest rung it has data for.
1 — Solved from your own diary and weight trend. The only rung that measures you rather than estimating you. It converges on the truth even if Apple Health under-counts your activity and a formula misses your build. Section 3 is the whole of it.
2 — Measured history from Apple Health. The average of basal plus active energy over completed days. The device’s own estimate of your expenditure: Health calculates the basal part with a formula and the active part from steps and heart rate.
3 — A formula’s basal rate plus your measured activity. Half a measurement. This rung exists because only a Watch writes basal energy to Health. A person with an iPhone and no Watch can never reach rung 2 — and yet their active energy is right there, recorded. Before this rung existed the ladder threw that away and substituted a population multiplier instead.
4 — A formula. Basal rate multiplied by an everyday-activity factor. Works with no history at all, from the profile you entered when you started. The basal rate is Katch-McArdle when a body-composition reading is available, and Mifflin-St Jeor otherwise.
5 — Nothing. No history and no profile, so the app says it has no figure rather than inventing a budget.
3. The top rung, in full#
Energy balance is arithmetic. If the app knows roughly what you ate over a window of days, and which way your weight actually moved over the same window, it can solve backwards for the maintenance figure that would explain both:
maintenance = average intake − (weight trend in kg/day × 7700)
7700 kcal is the energy in a kilogram of body mass. It is stored once and shared with the goal forecast, so the date you are given and the budget you are given cannot be built on two different constants.
What must be true before it will answer#
Four conditions, and all four have to hold.
| Condition | Threshold | Why |
|---|---|---|
| Days with a food diary | at least 10 | one festive week moves an average by hundreds of kcal |
| Share of the window logged | at least 85% | see below — this one has a scar |
| Span of weigh-ins | at least 14 days | a shorter series has no slope distinguishable from water |
| Result against the rung below | between 0.8 and 1.3 times it | see below — this one is deliberately lop-sided |
The coverage threshold used to be 60%, and it hurt someone. At 60% the method was being applied to a diary with barely half the eating written down. Missed food does not enter the average, but the weight sits still anyway, so the arithmetic confidently returned a maintenance figure that was far too low — and that went straight into the budget. The app advised eating around a thousand calories a day less than the person needed. The threshold is 85% now. The asymmetry is the whole argument: a refusal costs one rung on a ladder, an error downwards costs health.
The plausibility band is not symmetric, and that is on purpose. The result has to land between 0.8 and 1.3 times whatever the next rung down would have said. The ceiling is looser than the floor because the two failures are not equally dangerous: a budget that is too high is one you will notice, because the scale will tell you, and you will correct it. A budget that is too low is invisible. The app simply keeps you hungry, and “that must be normal” becomes the conclusion.
Three details that decide whether the answer is honest#
A regression, not a subtraction. The weight slope is least-squares across every weigh-in in the window, not the last one minus the first. Two points inherit their own noise: a kilogram of water at either end is about half a kilogram per week on a month-long window, which is roughly 550 kcal in the answer.
Zero is not data. A day recorded as zero calories means the diary was opened and abandoned, not that a person ate nothing. Zeroes are excluded from the average the same way blank days are.
Today is never in the window. The diary for today is still being written, and its partial total would drag the average down exactly the way a partial day used to break the figure.
How confident it is#
When the app does answer, it grades the answer, because the conditions above are a floor and not a guarantee:
- High — 85% coverage or better, a weigh-in span of 26 days or more, and at least 12 days weighed.
- Medium — 70% coverage, a 20-day span, at least 6 days weighed.
- Low — over the line, but only just.
4. What this method cannot see#
It is worth being plain about the limits, because they follow from the arithmetic rather than from effort.
It inherits your diary’s bias, and calls it your metabolism. If you consistently under-record portions by a tenth, the solved maintenance figure comes out about a tenth low. That is the correct answer to the diary you keep, and the budget it produces is self-consistent — but it is not the same thing as your physiology, and no amount of arithmetic inside the app can tell the two apart. This is why the plausibility band exists at all.
Water, glycogen and gut contents are noise on the same axis as fat. The moving average and the two-week minimum are there to average them out, not to remove them.
It is a description, not a prediction. The figure describes the weeks you logged. A new job, a new season, or a long deficit will change it, and the app will only know once the new weeks are in the window.
5. The floor at 1200 kcal#
Whatever the arithmetic produces, the daily budget is clamped:
budget = max(1200, maintenance + your delta)
If your goal and your chosen pace would together ask for less, the app does not quietly give you the smaller number. It shows the deepest deficit that is actually usable before you commit to it, and when the clamp bites it names how much of your requested deficit was refused.
The reason is not caution for its own sake. Below roughly that intake it becomes hard to fit enough protein and enough micronutrients into the food you have room for, and more of the weight lost is muscle you would rather keep. A target that requires a budget under the floor needs a longer timeline, not a smaller plate.
6. The weight line#
Weight is drawn twice: your actual measurements, and a 7-day trailing moving average through them. The average is what the trend, the forecast and the maintenance solver all read. A heavy Monday morning is one dot, not a verdict.
Nothing here needs a smart scale. A number typed in by hand and a number that arrived from Apple Health feed the same line.
The forecast date is the same arithmetic run forwards: how far you have to go, at the pace your budget implies. Change the pace and the date moves with it — they cannot disagree, because they are one calculation.
7. Nutrient targets#
Four nutrients get a daily target, and three of the four are derived from your budget rather than from a generic adult, so a bigger budget moves them up and a smaller one moves them back.
| Nutrient | Target | Basis |
|---|---|---|
| Fibre | 14 g per 1000 kcal, at least | the form the Dietary Guidelines state it in |
| Sugars | 10% of energy, at most | converted at 4 kcal per gram |
| Saturated fat | 10% of energy, at most | converted at 9 kcal per gram |
| Sodium | 2300 mg, at most | the one target that does not scale with calories |
They are computed from the same calorie target the main screen shows, so the fibre goal cannot drift away from the budget it was derived from.
8. What “unknown” means#
Numbers come from records, and records have holes. A packaged product may have no sodium figure. A meal you typed in yourself has no micronutrient fields at all, and neither does one the Pro estimator proposed from a photo — the app does not invent them.
So each daily total is reported with how many of the day’s entries it was actually computed from — the “known for 4 of 7 logged items” line. And when fewer than 50% of the day’s items carry a figure, the total is not shown as a number at all. It reads as unknown.
Counting a missing value as zero would make a day of packaged food look spotless, which is precisely backwards.
9. What is not modelled#
Stated plainly, because the absence of a feature is easier to check than its quality:
- No macro periodisation, no refeeds, no diet breaks. One budget, every day, until you change it.
- No net carbs, no keto mode. Carbohydrate is carbohydrate.
- No eating window or fasting schedule.
- No food-quality score. A calorie budget is a constraint, not a diet, and the app has nothing to say about whether a food is good.
- No exercise-calorie top-up. Activity reaches the number through expenditure on the rungs that measure it, never as a bonus you can spend.
10. Changing any of this#
The thresholds on this page are the shipping defaults, and they are the ones the app runs on. When one of them changes, this page changes in the same release and the date at the top moves.
Two things it will never be: this is not a medical device, and nothing here diagnoses, treats or advises. The health disclaimer says where the arithmetic stops being useful, and section 4 of it is the part to read whatever else you skip.