Benchmark
VitaProva shows a range rather than a single number. This page reports how often that range actually contained the true value, on plates the calibration never saw. It is the disclosed methodology behind every claim we make about how well VitaProva performs.
A range is worth something only if its coverage is measured and published. 80% coverage means that for 80 plates in every 100, the true calorie value fell inside the band we showed. We publish the figure with its 95% interval, by dataset and by depth source, and separately for ground-truth food classes and for the classes our recognition SDK actually produces — because the gap between those two is the risk a reader should see.
The API reports no published benchmark run. When the first run is published this page will carry it in full — every depth source, both class sources, the plate lists, and every coverage figure with its 95% interval. We would rather show you an empty page than an unmeasured claim.
The first reference-pipeline results on Nutrition5k are expected in January 2027; the in-house hand-held results follow in March 2027.
The minimum-n rule
A slice with few plates produces a coverage figure too uncertain to judge, so we report it without treating it as a pass or a fail. A depth mode or container class with fewer than 100 evaluation plates per fold is reported, not gated. The 65% category floor applies only where a slice has at least 40 plates. Every slice above shows which of the two applies to it, taken from the published run rather than re-derived here.
Targets
These targets are not measured results and do not come from the API. They are stated in our Software Specification v1.3 §10 so that the measured figures above can be read against the intention. These are targets, not gates. Nothing on this page passes or fails against them.
| Depth source | Target |
|---|---|
| LiDAR | ≤ 20% |
| monocular | ≤ 26% |
| user-stated container | ≤ 32% |
Google's published Nutrition5k figures, for context: 26.1% / 18.8% / 16.5%.
How to read this page
- Held out by construction. No coverage figure here is measured on a plate that helped fit the calibration. Nutrition5k is evaluated only on its own published test split; our in-house plates are split at plate level, so every photograph of a plate sits in the same fold.
- Nutrition5k RGB-D is fixed overhead rig depth, not phone LiDAR. It was captured by a fixed overhead camera rig, not by a phone held in your hand, and it is never presented as a LiDAR result.
- Two class sources. Ground-truth classes measure the estimation maths with the food identified correctly. SDK classes measure what the product does when it has to recognise the food itself. The second is the honest one for a user; the gap between them is our recognition-breadth risk.
- A reference run is not a device run. Results produced by our Python reference pipeline are labelled as such. A published device re-run of the exported, quantised bundle replaces them, and the coverage gate is carried only by that device run.
The method behind these numbers — depth capture, volume, density, how the intervals are calibrated per depth mode, and the limitations — is on the methodology page.