Every calorie figure on this site is an estimate for a stated serving, not a laboratory value. This page explains what goes into it, so you can judge the number and adjust it for your own kitchen. It applies to the calorie guides, the recipes, the weight-loss guides and the seasonal guides.
The short version
- We convert a recipe to grams, multiply each ingredient by its per-100 g value, add them up and divide by the number of servings.
- Per-100 g values come from the USDA's FoodData Central wherever a record exists.
- Where no record exists, the page labels that part as an estimate and shows how it was built.
- Each page states what one serving is and gives a likely range, because home cooking varies.
Sources
| Source | What we take from it |
|---|---|
| USDA FoodData Central | Energy and macronutrients per 100 g for raw ingredients (rice, flour, potato, onion, oils, lentils) and for ready foods such as plain dosa and idli. Where a page relies on a specific record, it names the FDC ID and links to it. |
| RotiAI recipe data | The ingredient list, quantities and steps for each dish, which are the same ones used in the RotiAI app. Used for the amounts we convert to grams, and for sambar, chutney and other home preparations that have no USDA record. |
| Our own estimates | Spice blends, tempering oil, the share of frying oil that stays in the dish, and other small items without a published value. These are marked as estimates on the page. |
A worked example from a published record
The USDA lists plain dosa (FDC 2708347) at 210 kcal per 100 g, with portion weights of 35 g, 80 g and 155 g. A medium dosa is 80 g, so the arithmetic is 80 g × 2.10 kcal per gram = 168 kcal. A small dosa is 35 g × 2.10 = 74 kcal and a large one is 155 g × 2.10 = 326 kcal.
Idli works the same way: the USDA lists idli (FDC 2708346) at 128 kcal per 100 g, and one idli of 38 g is 38 g × 1.28 = 49 kcal. The pages that use these figures are plain dosa calories and calories in 1 idli.
How a home recipe is calculated
Dishes without a single USDA record, such as a bhindi sabzi with roti, are built up from the recipe. We convert cups, spoons and counts to grams (for example, a medium onion at about 110 g), add each ingredient's USDA value, then divide by the number of servings the recipe makes. Two assumptions move the result most, and each page states the ones it used:
- Oil. Not all frying oil ends up on the plate. Our calorie pages assume a share of it is eaten, and say which range they used.
- Size of the roti or dosa. We state the flour or batter weight behind each roti or dosa, because that, more than anything, decides the count.
Serving sizes
The serving is always written out on the page: for a recipe it is the stated fraction of the batch (for example, one quarter of the sabzi plus two rotis), and for a ready food it is the weighed portion (for example, one 80 g dosa). Compare it with your own plate before using the number; if your serving is bigger, scale the figure up.
Rounding and ranges
A figure multiplied straight out of a USDA record is shown to the whole kcal. A figure built from a home recipe is an estimate, so we round it, show it with "about" and give a likely range. The range reflects things we cannot know about your kitchen, such as how much oil you use and how thick your rotis are. Weighing your own food is the surest way to a closer figure.
Restaurant and coffee nutrition
The restaurant nutrition section is handled differently from our own dishes, because we do not calculate these numbers at all. For each chain we take the figures from the nutrition document the chain publishes, and we show them as printed.
- Source and date. Each page names the document, its date and the day RotiAI last checked it against the chain's official file. Third-party menu sites are never used as a source of values.
- Size and preparation stay separate. A small, a large, an iced and a hot version are different rows. We never scale one size to estimate another, and comparisons match sizes and preparations or say plainly that they differ.
- "Not published". If the document leaves a value blank, we show "Not published" and never a zero. A blank value cannot qualify a drink for a calorie or sugar limit.
- Limits are kept. A printed "<1 g" stays "<1 g". Ranges and approximations are not turned into exact numbers.
- Customized orders. Extra syrup, other milks, extra shots and toppings change a drink, but unless the chain publishes the amounts we do not calculate them. We show the standard drink and say that customizing changes it.
- Allergens. We repeat only what the document lists. A blank allergen cell means nothing is listed, not that the item is free of allergens, and we do not draw that conclusion.
- Sugar-free names. "Sugar-free" describes the flavoring. We show the published sugar figure and do not assume a sugar-free drink has no sugar, no calories or no caffeine.
What we do not claim
We give calories and macronutrients, and where it helps, plain comparisons between dishes. We do not state that a food treats, prevents or manages any health condition, and where a page discusses a condition such as diabetes, it says what we have not calculated and sends the reader to their own doctor or dietitian. Nothing here is medical or dietary advice.
Reviewers
These pages are written by the RotiAI team and have not been reviewed by a dietitian. See About RotiAI. If a qualified reviewer is ever added, the pages they reviewed will show their name, credential and the review date.
When numbers change
Each page shows when it was last updated, taken from its edit history. When we re-derive a figure for a dish, we change it everywhere it appears: the calorie guide, the matching recipe, roundups, weight-loss plans and the app.
Report an error
If a number looks wrong, email support@rotiai.app with the page address and the figure. We check it against the cited source and correct the page if it is wrong. More options are on the contact page.