The short answer
The core loop is sound and traceable. The nutrition engine follows the same design as the most respected adaptive-calorie apps: smooth the scale, fit a slope, measure maintenance from what you ate and what then happened, anchor it to a validated predictive equation while the data is thin, and move the target in small capped steps with hard floors underneath.
Where the app is on thinner ground, it says so in its own copy rather than hiding it. The readiness score is a heuristic and only ever makes low-stakes decisions. Volume bands are population ranges, offered as suggestions.
The app grades itself. Every applied target states the weekly weight change it is built to produce. A week later the engine checks that against what your scale actually did, and shows you the result before it proposes anything else.
The nutrition loop, number by number
This is the chain that ends in the number on your Today screen. You can run the first link of it yourself in the free calculator.
| Step | What the app does | Where it comes from | Verdict |
|---|---|---|---|
| Weight trend | Time-weighted exponential moving average over up to 21 days of morning weigh-ins, roughly a two-day half-life. Mistyped entries are removed first. | Standard exponential smoothing. | Sound |
| Velocity | Ordinary least-squares slope across the raw weigh-ins in the window, converted to kg per week. | Standard regression. Deliberately not measured endpoint to endpoint, because each endpoint carries around 0.7 kg of water noise. | Sound |
| Energy balance | Weekly weight change converted to a daily calorie imbalance at 7,700 kcal per kg. | The working constant every adaptive app uses. The true figure varies with what the tissue was made of, but over a three-week window at these paces the error is small and self-correcting, because the loop re-measures. | Sound |
| Measured maintenance | Average intake minus that imbalance, across days that clear a completeness bar. Implausible days are excluded. | An arithmetic identity given the constant above. The completeness bar is anchored to your body, never to your target. | Sound |
| Formula anchor | Mifflin-St Jeor BMR, multiplied by an activity factor: 1.35 desk, 1.5 on your feet, 1.65 physical work, plus 0.05 per weekly session capped at six. | Mifflin et al. 1990. A 2005 systematic review found it the most reliable predictive equation in adults, within about 10% for most people. The multipliers sit inside the conventional range. | Sound |
| The blend | Measured and formula estimates combined, weighted by how many complete days you have logged, then clamped so the result cannot stray far from the formula. | House rule. The clamp exists because a measured maintenance far below the formula almost always means incomplete logging rather than a slow metabolism. It is why under-logging cannot walk anyone down to the floor. | Sound |
| Goal pace | Cut 0.5% of bodyweight a week, recomp 0.25% down, maintain 0, lean bulk 0.25% up. | Helms, Aragon & Fitschen 2014 for the deficit end; Iraki et al. 2019 for the gaining end. The app sits at the conservative end of both ranges. | Sound |
| Step cap | No adjustment moves your target more than 150 kcal, or 300 when the model and your current target are far apart. Nothing under 50 kcal. Weekly. | House rule. Large steps and any cut landing near the floor need you to confirm. | Sound |
| Calorie floor | The greater of 85% of your BMR and 1,500 kcal for men or 1,200 for women. Nothing in the app can propose below it, including the manual editor. | 1,200 and 1,500 are the standard clinical minimums without medical supervision. The 85% of BMR rule is a house rule stricter than most coaching practice, which allows going to BMR. | Sound |
| Protein | 2.0 g per kg of a reference weight, which is your actual weight capped at what a BMI of 27.5 would be for your height. A compound you have recorded as active raises the rate: 2.4 g/kg for enhanced lifters, 2.2 g/kg for compounds under which fast loss costs lean tissue (GLP-1s, T3, clenbuterol). It can also come down: when the calorie target cannot hold the rate, the split gives up fat above its floor first, then protein, and never takes protein below 1.6 g/kg of the same reference weight. | Morton et al. 2018 meta-analysis found benefit plateaus around 1.6 g/kg with the upper confidence bound at 2.2, which is also where the fallback floor sits. The BMI cap approximates dosing against lean mass instead of total mass. | Sound |
| Fat | The greater of 0.8 g per kg of the same reference weight and 25% of calories, rounded down to a 5 g step. Like protein it can be shaved: the surplus above the floor is the first thing the split gives up when the calorie target cannot hold everything, and on targets the app can actually propose it never goes below the floor itself. | Helms 2014: 15 to 30% of calories, with a per-kg minimum to protect hormone production. The minimum rides on the reference weight rather than raw bodyweight for the same reason protein does - it is there for hormone production, which tracks lean mass, and billing it against fat mass would take a heavier lifter's protein away to protect a fat floor computed off the fat. | Sound |
| Carbs | Whatever energy is left, reconciled to the gram so the three macros add back to the calorie target. It rounds down, so the sum lands within 3 kcal under the target and never above it. | Arithmetic. Down rather than to-nearest deliberately: the app prints the calorie target and the macro total side by side, and a sum 2 kcal ABOVE the target reads as an error even though it is rounding. | Sound |
Training and recovery
| Module | What it does | Basis | Verdict |
|---|---|---|---|
| Readiness score | For Apple Watch and Fitbit/Pixel users, and for a manual morning check-in; WHOOP and Oura publish their own score and the app stores that instead. Heart-rate variability, resting heart rate and sleep, each measured as a deviation from your own rolling baseline rather than against a population. | A transparent reproduction of a well-documented concept. Checked for sensible distribution across simulated physiologies, but not validated against outcomes. | Heuristic |
| Volume bands | 8 to 22 working sets per muscle per week, with group ceilings widened by how many heads that group has. | Schoenfeld, Ogborn & Krieger 2017 dose-response meta-analysis; Baz-Valle 2022. | Sound |
| Load progression | Reps-in-reserve autoregulation from your last performance, capped at 10% either way, snapped to plates you can actually load. | Standard autoregulation practice. | Sound |
| Deload | Watches a four to six week block for flat lifts plus high volume plus falling recovery, then proposes one week at reduced sets and load. Expiry is derived, so it cannot quietly become permanent. | Conventional prescription. | Sound |
| Stalled cut | Answered in a fixed order: tighten logging first, then a one to two week diet break at measured maintenance, and only then at most one capped step down. "Eat less" is never the first answer. | Byrne et al. 2018: intermittent maintenance blocks improved fat loss and reduced metabolic adaptation. | Sound |
| Recovery guardrail | A fortnight of poor recovery, or a genuine sleep debt against your own norm, holds or halves a cut. It never touches a raise. | Nedeltcheva et al. 2010: the same deficit under sleep restriction shifted most of the weight lost from fat to lean tissue. The thresholds are judgement calls. | Sound |
| Goal forecast | A date range, not a date, with a width set by how confident the estimate is. It refuses to forecast in five different states rather than guess. | Publishing the uncertainty of an extrapolation instead of hiding it behind a single number. | Sound |
What to keep in mind
A methodology page that lists only strengths is marketing. So here are the limits of what is above - what each one is, what the app does about it, and how much it should move your confidence. None of them makes a calorie target wrong.
- 7,700 kcal per kg is a simplification. What a kilo of gained or lost tissue is actually made of varies, and over short windows the scale is mostly water. The app mitigates this with trend smoothing, exclusion of known water swings, and a clamp on the estimate, and the loop re-measures weekly, so the error is bounded and temporary rather than accumulating.
- The activity multipliers are house-tuned. They sit inside the conventional range, and they only carry weight while your logged data is thin. After a fortnight of logging they barely matter.
- The readiness score is a heuristic, not a validated instrument. It reproduces a documented concept transparently and behaves sensibly, and it is deliberately confined to low-stakes decisions: easing a session, or holding a cut. It should never be described as clinically meaningful, and the app does not.
- The volume bands are population ranges. Individual response varies widely. The app treats them as suggestions and tells you to watch your recovery, rather than issuing them as rules.
- The measured loop needs data before it is worth anything. Seven weigh-ins across ten days and seven logged days before it will move your target off the formula. Until then you are on Mifflin times an activity factor, the same as any calculator, and the app says so on screen rather than implying it already knows you.
- There are no unit tests. Verification is by harnesses that execute the real modules across the range of a real user, plus five automated checks on every change. That is a limitation in how the code is proven rather than in the formulas themselves, and the repository's own rules say so in as many words, so it cannot be quietly forgotten.
The point of all this
A number you can argue with
None of the above makes the app right about you specifically. No formula can be: the honest limits here are data quantity and the things arithmetic cannot know about a person.
What it does mean is that every number the app shows you can be traced to something, and where that something is thin, it is labelled thin. The app has a screen that prints the whole chain behind today's target, and a scorecard that grades its own forecasts against your actual scale. It does not ask to be believed.