Skip to content
All posts

How to Count Calories in Homemade Food and Recipes

13 min read

You've cooked a big pot of chilli, enough for four dinners this week, and now you want to log it. Search a calorie app for "homemade chilli" and you get somebody else's recipe, made with somebody else's mince and somebody else's glug of oil.

The only numbers that fit your pot are the ones you work out from what went into it. Knowing how to count calories in homemade food comes down to one sum and, ideally, a kitchen scale.

To count calories in homemade food, weigh each ingredient raw, look up its calories per 100 g in a food database, include every spoon of oil, and add it all up. Then divide the total by the number of equal servings, or weigh the cooked dish and work out calories per 100 g to log any portion.

This post covers the method, a worked chilli with real USDA numbers, raw versus cooked weights and cooking fat, and how to save and log a homemade recipe in VitalityApp.

A pot of beef and bean chilli on a kitchen scale on a wooden counter, beside drained kidney beans, half a red onion, an opened can of tomatoes and a bottle of olive oil, while a hand holds a phone showing a list of ingredients.

How to count calories in homemade food, step by step

A EuroFIR report on recipe calculation sets out the British method behind McCance and Widdowson's food tables. It adds up the nutrients in the raw ingredients, weighs the cooked dish and gives the result per 100 g.

At home, it comes down to five steps, which the diagram sums up in four. They work for homemade meals from any cuisine.

A hand-drawn four-step diagram: raw mince in a bowl on a kitchen scale beside an onion, a can of tomatoes, kidney beans and oil (weigh everything raw), a notepad and pencil with a plus sign (add it all up), the cooked pot of chilli on the scale (weigh the cooked pot), and one bowl of chilli on the scale beside a phone (log your portion).

Step 1: Weigh every ingredient raw

Put a bowl on a kitchen scale, zero it, and weigh each ingredient before it goes in. Weigh meat raw, rice, pasta and lentils dry, and canned beans drained if you drain them. Count everything with calories, including butter, cream, cheese and sugar. Water adds weight but no calories, and a pinch of spices is small enough to skip. If your recipe uses ounces, 1 oz is about 28 g.

Step 2: Look up each ingredient

These three databases are free:

Database What's in it Watch out for
USDA FoodData Central (US) Raw and cooked foods, in kcal Carbs include fibre
CoFID, McCance and Widdowson's (UK) UK foods, including homemade dishes, as a free Excel file Carbs exclude fibre
IFCT 2017, ICMR-NIN (India) 528 key Indian foods, raw only (except eggs) Energy in kJ only

To turn IFCT's kilojoules into kcal, divide by 4.18, the factor IFCT itself uses: masoor dal's 1,349 kJ per 100 g is about 323 kcal. For anything packaged, use the per 100 g figure on its label.

Pick the entry that matches the form you weighed (raw or cooked, drained or with its liquid). Stick to one database per recipe, because they don't always agree: olive oil is 884 kcal per 100 g in USDA and 899 in CoFID.

Step 3: Add the cooking fat

Oil is poured, not weighed, so it's easy to miss. USDA puts a tablespoon of olive oil at 13.5 g, about 119 kcal, and a teaspoon at 4.5 g, about 40 kcal. Weigh the bottle before and after to see exactly how much you poured, and count all of it. If oil is left in the pan after frying, pour it into a bowl on the scale and subtract that.

Step 4: Add it all up

For each ingredient, multiply the grams by the kcal per 100 g and divide by 100. Add the results, and do the same for protein, carbs and fat if you track them.

Step 5: Calculate calories per serving, or per 100 g

  • Divide by servings if you split the dish into equal portions.
  • Weigh the cooked dish if people help themselves. Weigh the empty pot first, weigh it full, and subtract. Then calories per 100 g = total calories ÷ cooked weight in grams × 100. Weigh your portion: its calories are its grams × calories per 100 g ÷ 100.

The second way allows for water gained or lost in cooking, whatever size your bowl is.

Eating it over several days? Write the calories per 100 g on the container. To serve, put the container on the scale, zero it and take out your portion: the minus figure is what you took.

Layered dishes, such as a pasta bake or lasagne, don't mix evenly. Cut them into equal pieces and divide the total by the number of pieces.

Bone-in meat, as in many chicken curries: weigh the meat off the bone if you can, or weigh the bones afterwards and take their weight off the raw weight.

Worked examples: calculate calories in a recipe

Chilli for four

Here are the ingredients with USDA SR Legacy values (FDC numbers in brackets):

Ingredient (USDA FDC entry) Raw weight kcal
Beef mince (ground beef), 90% lean (10% fat), raw (174030) 500 g (1.1 lb) 880
Olive oil (171413) 13.5 g (1 tbsp) 119
Onion, raw (170000) 150 g (1 large) 60
Red kidney beans, canned, drained (174285) 240 g (8.5 oz) 298
Tomatoes, canned in juice (170051) 400 g (14 oz) 64
Total 1,303.5 g (2.9 lb) 1,421

The pot also holds 124 g protein, 79.5 g carbs (USDA counts fibre as carbs) and 67.2 g fat. Drained weights vary by can, so weigh your beans.

Divide by four: each serving is 355 kcal, with 31.0 g protein, 19.9 g carbs and 16.8 g fat.

Or weigh the pot. Say the cooked chilli weighs 1,150 g (2.5 lb) without the pot (an example figure; yours will differ):

1,421 kcal ÷ 1,150 g × 100 = 124 kcal per 100 g

A 300 g (10.6 oz) bowl is then 371 kcal. Weighing also catches uneven portions: if "a quarter" of the pot is really a third, your bowl is 474 kcal, not 355.

As a sanity check, CoFID lists homemade chilli con carne at 120 kcal per 100 g.

One-portion recipes: overnight oats

With nothing to divide or cook, you just weigh what goes in the jar:

  • 40 g (about ½ cup) dry oats
  • 122 g (½ cup) 2% milk
  • 100 g (3.5 oz) plain non-fat Greek yoghurt
  • 10 g chia seeds
  • Half a medium banana (59 g)

With USDA values, the jar comes to 373 kcal, with 21.8 g protein, 54.2 g carbs and 8.7 g fat.

Raw vs cooked weight: why calories per 100 g change

Cooking moves water in and out of food. Rice, pasta and lentils soak it up, so they get heavier and have fewer calories per 100 g. Meat loses water, so it gets lighter and has more. The calories in the pan stay almost the same. The main things that leave are water, fat you drain off and alcohol, plus a little starch in pasta water you pour away.

Food (USDA) Raw, per 100 g Cooked, per 100 g 100 g raw becomes
White long-grain rice 365 kcal 130 kcal about 280 g
Pasta 371 kcal 158 kcal about 235 g
Lentils 352 kcal 116 kcal about 300 g
Chicken breast, roasted 120 kcal 165 kcal about 72 g

A hand-drawn diagram: 100 g of dry rice in a small bowl on a kitchen scale, an arrow marked plus water, and about 280 g of cooked rice in a much fuller bowl on an identical scale, with a banner saying both have the same 365 kcal.

These are averages. CoFID's figures imply that boiled long-grain rice weighs about 2.7 times its dry weight, and basmati about 3 times. USDA's roasted chicken breasts kept 61 to 82% of their raw weight. So weigh food and look it up in the same state: weigh pasta dry, use a dry entry; weigh it cooked, use a cooked one.

In a recipe, enter rice, pasta and lentils at their dry weight and ignore the water they absorb, as EuroFIR's guidance does. Weighing the finished dish takes care of it.

Meat goes the other way: weigh chicken cooked but log it against a raw entry, and you under-count by about a quarter. For a chicken curry, weigh the chicken raw and let the weigh-the-pot step deal with the sauce.

Soups, stews and dal: weigh at the end

A red lentil soup for four:

  • 200 g (about 1 cup) dry red lentils
  • 1 tbsp olive oil
  • 1 medium onion (110 g)
  • 1 medium carrot (61 g)
  • A 400 g (14 oz) can of tomatoes
  • 1 litre (about 4 cups) of water

With USDA values it comes to 968 kcal: 242 kcal a bowl if you divide it by four.

If the finished soup weighs 1,600 g (3.5 lb), it's 60.5 kcal per 100 g, so a 350 g (12 oz) bowl is 212 kcal. Simmer it down to 1,500 g (3.3 lb) and it's 64.5 kcal per 100 g: the same 968 kcal, just more concentrated. Food Standards Australia New Zealand's Nutrition Panel Calculator treats weight lost in cooking the same way. So weigh soups, stews and dal after any simmering. CoFID's homemade mixed dahl, at 60 kcal per 100 g, is close.

Oil, drained fat and fried food

Fried food soaks up fat. Bognár's 1998 study compared frying with other cooking methods. Fried vegetables, potatoes and breaded meat, poultry and fish took up 2 to 14 g of fat per 100 g of raw food, up to about 125 kcal. Deep-fried meat, poultry and fish usually took up less than pan-fried.

Don't count the oil twice. Database entries for fried food already include the oil it absorbed. USDA's chicken breast with skin, fried in batter, is 260 kcal and 13.2 g fat per 100 g, against 197 kcal and 7.8 g roasted. If you log a fried entry, don't add the frying oil as well.

Draining removes some fat. In USDA's cooking yield study, browned mince drained in a colander lost 1.4 g of fat per 100 g of raw meat when it was under 12% fat. Mince over 22% fat lost 12.6 g. So 500 g (1.1 lb) of 90% lean mince loses only about 7 g of fat (about 63 kcal) when you drain it. The same weight of mince over 22% fat loses about 63 g (about 570 kcal), so draining matters far more for fatty mince.

In the chilli above, the fat stays in the pot, so keep the raw value.

Quicker ways to log a homemade dish

Measure the fat, even if nothing else. At 884 kcal per 100 g, oil is the most calorie-dense thing in most pans.

Use level spoons and the same cup each time. Cup and spoon weights for common foods are in the reference table in how to track calories without a food scale.

Borrow a homemade entry, like CoFID's chilli or dahl above, and add the oil separately if you were generous with it.

Split the pot before you eat. Portion it into equal containers as soon as it's cooked, and dividing by servings is accurate without weighing each bowl.

Describe it in VitalityApp. Type the dish with its portion and fat, such as "1 katori (small bowl) homemade dal with 1 tsp ghee". That's an AI estimate of a typical recipe, not a calculation from yours, so check the grams before you add it.

Common mistakes

  1. Matching the wrong form. 100 g of dry rice logged as cooked rice is 130 kcal instead of 365. Drained kidney beans logged as "solids and liquids" (81 kcal per 100 g in USDA, against 124 drained) lose about a third of their calories.
  2. Taking calories off for "cooking losses". Unless fat was drained or alcohol cooked off, the total stays about the same however much the dish reduces.
  3. Weighing the pot with the food. Weigh the empty pot first and write its weight on a strip of tape stuck to it, so you only ever weigh it once.
  4. Forgetting what goes on at the end. Cream, grated cheese or butter added at the table isn't in the pot. Add it to your portion.

How to save a homemade recipe in VitalityApp

VitalityApp's food search is an AI lookup (with a web search where needed), not a lookup in USDA, CoFID or IFCT. Its figures, and its total for the chilli, can differ a little from this post's. You can't type nutrition values in: if an ingredient looks off, search again with more detail (raw or dry, the lean percentage, the brand).

Build it once

  1. On the Meals tab, tap + next to a meal, then Can't find your food? Create a custom meal.
  2. Search for each ingredient with its weight, adding "raw" or "dry" if that's how you weighed it, such as "125 g raw 90% lean beef mince". Otherwise the AI assumes the form you'd usually eat, which for meat, pasta, rice and dal is normally cooked. Results show kcal / 100 g: tap + on the one that matches how you weighed it.
  3. For packaged ingredients, use Scan label or Scan barcode (barcode on iPhone and Android only). Scans share one allowance: 2 a month on the free plan, up to 50 a day on Plus.
  4. Check each Amount (g): a scanned item starts at the pack's serving (or 100 g), so change it to what you used. The Total nutrition box adds up kcal, protein, carbs, fat and fibre.
  5. Tap Next, name the meal and tap Save meal. Saved meals are free.

Save one portion, not the whole pot

Saved meals have no servings or cooked-weight setting, so save one portion: divide each raw ingredient by the number of servings. For the chilli, that's 125 g of beef, 3.4 g of oil, 37.5 g of onion, 60 g of beans and 100 g of tomatoes, about 355 kcal with USDA's values.

Log it again

Next time, tap + next to the meal and pick the recipe from My Saved Meals (or search under View all). Tap Add to Lunch (or whichever meal it is), and it's logged as one entry named after the recipe.

For a different-sized bowl, change the amounts before you add it. Each ingredient has quick amounts in grams, from half to three times what you saved, or you can type each ingredient's grams. To match a weighed bowl, divide its weight by the pot's and multiply by the servings. A 430 g (15 oz) bowl from a 1,150 g pot for four is 1.5 servings. Tap the one-and-a-half amounts: 188 g beef, 5.1 g oil, 56 g onion, 90 g beans and 150 g tomatoes.

There's no box for the bowl's weight. A logged saved meal weighs the sum of its raw ingredients (about 326 g for one chilli portion), so don't edit the logged entry to your cooked bowl's weight. To change the recipe itself, use Edit under View all.

Other apps handle recipes differently. Cronometer lets you set a cooked weight on a recipe, which suits the weigh-the-pot method. MyFitnessPal can import a recipe from a web link on its free plan (in the apps, only with the device set to English), and Cronometer can on its paid Gold plan. MyFitnessPal's help centre also suggests putting the serving size in the recipe's name.

When precision matters

If you're managing diabetes, kidney disease or another condition through diet, are pregnant, or have been given specific targets, a registered dietitian can help you get the numbers right. If weighing every ingredient makes you anxious, or you have a history of eating disorders, talk to your doctor first. VitalityApp's figures are general wellness information, not medical advice: see the medical disclaimer.

Frequently asked questions

Do calories change when you cook food? The total barely changes. Cooking adds or removes water, which changes calories per 100 g; you only lose a meaningful amount when fat drains away or alcohol cooks off.

Should I weigh food raw or cooked? Either, as long as the database entry matches the state you weighed. Raw suits building a recipe; cooked suits serving yourself from a pot once you know its calories per 100 g.

How do I calculate calories per serving? Add up every ingredient's calories and divide by the number of equal servings. If portions vary, work out calories per 100 g (total ÷ cooked weight × 100) and weigh your portion.

How many calories are in homemade chilli? It depends on the mince and the oil. The chilli above is 355 kcal a serving, or 124 kcal per 100 g, and CoFID lists homemade chilli con carne at 120 kcal per 100 g.

How do I count calories in homemade dal or curry? The same way: weigh the dry dal or raw meat, the oil or ghee and everything else, and weigh the pot when it's done. IFCT 2017 gives energy in kJ, so divide by 4.18 for kcal. As a guide, CoFID's homemade lentil dahls range from 60 to 173 kcal per 100 g, depending on the recipe.

Is there a recipe calorie calculator? Many tracking apps have a recipe builder that adds up the ingredients for you, Cronometer and MyFitnessPal among them. In VitalityApp you build a custom meal and save one portion, since it doesn't divide by servings or a cooked weight. Either way, the result is only as good as the weights you enter and the app's nutrition values (AI estimates in VitalityApp).

Keep reading

Sources

All checked on 14 October 2026.