How accurate is NutriShot AI? We checked it against 412 weighed meals
No photo app is perfectly accurate. This page measures how close NutriShot gets — against 412 gram-weighed meals spanning packaged, home-cooked, restaurant, and non-Western dishes — and publishes the raw data and analysis code so every number can be checked. A manual test, not pre-registered.
The takeaways
- On a typical meal, NutriShot's corrected calorie estimate landed within about 5% of the weighed value — roughly 28 kcal on a 600 kcal lunch. (Technical: MAPE 4.6%, 95% CI 4.2–5.1.)
- More than 9 in 10 meals (92%) came in within 10% of the weighed reference; 98% were within 20%.
- Taking two seconds to check the portion slider before saving more than halved the error — from 11.0% to 4.6%.
- Best on packaged and simple home-cooked food (within ~2–4%); weakest on restaurant plates and Indian and Thai dishes (~7–8% off). Full breakdown below.
- Run and funded by NutriShot AI, not pre-registered — and, unusually for this category, every number on this page can be reproduced from the published raw dataset and analysis code.
Summary
The plain-English answer: after the in-app portion check, NutriShot's calorie estimates typically landed within about 5% of what the food actually weighed out to — close enough for everyday tracking, not a lab instrument. More than 9 in 10 meals came in within 10% of the weighed value.
The technical version: in a manual validation of 412 meals spanning five food types and seven cuisines, NutriShot's photo-based estimates were compared against gram-weighed reference portions computed from USDA FoodData Central. Post-correction calorie estimates showed a mean absolute percentage error (MAPE) of 4.6% (95% CI 4.2–5.1), with 92% of meals within ±10% of reference. The study was funded by NutriShot AI and was not pre-registered; the full dataset and analysis code are linked at the end.
Methods
This was a manual validation, not a pre-registered trial. Reference values were derived from gram-weighed component masses, not from the app under test, so the comparison is against a measured ground truth.
- Reference standard: each component weighed on a gram scale; reference calories and macros computed from USDA FoodData Central (SR Legacy entries, listed per meal in the dataset), with composite dishes built from their weighed parts.
- Sample: 412 meals, stratified — packaged/branded (96), home-cooked single-ingredient (84), mixed plates (110), restaurant/takeout (82), and beverages (40).
- Cuisines: seven represented — American, Italian, Mexican, Chinese, Japanese, Thai, and Indian.
- Two estimates per meal: the raw first estimate, and the estimate after the user applied the in-app portion-correction slider.
Results
Calorie accuracy
| Metric | Raw estimate | Post-correction |
|---|---|---|
| MAPE | 11.0% | 4.6% |
| Within ±10% of reference | 63% | 92% |
| Within ±20% of reference | 88% | 98% |
| Mean bias (over / under) | +47 kcal | +12 kcal |
Macronutrient accuracy
| Macro | MAPE (post-correction) | Within ±10% |
|---|---|---|
| Protein | 6.7% | 87% |
| Carbohydrate | 5.9% | 85% |
| Fat | 9.5% | 79% |
Accuracy by food category
| Category | Calorie MAPE | Meals |
|---|---|---|
| Packaged / branded | 2.2% | 96 |
| Home-cooked, single-ingredient | 3.6% | 84 |
| Beverages | 3.8% | 40 |
| Mixed plates | 6.1% | 110 |
| Restaurant / takeout | 7.0% | 82 |
Accuracy by cuisine
| Cuisine | Calorie MAPE | Meals |
|---|---|---|
| American | 3.3% | 207 |
| Mexican | 4.8% | 37 |
| Italian | 4.8% | 51 |
| Chinese | 6.0% | 32 |
| Japanese | 6.5% | 31 |
| Thai | 7.6% | 25 |
| Indian | 8.2% | 29 |
Effect of the portion-correction step
What this study does not claim
This validation measured NutriShot against weighed references only. It did not run other apps on the same meals, so it makes no head-to-head accuracy claim against competitors. A fair comparison would put each app through its own normal flow on the identical meals and publish the lot — that is a separate piece of work, not done here. For a feature-by-feature look at how the apps differ, see our comparison of the leading nutrition trackers.
Discussion
A corrected estimate within roughly 5% of the weighed truth is tight enough to be genuinely useful for day-to-day tracking, while still not precise enough to treat as a clinical instrument. The pattern of errors is unsurprising: NutriShot is strongest where the food is standardised (packaged, single-ingredient) and weakest where portions are ambiguous and components overlap (mixed plates, restaurant dishes, several Asian cuisines).
The portion-correction step is doing real work — it more than halves the error — which suggests the largest remaining gains are in portion-size inference rather than food identification.
Limitations
- This was not pre-registered, and it was run by the app's maker. That is weaker evidence than an independent, pre-registered study — read the numbers with that in mind, and check them against the raw data.
- Capture conditions (device, lighting, who photographed each meal) were not recorded in the dataset, so their effect on accuracy cannot be assessed.
- Whoever collected the meals knew they were being measured, which may encourage more careful framing than typical real-world use.
- Beverages were under-sampled (n = 40) relative to how often people log them.
- The USDA reference itself carries error for mixed and restaurant dishes where exact recipes are unknown.
- Heavily occluded, layered, or novel dishes remain the hardest cases and are likely under-represented at the extremes.
Data availability
- Raw dataset — all 412 meals, weighed component masses, USDA reference values, and both NutriShot estimates: nutrishot-validation-meals.csv.
- Analysis code — the script that reproduces every figure and table on this page: analyze-validation.py.
- The dataset is released under CC BY 4.0 — reuse it, cite the source.
- Not pre-registered: this was a manual test, so there is no pre-registration to link. The published raw data is what makes the result checkable.
Disclosure. The meals were collected and the NutriShot estimates recorded by the team that builds NutriShot, and the study was funded by NutriShot AI. It was not pre-registered. Every calorie and macro figure on this page is computed directly from the raw dataset using the published analysis script, so anyone can reproduce them. A funder-run, non-pre-registered validation is weaker evidence than an independent one — we publish the raw data precisely so the numbers can be checked rather than taken on trust. Accuracy figures describe the meals in this sample and are not a guarantee for any individual meal, nor a substitute for clinical dietary assessment. See our editorial principles.