How to use this calculator
- Enter or choose daily calories.
- Enter or choose carbohydrate.
- Enter or choose protein.
- Enter or choose fat.
- Enter or choose meals per day.
- The daily macros updates as you type. Use Copy result or Share to keep it.
Method
Carbs (g) = kcal × carb% ÷ 4; Protein (g) = kcal × protein% ÷ 4; Fat (g) = kcal × fat% ÷ 9
- kcal
- daily calorie target
- 4, 4, 9
- Atwater energy factors in kcal per gram
Worked example
- Carbohydrate: 2,000 × 50% = 1,000 kcal ÷ 4 = 250 g.
- Protein: 2,000 × 20% = 400 kcal ÷ 4 = 100 g.
- Fat: 2,000 × 30% = 600 kcal ÷ 9 = 66.7 g, shown as 67 g.
- Over 3 meals: about 83 g carbs, 33 g protein and 22 g fat each.
On 2,000 kcal a day with a 50/20/30 split you would eat about 250 g carbohydrate, 100 g protein and 67 g fat.
What the result means
The adult Acceptable Macronutrient Distribution Ranges (AMDR) are 45–65% of energy from carbohydrate, 10–35% from protein and 20–35% from fat. A split inside those ranges is consistent with the reference intakes; the calculator flags any share outside them. Food quality matters as much as the numbers.
Assumptions and limits
- Atwater general factors: 4 kcal/g carbohydrate, 4 kcal/g protein, 9 kcal/g fat.
- Alcohol and fibre are not counted separately.
- AMDR values are the IOM 2002/2005 adult ranges.
- Food labels round values, so totals from real meals will differ by a few grams.
- Not a medical diet: people with diabetes, kidney disease or other conditions need individual advice.
Questions
What split should I choose?
Any split inside the AMDR is consistent with the reference intakes for healthy adults. Within that, the best split is one that suits your training, preferences and any medical advice, and that you can keep to.
Why is fat 9 kcal per gram?
Fat stores more than twice the energy of carbohydrate or protein per gram, so the same share of calories gives fewer grams of fat.
Sources
Please note: This is a general screening estimate for adults, not medical advice or a diagnosis. Talk to a qualified health professional about your health.