The Indian Athlete's Macro Guide: Dal, Roti, Rice and Real Numbers
Most macro guidance assumes chicken breast and oats. This one is built on the food actually on your table — with per-serving numbers for the staples and three worked days at different calorie targets.
- The classic dal-roti-sabzi-rice plate is carbohydrate-rich and protein-poor — roughly 15g of protein for 600 calories.
- Dal is not a protein source at Indian serving sizes. One katori is about 6g.
- Cooking fat is the single largest source of hidden calories: one tablespoon of ghee is 110 kcal.
- Curd, paneer, soya chunks, eggs and whey are the five levers that fix a vegetarian Indian diet.
- Hitting 130g of protein on an Indian vegetarian diet is very doable — but not by eating more dal.
Almost every macro guide assumes you eat chicken breast, oats, whey and broccoli. If your food is dal, roti, sabzi and rice, those guides are useless — not because the principles differ, but because the numbers you need are not in them.
So here are the numbers, and then what to do about the one problem they reveal.
A note on precision: these are typical values for home-style cooking. Preparation moves them enormously — the same dal is 100 calories or 300 depending on how it is tempered. Treat them as a working map, not a laboratory measurement.
The staples
| Food | Serving | Calories | Protein | Carbs |
|---|---|---|---|---|
| Roti / chapati | 1, from ~35g atta | 110–120 | 3–3.5 g | 22–25 g |
| White rice, cooked | 1 cup (~150g) | 200 | 4 g | 45 g |
| Dal, home-style | 1 katori (~150ml) | 100–130 | 6–8 g | 15–18 g |
| Rajma / chole, cooked | 1 katori | 140–180 | 8–9 g | 22–28 g |
| Curd, full fat | 1 cup (~200g) | 120–140 | 7 g | 9 g |
| Paneer | 100 g | 265–300 | 18–20 g | 3 g |
| Soya chunks, dry | 50 g | 170 | 26 g | 12 g |
| Egg | 1 large | 72–78 | 6–6.5 g | 0.5 g |
| Chicken breast, cooked | 100 g | 165 | 31 g | 0 g |
| Tofu | 100 g | 76 | 8 g | 2 g |
| Whey protein | 1 scoop (~30g) | 120 | 24 g | 2 g |
| Ghee / oil | 1 tbsp | 110–120 | 0 g | 0 g |
| Idli | 1 | 58–70 | 2 g | 12 g |
| Masala dosa | 1 | 350–400 | 7 g | 50 g |
| Poha | 1 plate | 250 | 5 g | 45 g |
| Samosa | 1 | 250–300 | 4 g | 30 g |
The problem this reveals
Look at a completely normal Indian dinner: four rotis, one katori of dal, one katori of sabzi, one cup of rice.
That is roughly 600 to 700 calories and about 15 to 18 grams of protein.
For a 70 kg athlete targeting 130g of protein a day, that meal — which is a large, filling, satisfying plate of food — delivers roughly 13% of the daily protein target for about 30% of the daily calories.
Eat three meals like that and you land somewhere near 50g of protein and 2,000 calories. You will feel like you have eaten plenty, because you have. You will simply have eaten the wrong shape.
This is the entire problem, and it is a structural one, not a discipline one. The traditional Indian plate is built around carbohydrate with protein as a seasoning. It was designed for a population doing manual labour, not for someone trying to hold muscle through a marathon block.
Dal is not the answer
The most common correction people make is "I'll eat more dal." It does not work, and the arithmetic explains why.
To get 30g of protein from dal alone you need roughly four to five katoris. That is 500 calories and a volume of food most people cannot get through, delivering less protein than 100g of paneer at half the calories.
Dal is a genuinely good food. It is fibre, it is micronutrients, it is the base of the meal. It is not a protein source at the serving sizes anyone actually eats.
The five levers
Fixing an Indian diet for athletic protein targets means deliberately adding density. Five things do almost all the work:
- Curd — a cup with lunch and dinner adds 14g for 250 calories, and it is already on most tables.
- Paneer — 100g adds 19g. Expensive per gram of protein compared to chicken, but the highest-protein food most vegetarian Indian kitchens already stock.
- Soya chunks — by a distance the cheapest protein in the country. 50g dry is 26g of protein for 170 calories. Cook them into any gravy.
- Eggs — three eggs is 19g for 220 calories.
- Whey or a plant blend — one scoop is 24g for 120 calories. Not essential, but it is the cheapest way to close a 25g gap without cooking anything.
Notice what is not on this list: eating more roti, eating more dal, or eating more rice. Those move calories, not protein.
Three worked days
2,000 kcal, ~130g protein — fat loss, vegetarian
- Breakfast — 3 besan chillas (60g besan) + 1 cup curd → ~400 kcal, 22g
- Lunch — 2 rotis + 1 katori dal + 100g paneer sabzi + salad → ~600 kcal, 30g
- Snack — whey scoop + 1 cup curd → ~260 kcal, 31g
- Dinner — 1 cup rice + 50g soya chunk curry + sabzi → ~550 kcal, 33g
- Extras — fruit, tea → ~190 kcal, 5g
Total: ~2,000 kcal, ~121g protein. Add a second whey scoop or 50g more paneer to clear 140g.
2,600 kcal, ~150g protein — maintenance, non-vegetarian
- Breakfast — 3 eggs + 2 rotis + curd → ~550 kcal, 30g
- Lunch — 1.5 cups rice + 150g chicken curry + sabzi → ~700 kcal, 50g
- Snack — whey + banana + handful of nuts → ~400 kcal, 28g
- Dinner — 3 rotis + 1 katori dal + 100g paneer or fish → ~700 kcal, 35g
- Extras — milk, fruit → ~250 kcal, 10g
Total: ~2,600 kcal, ~153g protein.
3,200 kcal, ~160g protein — heavy training block, vegetarian
Take the 2,000 kcal day and add: an extra cup of rice at lunch and dinner (+400 kcal), a peanut butter and banana toast mid-morning (+350 kcal), an extra tablespoon of ghee across the day (+110 kcal), and 300ml of milk (+180 kcal). The protein rises modestly; the carbohydrate rises a lot, which is exactly what a high-volume week needs.
The invisible calorie
One thing worth watching more than any other: cooking fat.
A tablespoon of ghee or oil is 110 to 120 calories, it goes into most dishes, and nobody counts it. A day of home cooking commonly carries four to six tablespoons across tempering, sabzis, parathas and dal. That is 500 to 700 calories that appear nowhere in anybody's mental tally.
You do not need to remove it — fat is not the enemy and ghee is not poison. You need to know about it, because it is the difference between a diet that works and one that mysteriously does not despite "eating clean".
Estimating that reliably by eye is genuinely hard, which is where photographing the plate rather than searching a database earns its place — OnlyGains reads Indian food and returns the numbers including what it was cooked in.
The short version
The Indian plate is not the problem. The ratio is.
Keep the dal, keep the roti, keep the rice. Add curd, paneer, soya, eggs. Watch the ghee. And stop trying to solve a protein deficit with more of the food that created it.
Questions people ask
How much protein is in one roti?
A standard 6-inch chapati made from about 35g of atta contains roughly 3 to 3.5g of protein and 110 to 120 calories. Four rotis — a normal meal for many people — is around 13g of protein, which is why a roti-heavy diet tends to run protein-short despite feeling substantial.
How many calories in a bowl of dal?
A standard katori of home-style dal, roughly 150ml, is about 100 to 130 calories with 6 to 8g of protein. Restaurant dal makhani is a different food entirely — cream and butter push a similar portion to 250 to 350 calories.
Can you hit 150g of protein on a vegetarian Indian diet?
Yes, but not from dal and roti. It requires deliberately including the dense sources: paneer, curd, soya chunks, eggs if you eat them, and usually a whey or plant protein supplement. Built around those, 150g is straightforward. Built around dal, it is close to impossible without eating 4,000 calories.
Is rice bad for fat loss?
No. Rice is a carbohydrate source with no special fat-storing property, and a cup of cooked rice is about 200 calories. What makes rice-based meals calorie-dense is usually what accompanies it — oil, ghee, cream-based gravies and the sheer portion size, not the rice itself.
What is a high protein Indian breakfast?
Three eggs with two rotis is roughly 25g. A large bowl of curd with soaked soya or a whey shake is about 30g. Besan chilla made from 60g of gram flour is around 12g and pairs well with curd. The common breakfasts — poha, upma, plain paratha — sit closer to 5 to 7g, which is why most people start the day already behind.
Keep reading

What 100g of Protein Actually Looks Like (Veg and Non-Veg)
Numbers on a screen are abstract. Volume on a plate is not. Two full days of eating counted out, so you know what a hundred grams feels like before you try to eat two hundred.

Caffeine for Athletes: Dose, Timing and the Tolerance Problem
One of the few supplements with genuinely strong evidence, and one most people take in a way that blunts it. Effective dosing by bodyweight, timing before a session, whether to cycle off, and what it costs your sleep.

Electrolytes and Hydration: How Much Salt Do You Actually Lose?
Sweat rates vary five-fold between athletes and sodium concentration varies even more. How to measure your own instead of guessing, what the numbers mean for a hot-weather session, and why most electrolyte tabs are underdosed.
