Calories from Macros Calculator

Protein and carbohydrates provide 4 kcal per gram, fat 9 kcal and alcohol 7 kcal. Adding them up gives a food's total calories. This free calories from macros calculator solves for whichever value you leave blank and shows the formula and steps.

g
g
g
g
kcal
calculated
calculated
Type in any field to change it. Press × on a value to calculate that field instead.

How to use the calories from macros calculator

Enter grams of protein, carbohydrate, fat and alcohol. Total calories and the share from fat are calculated.

Calories from macros formula

kcal = 4P + 4C + 9F + 7A

Example

25 g protein, 40 g carbohydrate, 15 g fat:

  • kcal = 100 + 160 + 135 = 395 kcal
  • Calories from fat = 135 ÷ 395 = 34%

Energy per gram

Nutrient kcal per gram kJ per gram
Carbohydrate 4 17
Protein 4 17
Fat 9 37
Alcohol 7 29
Fibre about 2 8

These Atwater factors are the basis of most food labels.

Reading a nutrition label

If a snack has 10 g protein, 30 g carbohydrate and 8 g fat per serving:

  • Protein: 40 kcal
  • Carbohydrate: 120 kcal
  • Fat: 72 kcal
  • Total: 232 kcal, with 31% of calories from fat

Labels may differ slightly because of rounding and fibre.

Why labels and calculators differ

  • Labels often round to the nearest 5 or 10 kcal.
  • Fibre provides fewer calories than other carbohydrates.
  • Some countries list total carbohydrate including fibre; others list available carbohydrate.

Kilojoules

Australia, New Zealand and parts of Europe use kJ. Multiply kcal by 4.184 to convert: 232 kcal ≈ 971 kJ.

Frequently asked questions

How many calories are in a gram of each macronutrient?

Protein 4 kcal, carbohydrate 4 kcal, fat 9 kcal and alcohol 7 kcal (Atwater factors).

Why doesn't my label add up exactly?

Labels round values, and fibre provides fewer calories than other carbohydrates.

How do I convert kcal to kJ?

Multiply by 4.184.

How many calories are in a gram of fat?

9 kcal.

How many calories in 30 g of protein?

120 kcal.

Embed this calculator

Free to use on your website or blog. Copy this code: