Researchers from the National Institutes of Health photographed meals with known nutritional content and asked four apps — MyFitnessPal, Lose It!, Cal AI, and Appediet — to estimate calories from the photos. All four came in low, by 250 to 345 calories per meal, and underestimated fat by roughly 30 grams. Carbohydrate estimates were more consistent. A follow-up analysis of more than 200 additional meals suggested the apps struggle most with low-carb, high-fat meals, where the fat is exactly what they miss.
The mechanism is easy to understand. A photo cannot show how much cooking oil went into a dish, whether the portion is the standard size in the database, or how much of the plate is dense versus fluffy. The apps guess those variables, and the guesses skew low — which means a person who logs by photo is systematically underestimating intake.
Kidney stone management is one of the few diets that genuinely depends on numbers. The oxalate value per serving, the serving size, the sodium line, and the calcium in the meal all feed into decisions about what to eat and how much. If the tool a patient uses for those numbers is off by a third, the decisions built on it are off too — a portion that the app calls safe may be closer to the caution range, and a sodium estimate may be hundreds of milligrams low.
The deeper point is about data provenance. The oxalate numbers on this site come from lab measurements at Harvard's T.H. Chan School of Public Health and from USDA FoodData Central — measured values attached to defined serving sizes. The calorie numbers in a photo app come from a model guessing at a photograph. The first is a measurement; the second is an estimate. A medical diet deserves the former.
The stone diet does not require logging every meal. It requires knowing the measured values of the foods eaten most often — the dairy, the grains, the vegetables, the few high-oxalate items that need portioning. That reference set can be learned in a few weeks and applied without an app: the Greek yogurt is zero, the oatmeal is 9 mg per half-cup, the almonds are 107 mg per quarter-cup. The app, if used at all, is a rough diary, not the authority.
| Food | Oxalate (mg) | Serving | Rating |
|---|---|---|---|
| Greek yogurt, plain | 0 | 1 cup | Safe |
| Oatmeal, cooked | 9 | 1/2 cup | Safe |
| Rice, cooked | 2 | 1/2 cup | Safe |
| Banana | 6 | 1 medium | Safe |
| Peanut butter | 36 | 2 tbsp | Caution |
| Almonds | 107 | 1/4 cup | Avoid |
| Bran flakes cereal | 51 | 1 serving | Caution |
For stone-relevant numbers, the reliable order is: laboratory-derived values tied to defined serving sizes (the Harvard database, USDA FoodData Central), then the food label's measured lines (sodium, calcium, serving size), then measured portions at home — a kitchen scale settles the portion question the apps guess at. A digital scale costs less than a month of app subscriptions and removes the single biggest source of error. The combination of measured values and measured portions makes the app optional, which is the right position for a tool that missed 345 calories on a controlled meal.
That depends on what you use it for. As a rough diary of eating patterns, an app is fine. As the authority for medical nutrition decisions, it is not — the NUTRITION 2026 test found all four popular apps underestimated calories by 250-345 per meal. Use measured values for stone-relevant numbers.
Use values from lab-measured databases tied to defined serving sizes — the Harvard T.H. Chan SPH oxalate database (2024) and USDA FoodData Central are the two sources this site builds on. Check the serving size column, because the number changes with the portion.
No. Stone prevention runs on defaults — water, dairy at meals, measured portions of high-oxalate foods — not on logging. Learn the measured values of the foods you eat most, portion the few high-oxalate items, and the numbers do the work without an app.
The portion is where most food-tracking errors actually live, and it is the one variable a patient controls completely. A kitchen scale settles it: a quarter-cup of almonds weighed once is a number a person can picture from then on, and the same is true for every high-oxalate item. The stone diet does not require weighing everything forever — it requires weighing the few foods that matter once, so the eye learns the portion. The 250 to 345 calories the apps missed on controlled meals were mostly portion and fat; the oxalate column has the same vulnerability when a serving is guessed rather than measured.
The label habit covers the rest. Sodium, calcium, and serving size are printed on every packaged food, and those three lines are measured values, not estimates. A patient who reads the label for packaged foods and weighs the few high-oxalate staples at home has a measurement-based system that no photo app can match. The app becomes optional — a diary of patterns rather than the authority on intake.
See how oxalate values are measured and verified on our data methodology page.