How Slate counts calories
In short: every number on Slate starts from a home recipe in raw grams, usually a textbook recipe. Each ingredient's calories, protein, carbs and fat come from the Indian Food Composition Tables (IFCT 2017), with energy converted at 4.184 kJ per calorie and oil and ghee at IFCT's fat factor of 37 kJ per gram; ingredients IFCT does not list use USDA FoodData Central or a maker's label. All the cooking oil is counted as eaten. The pot is divided into the portions people eat: a cooked weight gives calories per 100 g, a katori is its millilitres times the dish's density, and a dish with no cooked weight is split by fraction. Restaurant and street versions are shown as a range with its basis stated. Every dish is compared with analysed values; a source more than 15% away forces a range. Calories are rounded to the nearest 5 and grams to whole numbers. Slate runs no lab analysis of its own: these are estimates, not medical advice.
Where does each dish's recipe come from?
Most dishes start from a recipe in one of two standard Indian cookery textbooks, The Art & Science of Cooking or Basic Food Preparation, as recorded in the Indian Nutrient Databank (INDB), a 2024 academic project that converted those recipes into grams. Where neither textbook has the dish, Slate uses INDB's open recipe set (thepla, pav bhaji, besan chilla), a published recipe from a named cook (soan papdi, momos, motichoor ladoo), or a plate assembled from stated amounts (pani puri, bhel puri). Each dish page names its recipe, prints every ingredient in grams and says which parts are assumptions. Spices under a gram each are left out; together they add under 3 calories to a portion.
Where do the ingredient values come from?
- Energy, protein, carbs and fat per 100 g of each ingredient are IFCT 2017's own values, with energy converted from kilojoules at 4.184 kJ per calorie.
- Oil and ghee carry no energy value in the IFCT copy Slate uses, so they take IFCT's fat factor of 37 kJ per gram, about 8.84 calories per gram: 884 calories per 100 g of oil and 884 per 100 g of ghee. Every oil gets the same factor, so the type of oil never changes a number.
- Ingredients IFCT 2017 does not list come from USDA FoodData Central (curd, butter, cream, kabuli chana, sugar) or a maker's label (toned milk, instant noodles). Besan is valued as IFCT's Bengal gram dal. The ingredient table on each dish page gives the source code for every row.
Which table does a food use?
The dish pages on this site are Indian food, so they use IFCT 2017 as described above. In the app, Slate counts food from anywhere, and each food takes its values from the table that covers it:
- USDA FoodData Central: most foods, and anything another table doesn't list.
- CoFID: British foods and UK recipes, from McCance and Widdowson's tables.
- IFCT 2017: Indian ingredients and home recipes.
- A maker's label: packaged food, read from the barcode.
How is cooking oil counted?
Oil on a tawa or in a tadka is counted in full: a paratha or a sabzi takes up what goes into the pan. Deep-frying is different. INDB counts the whole pan of frying oil as part of the recipe, which gives numbers several times too high, so Slate sets the oil taken up from an analysed finished food and states it as an assumption on the page: USDA's analysed puri (24.9% fat) for puris and jalebi, lab-fried samosas (18.3%) for samosas and kachoris, and the fat Gupta et al. measured in 2016 in street pakoras, bhaturas and sev from Delhi vendors for those. A fried food with no analysis of its own borrows a measured uptake, and the page says which.
How does a recipe become a portion?
Adding up the ingredients gives the whole pot. Where a cooked weight is known, the pot is divided by it to give calories per 100 g. For dals and gravies the cooked weight is the ingredients added together, INDB's convention, so those are thin; for rice it is a measured yield, 2.98 times the raw weight; for breads and fried foods it is worked out from water content.
A katori is its volume in millilitres times the dish's density: 1 g per ml for dal, sabzi and curd dishes (a stated assumption), 0.67 for cooked rice and 0.875 for khichdi (from USDA cup weights). Dish pages show 150, 200 and 250 ml katoris, and the calculator takes 200 ml unless you say small or big. Where no reliable cooked weight exists, a portion is a fraction of the recipe instead: one of 3 parathas, one of 6 samosas, half the dosa batter.
Composite plates such as rajma chawal and idli sambar have no recipe of their own. Each row adds the parent dishes' unrounded values and rounds once, so a plate always equals its parts, and the meal calculator uses the same unrounded numbers for every line you type.
What does the outside range mean?
Restaurant, dhaba and street versions are shown as a range, never a single number. The range scales the home portion's size and its cooking fat, and adds anything a restaurant usually puts on top: butter on a paratha, cream in a dal, ghee on rice. Every page states the basis: a lab measurement of the street food where one exists (Gupta et al. weighed and analysed samosas, bhaturas, kachoris and ladoos from Delhi vendors), a restaurant portion from USDA's dietary survey (a 70 g paratha, a 177 g naan, a 36 g puri), the proportions of a published restaurant recipe, or otherwise a stated assumption. Reused frying oil adds fat too: Jain et al. measured a rise of 1.22 times between the first and the 32nd frying in 2024, which sets the top of the fried-food ranges.
How are the numbers checked?
Each dish is compared with any analysed value that exists for it: ICMR-NIN's Dietary Guidelines (Annexure 8), INDB's own figures, USDA's FNDDS survey foods, and packed food labels for sweets and snacks. The rule is fixed: if a credible source is more than 15% from Slate's number, the page must show a range and explain the difference, which is usually thickness, portion size or oil. If every source is within 15%, the single number stands. An INDB figure for the same textbook recipe confirms the arithmetic, not the recipe, and the page says so. Where no analysed value exists at all (aloo paratha, kadhi, jalebi, pav bhaji), the page says that too, rather than borrowing a number from a consumer database that does not say how big its serving is.
How are the numbers rounded?
Calories are rounded to the nearest 5, and protein, carbs and fat to the nearest gram, once, at the end. Sums are rounded after adding, so two rotis can differ from twice one roti by 5 calories, and a composite plate can differ by 5 from adding its parts' rounded rows.
How is an aloo paratha worked out, end to end?
The recipe is The Art & Science of Cooking's potato paratha: 3 parathas from 80 g of atta, 80 g of boiled potato, 25 g of onion, green chilli and coriander, with 27.2 g of oil (2 tablespoons) for the tawa, all of it counted as eaten. Each ingredient's calories are its grams times IFCT 2017's value per 100 g.
| Ingredient | Grams | Calories per 100 g | Calories in the recipe |
|---|---|---|---|
| Atta | 80 g | 320 | 256 |
| Potato, boiled and mashed | 80 g | 70 | 56 |
| Onion | 25 g | 48 | 12 |
| Green chilli | 3.3 g | 42 | 1 |
| Coriander leaves | 2 g | 31 | 1 |
| Oil, for the tawa | 27.2 g | 884 | 241 |
| Water | 60 g | 0 | 0 |
The whole recipe comes to 567 calories, shown as 565 for 3 parathas once rounded to the nearest 5. No reliable cooked weight exists for a stuffed paratha, so one paratha is a third of the recipe: 188.9 calories unrounded, shown as 190. A teaspoon of butter on top is 5 g at 717 calories per 100 g, which takes the paratha to 225; 2 parathas with a 100 g katori of curd come to 440.
No lab has analysed an aloo paratha, and INDB's figure comes from this same recipe, so there is no independent cross-check and the page says so. The dhaba range, 225 to 390 calories, takes the same paratha at 1 to 1.4 times the size (USDA's paratha weighs 70 g against about 49 g of dough here), 1 to 1.5 times the oil, and 1 to 2 teaspoons of butter on top, each a stated assumption. The aloo paratha page shows the same table and the sources.
What does Slate not do?
- Slate runs no laboratory analysis of its own. Every number is an estimate from published composition tables and recipes. A number estimated the same way every time still tells you the truth about your week.
- Slate is not medical advice. Labels can be 20% out and restaurant oil can swing a dish by 40%; a doctor or dietitian is the right person for a diet.
- In the app, you tell Slate the size of your bowl and bread and how long your oil lasts, and the numbers scale to your kitchen. The app's AI maps what you type to foods in its catalogue and never invents a calorie number.
Sources
- ICMR-NIN, Indian Food Composition Tables 2017. Energy, protein, carbohydrate and fat per 100 g of every ingredient, and the 37 kJ per g fat factor
- Vijayakumar et al., Indian Nutrient Databank (INDB), Current Developments in Nutrition, 2024. The textbook recipes in grams, their serving counts and household measures
- Indian Nutrient Databank, recipe and unit files (GitHub). recipes.xlsx, recipes_servingsize.xlsx and the units table
- USDA FoodData Central. Ingredients IFCT 2017 does not list, FNDDS survey foods and portion weights, and cup weights for katori densities
- Public Health England, McCance and Widdowson's Composition of Foods Integrated Dataset (CoFID). Values for British foods and UK recipes in the app
- ICMR-NIN, Dietary Guidelines for Indians: A Manual (2011). Annexure 8: the calorie values of common Indian preparations used as cross-checks
- Gupta et al., Unhealthy fat in street and snack foods, Journal of Nutrition Education and Behavior, 2016. Weight and fat of samosas, bhaturas, kachoris, pakoras, ladoos, bhujia and mathri bought from Delhi vendors