Per-rupee math tells you which food is cheapest per gram of protein. Per-serving math tells you what a meaningful portion actually costs at the table. A 50g katori of moong dal gives 11.9g of protein for ₹7.00. An 80g side of paneer gives 15.1g for ₹32. A glass of sattu sits at 8.4g for ₹8.00. That is the shape of the dataset below — 26 Indian foods priced at the serving size you would actually eat, using April 2026 kirana prices and IFCT 2017 composition data.
About this dataset
This is the per-serving companion to the Protein Per Rupee Comparison Table Across Common Foods. Same foods, same prices, same protein values — different lens. Per-rupee answers “which food is cheapest per gram of protein.” Per-serving answers “what does a katori, a glass, or a plate of this food cost me, and how much protein do I get at that portion.” Most readers end up using both.
The buckets below sort foods by per-serving cost: under ₹10 (bulk-anchor tier), ₹10-₹20 (mid-tier), ₹20+ (accent tier). That sort surfaces a practical pattern — dals, carrier grains, and soy chunks all land under ₹10 per serving, which is why a dal-rice-sabzi plate quietly wins on unit economics no matter how fancy the alternatives look.
Methodology
Pricing basis: April 2026, Bengaluru mid-tier kirana, loose-bin prices where available, branded-pack prices only for items not commonly sold loose (whey, oats). Regional variance is ±15 to 20%; adjust for your own shelves.
Protein data: IFCT 2017 (Indian Food Composition Tables, NIN) for pulses, cereals, millets, paneer, eggs. USDA FoodData Central for tofu (#172475), curd (#171287), oats (#173904). ICMR-NIN RDA 2020 provides the daily orientation target (0.83g/kg standard, 1.0g/kg for cereal-dominant diets).
Derivation formula:
Cost per serving = (₹/kg of food) × (serving size in kg)
Protein per serving = (g protein per 100g) × (serving size in 100g units)
Sanity rule: a whole-food single-source 70g/day should cost under ₹50 at kirana prices. The dataset below passes that check.
Exclusions: no chicken, mutton, or fish (the brand is vegetarian-first, with egg included only as a lacto-ovo inline row). No branded products. No ready-to-eat meals with rupee values — that category is discussed in prose and linked to the relevant bridge articles.
Cost per serving — bucketed tables
Under ₹10 per serving (bulk-anchor tier)
These are the foods that do the heavy lifting on a protein-forward Indian plate. Every row below delivers meaningful protein at a cost that lets you eat the food two or three times a week without rethinking your budget.
| Food | Standard serving | Protein /serving | Cost /serving | ₹/g of protein |
|---|---|---|---|---|
| Wheat atta (whole) | 60g (2 rotis) | 6.3g | ₹2.70 | ₹0.43 |
| Bajra (pearl millet) | 60g (1 bhakri) | 6.6g | ₹3.30 | ₹0.50 |
| Jowar (sorghum) | 60g (1 bhakri) | 6.0g | ₹3.30 | ₹0.55 |
| Rice, parboiled | 80g raw (1 plate) | 6.2g | ₹4.00 | ₹0.64 |
| Ragi (finger millet) | 60g (1 ragi roti) | 4.3g | ₹4.20 | ₹0.98 |
| Peanut (ground nut) | 30g (small handful) | 7.1g | ₹4.20 | ₹0.59 |
| Chana dal | 50g (1 katori cooked) | 10.8g | ₹4.50 | ₹0.42 |
| Horse gram (kulthi) | 50g | 10.9g | ₹5.00 | ₹0.46 |
| Kala chana (whole) | 50g | 9.4g | ₹5.50 | ₹0.59 |
| Masoor dal (red lentil) | 50g (1 katori cooked) | 12.2g | ₹6.50 | ₹0.53 |
| Moong whole | 50g | 11.3g | ₹6.50 | ₹0.58 |
| Soy chunks (defatted, dry) | 30g (1 curry portion) | 15.6g | ₹6.60 | ₹0.42 |
| Oats | 40g (1 bowl cooked) | 4.3g | ₹6.80 | ₹1.59 |
| Moong dal (split, dehusked) | 50g (1 katori cooked) | 11.9g | ₹7.00 | ₹0.59 |
| Toor/arhar dal | 50g (1 katori cooked) | 10.9g | ₹8.00 | ₹0.74 |
| Sattu (roasted bengal gram flour) | 40g (1 glass drink) | 8.4g | ₹8.00 | ₹0.95 |
| Urad dal (split) | 50g (1 katori cooked) | 11.5g | ₹8.50 | ₹0.74 |
Two patterns to notice. First, every dal katori in this tier costs less than ₹10 and gives 9 to 12g of protein. Two katoris a day is ~22g of protein for roughly ₹10 to ₹17 total. That is the backbone of budget Indian eating. Second, soy chunks punch above their weight — a 30g dry portion rehydrates to a full curry base and delivers 15.6g for ₹6.60, the highest per-serving protein anywhere under ₹10.
₹10-₹20 per serving (mid-tier)
This tier is where dairy and legumes that need larger portions to cook out properly land. Still affordable for daily use; worth the step up when you want variety or a specific texture.
| Food | Standard serving | Protein /serving | Cost /serving | ₹/g of protein |
|---|---|---|---|---|
| Curd (full-fat dahi) | 150g (1 katori) | 4.7g | ₹10.50 | ₹2.26 |
| Rajma (red kidney bean) | 60g (1 katori cooked) | 11.9g | ₹10.80 | ₹0.90 |
| Egg (whole) | 2 eggs (~100g) | 13.3g | ₹14.00 | ₹1.05 |
| Almond | 20g (~15 pieces) | 3.7g | ₹16.00 | ₹4.35 |
| Milk (full cream) | 250ml (1 glass) | 8.3g | ₹16.50 | ₹2.00 |
A 2-egg serving at ₹14 for 13.3g is order-of-magnitude equivalent to a moong katori — same protein load, about twice the price, zero cook time. For lacto-ovo readers, that trade-off often wins on a weekday morning. Pure-vegetarian readers can skip this row without losing meaningful protein coverage on the plate.
₹20+ per serving (accent tier)
This is the tier where you pay for density per bite and for meal-format flexibility. These foods do not replace dals and soy chunks; they round out the meals those staples anchor.
| Food | Standard serving | Protein /serving | Cost /serving | ₹/g of protein |
|---|---|---|---|---|
| Paneer (full-fat) | 80g (1 side-dish portion) | 15.1g | ₹32.00 | ₹2.12 |
| Whey concentrate (2-kg tub tier) | 30g (1 scoop) | 23.1g | ₹34.80 | ₹1.50 |
| Tofu (firm) | 100g (1 side-dish portion) | 17.0g | ₹35.00 | ₹2.06 |
| Whey concentrate (1-kg tub, ~77% protein) | 30g (1 scoop) | 23.1g | ₹75.00 | ₹3.25 |
Tofu at ₹35 for 17g per 100g serving ties paneer on ₹/g-of-protein and beats it on per-serving protein, with about one-third the saturated fat — useful when the meal format can take tofu’s firmer bite. Whey shows up twice because honest pricing depends on tub size: a 2kg bulk-buyer tub lands near paneer’s per-scoop cost, while a 1kg tub is roughly twice that. For the meal-context take on whether whey is worth it against whole-food protein, see Whey vs Indian Food Protein: Where Each Fits.
The “protein budget” framework
Take the brief’s challenge — hit 70g of protein in a day on under ₹100 using only the cheapest tier — and the dataset above gives a clean answer.
| Item | Serving | Protein | Cost |
|---|---|---|---|
| Moong dal | 2 katoris (50g dry each) | 23.8g | ₹14.00 |
| Sattu drink | 1 glass (40g) | 8.4g | ₹8.00 |
| Curd | 1 katori (150g) | 4.7g | ₹10.50 |
| Peanut | 1 small handful (30g) | 7.1g | ₹4.20 |
| Wheat atta | 2 rotis (60g) | 6.3g | ₹2.70 |
| Soy chunks | 1 curry portion (30g dry) | 15.6g | ₹6.60 |
| Rice, parboiled | Half plate (40g raw) | 3.1g | ₹2.00 |
| Total | 69.0g | ₹48.00 |
That is 69g of protein for ₹48, which leaves room for ghee, spices, vegetables, and a milk-tea or two without breaking ₹100. Swap the soy chunks for an 80g paneer side and the day costs ₹73.40 for 68.5g — same protein target, paneer format, still well under ₹100. The dictionary’s serving-level math makes both versions concrete.
Meal-cost tiers
Three worked meals using the rows above.
Budget meal (~₹26.50, ~26g protein) — one katori of masoor dal (₹6.50, 12.2g) + one plate of rice (₹4.00, 6.2g) + a bhurji-size 40g paneer cube (₹16, 7.55g — half an 80g serving). Carrier plus anchor plus accent, everything from the dataset, no surprises.
Standard meal (~₹41.70, ~33.3g protein) — one katori of moong dal (₹7.00, 11.9g) + two rotis (₹2.70, 6.3g) + 80g paneer side (₹32.00, 15.1g). A complete plate that lands over 30g of protein for under ₹45. Most home cooks are already making something close to this and under-counting the protein because they count only the paneer.
Convenience option (prose only, no dataset row) — ready-to-eat protein packs typically run ₹180 to ₹250 for 15 to 18g of protein, which puts them at roughly ₹12 to ₹16 per gram of protein, an order of magnitude above everything in the accent tier. That category is evaluated honestly against homemade alternatives in Best Convenient High-Protein Indian Meal Options and in the clean-label ready meals bridge. It is intentionally not in the dataset above — this is a food-composition corpus, not an RTE pricing table.
For more worked meals at the budget end, see Cheap High-Protein Indian Meals for Busy Weekdays and High-Protein Meals Under Rs. 100.
Limits of this dataset
Three things the numbers do not capture and that a careful reader should keep in mind.
Regional variance. Bengaluru mid-tier kirana is the pricing basis. A Mumbai ration shop, a Chennai wholesale market, and a Tier-3 kirana will all diverge by ±15 to 20% in either direction. Wheat atta at ₹45/kg in Bengaluru can be ₹38/kg in Punjab or ₹55/kg in Mumbai. The relative ranking of foods stays stable; the absolute rupee figure moves.
Serving convention. “One katori” means different things in different kitchens — anywhere from 40g dry to 70g dry. The dataset uses 50g dry for dal katoris (the most common household portion per IFCT convention), 80g paneer for side-dish portions, and 250ml milk per glass. If your household pours larger, scale the numbers up proportionally.
Loose versus branded. Dals, grains, nuts, and paneer are priced at loose-bin rates. Sealed branded packs run 30 to 60% higher depending on the brand tier. Oats and whey are the two rows priced at branded-pack rates because loose-bin pricing is not standard for them. Tofu varies more than most foods — firm blocks at ₹35/100g, soft blocks often at ₹25/100g. The table uses firm tofu.
For the deeper ingredient-level context on sattu and the paneer-vs-tofu decision, see Sattu Protein Content and How to Use It and Paneer vs Tofu for Protein, Price, and Convenience.
Related pages
- Protein Per Rupee in India: Affordable Protein Foods — the parent pillar.
- Protein Per Rupee Comparison Table — the companion data asset, same foods, per-rupee lens.
- Best Convenient High-Protein Indian Meal Options — honest homemade-vs-ready comparison.
- Cheap High-Protein Indian Meals for Busy Weekdays.
- High-Protein Meals Under Rs. 100.
Final takeaway
At real household portions, the per-serving cost of Indian protein looks nothing like the marketing version. A katori of dal costs ₹4.50 to ₹10.80 and delivers 10 to 12g of protein. A glass of sattu clears a breakfast’s worth of protein for ₹8. An 80g paneer side is ₹32 for 15g. Two rotis and a plate of rice contribute another 12g for under ₹7. The whole-food path to 70g of protein fits comfortably under ₹100 in any Indian kitchen that is already cooking dal twice a week. Ready-to-eat meals have their place when the weekday collapses, but the dataset is clear about where the real unit-economics win lives.


