Research

Why Portion Errors Break AI Calorie Tracking — Not Food Identification

Rishi Bhojnagarwala
A katori of dal vs a bowl of dal and bowl sizes
AI NutritionPortion SizeCalorie TrackingFood MeasurementIndian FoodNutrition TechnologyProduct DesignCaddy App

Why Portion Errors Break AI Calorie Tracking — Not Food Identification

Written by Rishi Bhojnagarwala

Nutrition Reviewed by Dr. Hetal Pal, PhD in Nutrition Science



Users forgive an app that can't find their exact dish. They never forgive an app that gets the portion wrong. Here's why that gap exists, and what it takes to actually close it.

The Error Users Forgive

Open any nutrition app, search for a specific dish, and sometimes it isn't there in the exact form you expected. Mysore masala dosa, for instance, might not show up by that precise name.

What actually happens next is telling: users barely react. They pick "Masala dosa" instead, log it, and move on with their day. The mismatch registers as a minor inconvenience, not a failure. (Caddy, for what it's worth, has hundreds of dosa variants in its database — but even in apps where an exact match genuinely isn't available, this specific kind of error rarely breaks user trust.)

Food database portion estimation

The Error Users Never Forgive

Now take a dish the app identifies correctly — no ambiguity about what food it is — but gets the portion wrong. The reaction is immediate, and it's severe. This is the complaint that shows up in reviews, in support tickets, in people quietly abandoning an app after a week.

This pattern isn't unique to Caddy's own users. It's backed by a decade of published research on AI-based dietary assessment, which consistently finds that portion estimation, not food identification, is the largest source of error in AI-based calorie tracking. Across 6 million-plus meal logs and input from thousands of Indian users, our own data tells the identical story: food-matching mismatches are shrugged off. Portion mismatches are not.

Why This Gap Exists

The reason isn't complicated once you see it. Getting a calorie deficit — the entire mechanism behind weight loss — depends on an accurate total. A slightly wrong food match still produces a roughly correct calorie count, because similar dishes tend to have similar macros. A wrong portion doesn't just misreport one meal. It corrupts the one number the whole system exists to get right, sometimes by a factor of two or three.

Why AI Gets Portions Wrong: The Mechanism

Generic AI treats measurement words as if they were fixed, universal constants. Real language was never built that way, and Indian food measurement in particular resists that assumption at nearly every step.

A katori, a bowl, and a soup bowl are three distinct vessels, each with a different typical volume: roughly 125 grams for a katori, 180 grams for a standard bowl, and 270 grams for a soup bowl. A generic AI model, trained on food photography without this specific context, tends to collapse all three into a single generic "bowl" estimate and apply one number regardless of which vessel is actually being used.

Food measures change by context


The same failure shows up with liquid measures. A cup of tea and a cup of milk aren't the same weight — roughly 150 grams versus 250 grams — because of how each is actually poured and served in practice. A generic model hears "cup," assumes a fixed 250 grams, and applies that number whether the context calls for it or not.

This is the core distinction worth understanding: food identification and portion accuracy are two completely separate technical problems. Solving one does essentially nothing for the other. AI is genuinely strong at recognising that a dish is dal, a dosa, or a kebab — pattern recognition on food imagery is a problem modern vision models handle well. What AI has no reliable way to know is how much, because "how much" depends on regional, linguistic, and cultural context that generic training data was never built to capture.

What a Different Approach Looks Like

This is why a plug-and-play wrapper around a generic vision API was never going to solve the portion problem, no matter how good the underlying model got at recognising food.

The approach that actually works splits the two problems apart deliberately. AI handles identification — its genuine strength. A separate, purpose-built database handles quantity: multiple standardised measures per food item, built from real user input across millions of logged meals, matched to how people actually describe their portions rather than how a generic model assumes they do.

Multiple measure options


A concrete example: a chicken kebab piece weighs approximately 60 grams. A full serving runs closer to 180 grams. Offering both as clear, selectable options — rather than asking a user to estimate grams by eye, or silently guessing on their behalf — closes the exact gap that generic apps consistently fail on.

The Dal Case Study, Revisited

We've written about what happens without this kind of system in place. A single katori of dal, photographed and run through both GPT and Gemini, came back with an estimate of roughly 300 calories and 15 grams of protein. The actual katori: around 130 calories and 5 grams of protein — more than double the calorie estimate, from one of the most commonly eaten dishes in the country.

AI food recognition


The failure wasn't that the models didn't recognise dal. Both did, in some form. The failure was entirely in quantity: assuming a larger bowl than was actually used, and assuming a thicker, more concentrated dal than the standard recipe produces. Read the full breakdown in [Why Global AI Calorie Apps Get Indian Food Wrong: A Dal Case Study].

AI estimates calories wrong

Why This Matters More Than It Sounds

Getting the food identification roughly right is, relatively speaking, the easy 80% of the problem — modern AI vision models handle this reasonably well across most cuisines. Getting the portion right is where the actual product work lives, and it's the part that determines whether a user's Score means anything at all.

Caddy measures food in multiple ways

How Caddy Fits Into This

This is the entire reason Caddy wasn't built as a thin interface on top of a generic AI model. Food recognition and portion mapping are treated as two separate systems, because they're two genuinely separate problems — one where AI already excels, and one where AI alone consistently fails without a deeper, context-aware database behind it.

Built specifically around Indian food, with multiple real-world measures per dish rather than one generic assumption, Caddy is designed so that the number behind your Score reflects what was actually on your plate — not what a model trained on a different cuisine's photography assumed it probably was.

Know what you ate. Know how much.
Score 8. Lose weight. That's it.

GetCaddy.ai


Frequently Asked Questions

Why do nutrition apps get portion sizes wrong even when they identify the food correctly?
Most AI models are trained primarily on Western food photography, where measurement conventions are simpler and more visually obvious. Indian food measurement relies on culturally specific vessels and serving conventions — like the difference between a katori, a bowl, and a soup bowl — that generic AI models were never trained to distinguish, so they default to a single, often inaccurate, estimate.
What's the difference between a katori and a bowl in nutrition tracking?
A katori is a smaller vessel typically used for dal, curd, and similar dishes, holding around 125 grams of food. A standard bowl holds closer to 180 grams, and a soup bowl around 270 grams. Generic nutrition apps often treat all of these as one generic "bowl" measurement, which can significantly under- or overestimate portion size.
Why is portion estimation harder for AI than identifying the food itself?
Identifying a food relies on visual pattern recognition, which modern AI models handle reasonably well across most cuisines. Portion estimation depends on regional and linguistic context — how a specific culture measures and describes servings — which isn't something a generic, one-size-fits-all model was trained to capture accurately.
How does Caddy calculate accurate portions for Indian food?
Caddy uses AI for food identification, then maps the identified dish against a dedicated database built from real user input across millions of logged meals — including multiple standardised measures per food (like a chicken kebab piece at 60g versus a full serving at 180g), rather than relying on a single generic estimate.
Is food identification or portion accuracy more important for calorie tracking?
Portion accuracy matters more for the number that actually predicts weight loss outcomes. A slightly mismatched food item still tends to produce a roughly accurate calorie count, since similar dishes usually have similar macros — but a wrong portion size can distort a meal's actual calorie count by a factor of two or more, directly undermining the calorie deficit calculation tracking is meant to support.

Get Caddy

Your simplest way to eat smarter with Indian food

Download