How to count calories in Indian food: roti, dal, sabzi, and the oil
Most of what I eat never had a barcode. Dal, roti, rice, a bowl of dahi, and a sabzi that changes with whatever is left in the fridge. When I tried counting calories, this is where it fell apart. In an earlier post I put it this way: “By the time I’d found the right rice I’d lost interest in logging the dal.”
This post is the method I wish I had then. You do not need an app for it. You need a measuring cup, a teaspoon, and one evening in your own kitchen. A kitchen scale helps, but it is optional.
The short answer
Count the parts of the plate, not the name of the dish. A thali is not one food. It is two rotis, a katori of dal, some sabzi, some rice, and the oil and ghee that went into all of them. Count each part in a household measure you have checked once, and give the fat its own line.
- Break the plate into parts.
- Measure your own katori, cup and roti once.
- Count the oil and ghee on their own line.
- For dal and sabzi, count the pot, then divide.
- Accept a close number. Close and steady is worth more than exact and abandoned.
Why is Indian food hard to count?
Because one name covers a hundred recipes, and most of the difference sits in fat you cannot see.
- One word, many dishes. “Dal” can be a thin masoor dal with a teaspoon of jeera tadka, or a dal makhani with butter and cream. Same word, very different bowls.
- No label. A pot of rajma has no nutrition label and nothing to scan.
- Invisible fat. Once oil or ghee is cooked into a dish, you cannot see it. It is often the biggest number on the plate.
None of this makes home food uncountable. It means you count it by parts and by the pot, not by the name.
Step 1: Break the plate into parts
Write the plate as a list, one line for each thing you can point at, plus one line for the fat. For example:
- 2 rotis
- 1 katori of masoor dal
- 1 serving of cabbage sabzi
- half a cup of rice
- half a cup of dahi
- a little ghee on the rice
That list is most of the work. Everything after this is putting a number next to each line.
Step 2: How much is one katori?
There is no standard katori, so measure yours once. Fill the katori you use most with water, pour it into a measuring cup, and write the number down. Do the same with your usual serving spoon and steel glass. After that, “a katori of dal” means something real in your kitchen.
Rotis vary even more. USDA lists one store-bought whole-wheat roti at 43 g and 129 kcal, and a larger plain roti at 68 g and 202 kcal. If you have a scale, weigh one of yours, once. For the same dough, calories follow weight: a roti that weighs half as much has about half the calories, before any ghee on top.
No scale? Count from the atta instead. A cup of whole-wheat flour (120 g) is 408 kcal in USDA data. Count how many rotis one cup of your atta makes, and divide.
Step 3: Why oil and ghee are the biggest hidden number
A small amount of fat carries a lot of calories, and you cannot see it once it is cooked in. USDA lists vegetable oil at 40 kcal per teaspoon and 120 kcal per tablespoon. Mustard oil is 124 kcal per tablespoon, so the type of oil barely changes the count. The amount does.
Ghee is 900 kcal per 100 g. USDA gives no spoon weight for ghee, so weigh a spoonful of yours once. For reference, 5 g of ghee is 45 kcal.
Here is the number worth remembering. A medium cabbage, about 908 g, is 227 kcal in USDA data. Three tablespoons of oil is about 360 kcal. In a cabbage sabzi, the oil is the bigger number. The same is true for most green sabzis: raw cabbage, bhindi, green beans, cauliflower and spinach are all between 23 and 33 kcal per 100 g. In aloo sabzi the potato counts too. A medium boiled potato is 144 kcal (FDC 170440).
This is not a reason to skip the tadka or the ghee on your rice. That is where a lot of the flavour lives. It is a reason to count it. If you add only one extra line to your log, make it the fat.
How to count it: measure the oil when it goes into the pot, not when it is on your plate. Use a spoon you know. Then divide by the number of servings. Three tablespoons in a sabzi for four is about three-quarters of a tablespoon each, which is 90 kcal of oil per serving.
Step 4: For dal and sabzi, count the pot, then divide
Add up what went into the pot, then divide by the number of bowls you serve from it.
This matters most for dal. The cooked-lentil numbers in the table below are for lentils alone. A katori of dal is lentils, water and tadka, so a thin dal has fewer lentils in each katori than a cup of boiled lentils does. Counting the pot avoids the problem, because water adds nothing.
Here is a pot of masoor dal for four, counted with USDA values:
| What went in | USDA entry (FDC ID) | kcal |
|---|---|---|
| 1 cup raw red lentils (192 g) | Lentils, pink or red, raw (174284) | 687 |
| 2 tbsp oil for the tadka | Oil, vegetable, soybean, refined (172370) | 240 |
| 1 medium onion (110 g) | Onions, raw (170000) | 44 |
| 1 medium tomato (123 g) | Tomatoes, red, ripe, raw, year round average (170457) | 22 |
| The whole pot | 993 | |
| One bowl, if it serves four | about 248 |
Spices and salt add very little, so I left them out. Of those 248 kcal, 60 are the tadka oil. How thin you make the dal does not change the pot. How many bowls you get out of it does.
How do you estimate a thali?
Add up the parts. A thali has no single calorie number, because every thali is a different set of katoris. Here is one example plate, built from the steps above:
| Part of the plate | How it was counted | kcal |
|---|---|---|
| 2 rotis | 2 × 43 g whole-wheat roti (FDC 174075) | 257 |
| 1 bowl of masoor dal | the pot above, divided by four | 248 |
| 1 serving of cabbage sabzi | a medium cabbage and 3 tbsp oil, divided by four | 147 |
| Rice | half a cup, cooked (FDC 169757) | 103 |
| Dahi | half a cup of plain whole-milk yogurt (FDC 171284) | 75 |
| Ghee on the rice | 5 g (FDC 171314) | 45 |
| Total | 875 |
About 195 kcal of that plate is oil and ghee: 60 in the dal, 90 in the sabzi, and 45 on the rice. You would never see it on the plate. That is why the fat gets its own line.
This is one example, not a standard thali. Your katoris, your rotis and your oil will give you a different number. The method stays the same.
Restaurant food versus home food
Treat restaurant food as a different dish from the one you make at home, even when the name is the same. Unless you know otherwise, assume more fat and a bigger portion than your version. A restaurant cannot tell you how much butter went into your paneer makhani, and its bowl is not your katori.
Two habits help:
- Estimate the portion in your own measures. “About two of my katoris” is a good estimate.
- Add a separate line for the fat, and be generous with it. In the example plate above, doubling the oil in the dal and the sabzi adds 150 kcal, and the plate looks exactly the same.
Reference table: USDA numbers for everyday staples
Every number here comes from USDA FoodData Central, in the household measure USDA gives for that food. The FDC ID lets you look up each row yourself. Home recipes vary, so treat these as a starting point, not the answer.
| Food | Measure | kcal | Protein (g) | Fat (g) | USDA entry (FDC ID) |
|---|---|---|---|---|---|
| Cooked lentils | 1 cup (198 g) | 230 | 17.9 | 0.8 | Lentils, mature seeds, cooked, boiled, without salt (172421) |
| Cooked toor (pigeon peas) | 1 cup (168 g) | 203 | 11.4 | 0.6 | Pigeon peas (red gram), mature seeds, cooked, boiled, without salt (172437) |
| Cooked moong (mung beans) | 1 cup (202 g) | 212 | 14.2 | 0.8 | Mung beans, mature seeds, cooked, boiled, without salt (174257) |
| Cooked chana (chickpeas) | 1 cup (164 g) | 269 | 14.5 | 4.2 | Chickpeas (garbanzo beans, bengal gram), mature seeds, cooked, boiled, without salt (173757) |
| Cooked white rice | 1 cup (158 g) | 205 | 4.3 | 0.4 | Rice, white, long-grain, regular, unenriched, cooked without salt (169757) |
| Whole-wheat roti | 1 piece (43 g) | 129 | 3.4 | 4.0 | Bread, chapati or roti, whole wheat, commercially prepared, frozen (174075) |
| Plain roti | 1 piece (68 g) | 202 | 7.7 | 5.1 | Bread, chapati or roti, plain, commercially prepared (171844) |
| Whole-wheat paratha | 1 piece (79 g) | 258 | 5.0 | 10.4 | Bread, paratha, whole wheat, commercially prepared, frozen (174076) |
| Whole-wheat flour (atta) | 1 cup (120 g) | 408 | 15.9 | 3.0 | Wheat flour, whole-grain (Includes foods for USDA’s Food Distribution Program) (168893) |
| Vegetable oil | 1 tsp (4.5 g) | 40 | 0 | 4.5 | Oil, vegetable, soybean, refined (172370) |
| Vegetable oil | 1 tbsp (13.6 g) | 120 | 0 | 13.6 | Oil, vegetable, soybean, refined (172370) |
| Ghee | 100 g | 900 | 0 | 100 | Butter, Clarified butter (ghee) (171314) |
| Dahi (plain whole-milk yogurt) | 1 cup (245 g) | 149 | 8.5 | 8.0 | Yogurt, plain, whole milk (171284) |
A few notes on reading it:
- The lentil, toor, moong and chana rows are boiled legumes on their own. For dal, count the pot.
- The rotis and the paratha are store-bought. Yours may be smaller or larger, so weigh one.
- Paneer is not in the table. The USDA data I used has no paneer entry, and I did not want to guess. Store-bought paneer has a nutrition label, so use that.
Does it have to be exact?
No. It has to be close, and it has to be something you will keep doing. A number that is a little off in the same way every day still shows you your week.
The point of measuring your katori once is that you do not have to measure it again. After a few weeks of this, you look at a plate and know roughly what is on it. That skill stays with you, with or without any app.
One more thing. If counting ever starts to make food feel worse instead of clearer, stop for a while and talk to someone you trust. Food is still food.
Where FitGlass fits
I built FitGlass because I wanted all of this without the typing. Say the plate in a sentence, “two rotis, a bowl of masoor dal, cabbage sabzi, and a teaspoon of ghee on the rice”, and Clay, the app’s AI nutritionist, logs each part. The numbers are estimates, cross-checked against USDA data where a food matches, and every entry is editable. If a portion is off, fix it in words: “make the rice a cup”. Dal, paneer and roti are also one-tap quick adds.
Clay does not know your katori or your oil unless you tell it, so the habits above still matter. Say the oil out loud too. FitGlass is free on the App Store today.
Frequently asked questions
How many calories are in one roti?
It depends on the size, and on whether there is ghee on it. USDA lists a 43 g store-bought whole-wheat roti at about 129 kcal (FDC 174075) and a 68 g plain roti at about 202 kcal (FDC 171844). Weigh one of your own rotis once and scale from there. Ghee brushed on top is extra: 5 g of ghee is 45 kcal (FDC 171314).
How many calories are in a katori of dal?
There is no single answer, because katoris and dals both vary. The most reliable way is to count the pot: add up the dry lentils, the oil or ghee, and the onion and tomato, then divide by the number of bowls. A pot made with 1 cup of raw red lentils, 2 tablespoons of oil, a medium onion and a medium tomato comes to about 993 kcal in USDA data, or just under 250 kcal a bowl if it serves four.
How do I count the oil in Indian food?
Measure the oil when it goes into the pot, then divide by the number of servings. USDA lists vegetable oil at about 40 kcal per teaspoon and 120 kcal per tablespoon (FDC 172370), and ghee at 900 kcal per 100 g (FDC 171314). Three tablespoons of oil in a sabzi for four is about 90 kcal of oil in each serving.
How do I count calories in home-cooked food without a barcode?
Count the parts of the plate instead of the name of the dish. Measure your katori, your cup and one roti once. Give oil and ghee their own line. For dal and sabzi, add up what went into the pot and divide by the servings. The result is an estimate, and a steady estimate is enough to show you your pattern.
How many calories are in an Indian thali?
There is no standard number, because every thali has different parts. Add up each katori, the rotis, the rice, and the fat. One example plate with two rotis, a bowl of masoor dal, cabbage sabzi, half a cup of rice, half a cup of dahi and 5 g of ghee came to about 875 kcal using USDA values, and about 195 kcal of that was oil and ghee.
Is there an app that counts calories in Indian food?
FitGlass, the iPhone app I built, logs a plate from a sentence such as "two rotis, dal, and a bowl of curd". Clay, its AI nutritionist, estimates each part and cross-checks it against USDA data where a food matches. Every entry is editable, and you can fix a portion by saying it, for example "make the rice a cup". It is free on the App Store today.