How it works.
No, really.
Every publisher on earth will tell you "consult your vet for exact amounts" and stop there. We're going to show you the actual arithmetic instead — the coefficients, the studies behind them, and the exact points where we refuse to guess.
This page is the contract between the research and the code. Every constant below carries a marker: SOURCED means a named authority states it.DERIVED means arithmetic on sourced inputs.ADOPTED means we made an engineering call where the sources disagree or are silent, and we say so. NOT ESTABLISHED means nobody has measured it — and we don't invent it, and we don't let the product claim it.
The chain, worked
on a real dog.
Every plan runs the same nine-step chain. Here it is, worked on the engine's own permanent test vector — a neutered male dog, 30.0 kg, body condition score 8, fed a food at 3.40 kcal/g, in two meals a day. Nothing here is illustrative rounding; these are the exact numbers the test suite asserts on every commit.
RER(w) = 70 × w0.75 — stated in exactly this form by AAHA, with a worked example matching this formula precisely. Neither coefficient is rounded or tuned.
At BCS 8, AAHA's own figure is that each point above 5 is 10%over ideal weight. BW_ideal = 30 / 1.30 = 23.077 kg. (The published AAHA worked example subtracts 30% instead of dividing by 1.30 — that's algebraically wrong, and the direction of the error is toward underfeeding. We use the correct divisive form. Disclosed, not hidden — see the note below.)
23.077 kg is 23.1% below current weight — more than one phase should ever target at once. The plan caps this phase at a 15% reduction instead:BW_phase = 0.85 × 30 = 25.500 kg. The rest of the loss happens in later phases, re-assessed every 90 days.
RER(25.5) = 794.3 kcal. Dogs use the full multiplier — k_dog = 1.00 — soE_target = 794 kcal/day.
E_floor = 0.70 × RER(BW at phase start) = 628.1 kcal. 794 sits clearly above it. If any plan or later adjustment would fall below this line, the engine refuses outright and routes to a vet — it does not quietly raise the number and carry on.
Dogs get a 10% treat allowance, taken from inside the target, never on top of it:E_treat = 79.4 kcal, E_food = 714.9 kcal.
714.9 ÷ 3.40 kcal/g = 210 g/day → 105 g per meal. Rounded once, at the end, to the nearest gram — kitchen-scale resolution.
From the second weigh-in on, the plan stops trusting the formula and starts trusting the scale. A least-squares regression over the trailing 21 days (needing at least three weigh-ins spanning two weeks) becomes the actual rate of loss. Below 1%/week, a 10% reduction. Above 3%/week, a 10% increase. Two reductions maximum per phase — a third hits the floor and refuses. This replaces a mechanic we specifically rejected: a fixed "cut 3–5% every week, forever" schedule has no floor and no feedback term, and would silently underfeed a dog by roughly a third of its starting ration by week 20.
What the engine refuses to do
A refusal is never a zero, never a null, and never a number with a warning bolted next to it. When we don't have enough to be right, we say so and stop — out loud, with a reason.
- No moisture, no energy figure on the label? We refuse rather than assume a moisture percentage. EU and UK dry food can legally omit it below 14% moisture, and no source in our research gives a defensible default to substitute — so we don't invent one. This is the single most common reason the tool can't answer yet for a UK bag, and we'd rather tell you that plainly than print a guessed number.
- Guaranteed-analysis guarantees are bounds, not values.Crude protein and fat are declared "no less than"; fibre and moisture "no more than." Any density computed from them is flagged estimated, every time it's shown, with the reason.
- Growing animals, pregnant or lactating animals, medical conditions, unexplained weight change. Every one of these routes straight to "talk to your vet," never to a number. A diet is the wrong tool for a sick animal, and this app knows the difference even when a measuring cup doesn't.
- A cat that's eaten little or nothing for 24 hours. That stops everything — a blocking notice, not a dismissible tip — because feline hepatic lipidosis can begin exactly there, and it kills cats that don't get help in time.
The number we
won't hide from you.
Every dog's target sits at exactly 1.0 × RER — and AAHA's own guidelines say a therapeutic, specially fortified weight-loss diet is what's recommended for restriction at or below that line, because an ordinary maintenance food fed at these amounts may not supply everything the animal needs over time. That's not a hypothetical edge case. It's every dog plan this tool produces.
So every plan carries a permanent, non-dismissible advisory saying exactly that — it is part of the output, not a tooltip you can close. We think a tool that hides its own biggest caveat to look more confident is worse than useless on a health topic. This is also, honestly, the single largest open question in the whole product: nobody has established a safe restriction depth for an ordinary food, only for purpose-formulated ones, and this wants a board-certified veterinary nutritionist's opinion before this tool should be anyone's only source of truth.
We never diagnose.
You always score.
Body condition score is always something you tell this tool, from a hands-on scale we show you — never something the tool infers from a photo, a weight trend, or anything else. In the UK, giving advice based on your own diagnosis of an animal sits inside the legal definition of veterinary surgery. We stay well clear of that line on purpose: this tool works from the number you give it, and if the signs suggest something needs a vet's eyes, it says so and stops, rather than guessing what's wrong.
Every constant.
Every source.
The complete list. If a number the tool uses isn't here, that's a bug — tell us.
| Constant | Value | Marker | Source |
|---|---|---|---|
| RER coefficient | 70 | SOURCED | AAHA 2021 Box 1 |
| RER exponent | 0.75 | SOURCED | AAHA 2021 Box 1 (cats: adopted simplification) |
| k_dog | 1.00 | SOURCED | AAHA 2021 Box 1, "Weight loss" row |
| k_cat | 0.80 | SOURCED | AAHA 2021 Box 1, "Weight loss" row |
| Calculation basis | ideal weight | SOURCED | AAHA 2021, "Base these calculations on ideal weight" |
| % over ideal per BCS point | 10% | SOURCED | AAHA 2021 (Purina says 10–15%; conflict unresolved) |
| Ideal-weight form | divisive | DERIVED | Corrects an algebraic error in AAHA's own published worked example |
| Phase cap | 15% | ADOPTED | Matches roughly what a compliant three-month step already achieves |
| Safety floor | 0.70 × RER(weight at phase start) | SOURCED | APOP Step Weight Loss Calculator |
| Absolute kcal floor | — | NOT ESTABLISHED | No source states one |
| Dog target rate of loss | 1–2%/week | SOURCED | AAHA 2014 (secondhand), Merck, Purina |
| Dog intervene — too slow | <1%/week → −10% | SOURCED | Flanagan et al., PLOS ONE 2017 |
| Dog intervene — too fast | >3%/week → +10% | SOURCED | Flanagan 2017; APOP "+5–10%" |
| Cat target rate of loss | 0.5–1%/week | ADOPTED | Narrowed from AAHA 2014’s 0.5–2%, per Purina/APOP |
| Cat never-exceed | 2%/week | SOURCED | APOP Step Weight Loss Calculator |
| Cat anorexia stop | 24 hours | SOURCED | APOP (single source — see the open-gaps note) |
| Adjustment step | 10% | SOURCED | Flanagan et al., PLOS ONE 2017 |
| Re-baseline interval | 90 days | SOURCED | APOP three-month step model |
| Treat allowance, dog | 10% | SOURCED | AAHA, WSAVA, UC Davis, Merck, APOP — near-universal |
| Treat allowance, cat | 5% | ADOPTED | Príncipe et al. 2025: 10% pushed 36% of indoor-cat diets below FEDIAF minimum protein |
| Modified Atwater factors | 3.5 / 8.5 / 3.5 kcal/g | SOURCED | AAFCO Model Regulations PF9(a)(1) — not the human 4/9/4 |
| FEDIAF gross-energy factors | 5.7 / 9.4 / 4.1 | SOURCED | FEDIAF Nutritional Guidelines §7.2.2.2 |
Primary sources: AAHA 2021 Nutrition and Weight Management Guidelines · WSAVA Global Nutritional Assessment Guidelines · FEDIAF Nutritional Guidelines (Oct 2021) · APOP Step Weight Loss Calculator · Flanagan J, Bissot T, Hours M-A, et al., PLOS ONE 2017 · Príncipe LA, et al., Veterinary Sciences 2025;12(3):282.
That's the whole method, out in the open. If your dog's bag has a calorie figure on it, the tool can use everything above right now — for free, no signup.