Photo vs. text calorie logging: which is more accurate?
The camera is the demo, but the keyboard wins: text descriptions score ~86% against weighed meals while photo scans average ~76% — with swings of hundreds of kcal between scans of the same plate.
Every AI calorie tracker leads with the same demo: point your camera at a plate, get a number. It's the most impressive-looking feature in the category — and, in our own testing, it's not the most accurate way to log. Here's the data from our public benchmark, and a practical rule for when to use each input.
The headline: text beats photo
Our weekly benchmark scores 0xCal's text-based logging at 85.6% blended accuracy across 100+ foods against USDA reference values — and 87.2% on homemade meals specifically. Our photo benchmark — real home-cooked dishes prepared from weighed ingredients, photographed, and scanned five times each — currently averages about 76%.
A ten-point gap is significant, and it's worth understanding why it exists, because the reason tells you how to log better.
Why photos are harder for AI
A text description hands the AI the answer to the hardest question. When you type "green curry with chicken and rice," the model knows what the food is and only has to estimate typical portions. A photo forces the model to solve two problems at once:
- Identification — what is this? (AI is genuinely good at this now.)
- Portion estimation from pixels — how much of it is there? This is where the error lives. A photo contains no scale reference, no depth for a mounded plate, and no visibility into density — a bowl of curry could be mostly rice or mostly sauce.
And some calories are simply invisible. The tablespoon of oil the vegetables were fried in, the butter in the sauce, the mayo inside the sandwich — a camera cannot see them, but they can be a quarter of the meal's energy.
The noise problem: one scan is not a measurement
The most under-reported fact about photo calorie counting: scanning the same plate twice gives different answers. From our benchmark, the same green curry (true value: 502 kcal, cooked from weighed ingredients) scanned five times returned 500, 540, 545, 618, and 650 kcal. Across our test dishes, the standard deviation of repeated scans ranged from 15 to over 130 kcal.
That's not a flaw unique to us — it's the nature of estimating portions from a single image, and any app showing you one photo number with no uncertainty attached is subject to it. It's why our benchmark reports the mean and spread of several runs rather than a single scan.
Does ruler mode fix it?
0xCal's ruler mode uses the iPhone's LiDAR to measure your plate and pass its real diameter to the AI, attacking the missing-scale-reference problem directly. The honest current answer from the data: it helps substantially on some dishes, and not on others.
| Dish (true kcal) | With ruler mode | Photo alone |
|---|---|---|
| Green curry with chicken and rice (502) | 86.3% | 69.9% |
| Chicken Caesar sandwich (528) | 78.8% | 79.9% |
| Pan-fried pierogi with onion (784) | 63.0% | 77.6% |
On the curry — a plate where knowing the real dish size directly constrains the portion — the scale reference cut the error by more than half. On the pierogi it underestimated. The sample is small (three dishes, five runs each) and we publish it anyway, because that's the point of a public benchmark. As the dish set grows, the live page will tell the real story.
So when should you use which?
- You know what's in it → type it. Home cooking, your usual breakfast, anything you made yourself. "2 fried eggs and toast with butter" carries more information than any photo of eggs and toast.
- You don't know what's in it → photograph it. A restaurant plate, a buffet, someone else's cooking. The AI's identification plus a typical-portion estimate beats your blind guess.
- Best of both: photo + a short note. In 0xCal you can attach a text note to a photo scan — "the bowl is mostly rice" or "cooked in a lot of oil." That one sentence supplies exactly the information the camera can't see, and it's the highest-accuracy way to log a mixed plate.
The perspective that matters
Even at 76%, photo logging is far better than what most people do without it — which is not logging the meal at all, or picking a random database entry. A fast, imperfect log you actually make beats a precise one you skip. But if you're choosing a default habit, the data is clear: describe your food in words when you can, and save the camera for plates you can't describe.
Full methodology and per-dish results, updated weekly: 0xcal.app/benchmarks. For how text logging itself scores against database apps, see our accuracy deep-dive.