Nutrition Facts

How Caliq Calculates Calories in Indian Food

The short answer

When you type "2 roti, 1 katori dal, 1 katori rice", Caliq looks up the calories for each item in the Indian food tables first. If no table row matches, it makes an AI estimate. Items that come from a table carry a small green check that links to the table, so you can always tell a table number from an estimate.

Green check: the number comes from an Indian food table (IFCT or INDB). No check: usually an AI estimate.

That's really the whole idea. The rest of this page is the detail, and the parts we're still not happy with.

What happens when you type a meal

Flow diagram: a typed meal is split into items and grams, matched against about 1,400 Indian foods, then gets a table number with a green check or an AI estimate.
What happens to one meal, from a real run of the app.
  1. We split your meal into items and grams. "2 roti, 1 katori dal, 1 katori rice" becomes three items: 2 roti are about 70 g, and a katori of dal or rice about 150 g. You can write katori, roti, piece, plate, glass or grams, the way you'd say it at home.
  2. We search about 1,400 Indian foods and dishes from two tables: IFCT 2017 and INDB (more on both below). Search looks at the name you typed and its common Hindi and English names, so "chole" also finds chickpea dishes.
  3. A second check picks the right match. Search can be fooled by short names: "rajma" also matches raw dry rajma beans, which is not what you ate. So a second step looks at the top few matches and picks the one that is actually the same dish, cooked the way you'd eat it.
  4. If no table row matches, an AI estimates it. Say you type something the tables don't have, like a regional dish nobody measured. An AI model estimates the nutrition from typical recipes. Before we use it, we check that the calories add up with the protein, carbs and fat. If they don't, the answer is thrown away and another AI model is asked.
  5. Table items get a green check. In your log, an item matched to IFCT or INDB shows a small green check. Tap it to open the table it came from. An item without a check didn't come from the Indian tables: usually it's an AI estimate.
A Caliq log with three items: Chapati/Roti, 70 g, 179 kcal, with a green check; Dal, 150 g, 172 kcal, with no check; Boiled rice, 150 g, 176 kcal, with a green check.
The same meal in your log (simplified). Roti and rice come from INDB; plain dal got an AI estimate.

Where the numbers come from

SourceWhat it isGood atNot so good at
INDBIndian Nutrient Databank: a research database of cooked Indian dishes, built from recipesDal, sabzi, curries, rotis, snacks, sweets, as cooked at homeIts recipes are one version of each dish; yours may be different
INDB, oil-adjustedINDB rows we corrected for frying oil and cooked weight (method below)Fried foods and boiled or steamed dishesOnly done where we had measured data to check against
IFCT 2017Indian Food Composition Tables from ICMR's National Institute of Nutrition, Hyderabad: lab-measured valuesRaw ingredients: atta, dal, rice, vegetables, fruit, milkFew cooked dishes
USDAFoodData Central, the US government's lab tablePackaged and global foodsNot tuned for Indian cooking
AI estimateAn AI model's estimate, checked so the numbers add upDishes no table row matchesIt's an estimate. Good, usually, but not lab data

IFCT, INDB and oil-adjusted INDB items carry the green check in the app. USDA and AI items don't.

Two things we adjust in INDB, and why

We like INDB a lot. It's the only big database of Indian dishes as people actually cook them, and its authors made it free for everyone. But it's built from recipes, and two recipe details matter a lot for some foods:

  • Frying oil. A recipe lists the oil that goes into the kadhai. For fried foods like poori, pakora or vada, only part of that oil ends up in the food. We count only the oil the food absorbs, using a factor fitted to an Indian lab study of fried foods (Jain et al., 2024).
  • Cooked weight. A recipe's weight is its raw ingredients. Cooking adds or boils off water, so per-100 g values for boiled and steamed dishes can be off. For dishes where a lab measured the cooked food, we correct the weight to match (using Chiplonkar and Agte, 2007, and USDA measurements).
Two adjustments to INDB. For fried food, only the oil the poori absorbs is counted, not all the oil in the kadhai. For boiled and steamed dishes, the weight of the cooked dish is used where a lab measured it.
The two things we adjust in INDB, only where measured data lets us check.

In the app these rows carry the same green check as INDB. The original INDB rows are never edited. Our corrected versions sit next to them, and the method is written down step by step.

How we check it

  • Every morning, 34 everyday foods and meals (2 roti, 1 katori dal, a plate of poha, 2 idli, a vada pav and so on) go through the live app. Each has an expected calorie range. If one falls outside it, we get a warning that morning.
  • Every change to search is checked against a fixed answer key of real food names people typed, before it ships.
  • No independent audit yet. That's the honest truth. We're planning a public side-by-side test with other apps, our misses included.

Honest limits

  • Portions vary. Your katori may be bigger than ours, your roti thinner. If you know the grams, type grams.
  • Home recipes differ. Your dal may have more ghee than the table's dal. If you add ghee on top, log it ("1 tsp ghee").
  • AI estimates can be off. Items without a green check are the ones to double-check.
  • Some common foods still get an estimate, even when a table has them. Our match step sometimes skips the table row. Plain "dal" is one today: the tables have many dals, but you often get an AI estimate, even for moong dal. We're working on it.
  • Some dishes are missing or matched wrong. It happens. Tell us on the Contact page, with the dish and what you expected. That is how the data gets fixed.

Free, no ads

Caliq is free and has no ads. Nobody pays us to show a number, and nothing is hidden behind a paywall. Your meal logs are yours: see the privacy policy for what we store and why.

Questions people ask

Is Caliq accurate for Indian food?

As accurate as the tables it uses, plus the care we take with portions. Items from INDB or IFCT carry a green check, and anything without one is an estimate, so you can see which numbers to double-check. We'd rather you know than assume.

Where does Caliq get its calorie data?

From IFCT 2017 (published by ICMR's National Institute of Nutrition), the Indian Nutrient Databank, USDA FoodData Central for packaged foods, and an AI estimate when no table row matches.

What does "AI estimate" mean in Caliq?

No table row matched that dish, so an AI model estimated its nutrition from typical recipes. We check that the calories add up with the protein, carbs and fat, and we record which AI model made each estimate and when.

Does Caliq count oil and ghee?

Yes for dishes from INDB, whose recipes include the oil or ghee, and for fried food we count only the oil that's actually absorbed. Extra ghee on top you should log yourself.

Want to track the nutrition in your Indian meals?

Try Caliq Free