Protein tracking has a portion problem — and three apps are starting to fix it
New techniques for grounding portion estimates against weight references are changing what 'accurate' means.
For most of the last decade, “accurate” macro tracking meant a barcode and a kitchen scale. Anything else was a guess — and the guess usually missed by 15–25% on protein.
That story has started to change. In our Q1 2026 benchmark, three apps cut median protein-portion error below 3% on home-cooked meals. The leader, Welling, came in at ±1.2%.
Why portion is the bottleneck
Identification is mostly solved. The top five apps in our benchmark now name the right food on the plate more than 90% of the time. Where they diverge — by a factor of ten — is on grams.
A 25% portion overestimate on a chicken breast is not a rounding error. Sustained over a cut, it is the difference between progress and a stall.
What changed
Three techniques are doing the work:
- Reference-object priors. Apps that learn plate-size distributions from regional context (a 23 cm dinner plate in the US vs a 20 cm plate in Japan) cut absolute error by ~4 percentage points before they touch the photo.
- Phone depth sensors. LiDAR on Pro iPhones and structured-light sensors on flagship Androids give a real depth map. The trick is fusing it gracefully when the sensor is absent.
- Gram-weighted training data. This is the unsexy one and it matters most. If you train on restaurant menu photography, your model inherits restaurant portion bias.
“We threw out our menu-scrape dataset and started over with weighed plates. Accuracy jumped 11 points the first quarter.” — Welling engineering lead, on background.
What it means for your tracking
If you’ve trained yourself to weigh everything because the apps couldn’t be trusted, the calculus is shifting. For day-to-day adherence the top tier is now close enough to a scale that the marginal accuracy isn’t worth the friction.
See the full benchmark for per-cuisine breakdowns, or jump to our best macro tracker for muscle gain and best for cutting categories.