Macro split calculator
Turn a calorie target and percentage split into grams of protein, carbohydrate and fat.
A clear answer. Here’s how.
Each macronutrient’s calories are its percentage of the energy target. Grams follow from the Atwater general energy factors: 4 kcal per gram of protein and of carbohydrate and 9 kcal per gram of fat. The three percentages must add up to 100. Per-meal figures divide the daily grams equally. Alcohol, fibre and the finer Atwater specific factors are not modelled, so food labels can differ slightly.
How this is checked
2 reference checks passed These 2 cases were run when this page was built, on 20 October 2026, and all reproduce within the stated tolerance. The same cases are part of the automated tests that run on every change to Toolmoz. Engine version 1.
See the checks and where each expected answer comes from
Case 1
- Inputs
- Daily energy target (kcal) 2000Protein (% of calories) 30Carbohydrate (% of calories) 40Fat (% of calories) 30Meals per day 3
- Expected, and what Toolmoz gave
- Protein (g) expected 150, Toolmoz 150Carbohydrate (g) expected 200, Toolmoz 200Fat (g) expected 66.6667, Toolmoz 66.66666666666667Protein per meal (g) expected 50, Toolmoz 50
- Where the expected answer comes from
- 2000 × 0.30 ÷ 4 = 150 g, 2000 × 0.40 ÷ 4 = 200 g, 2000 × 0.30 ÷ 9 = 66.667 g (hand calculation)
- Allowed difference
- ±0.001
Case 2
- Inputs
- Daily energy target (kcal) 2500Protein (% of calories) 25Carbohydrate (% of calories) 50Fat (% of calories) 25Meals per day 5
- Expected, and what Toolmoz gave
- Protein (g) expected 156.25, Toolmoz 156.25Carbohydrate (g) expected 312.5, Toolmoz 312.5Fat (g) expected 69.4444, Toolmoz 69.44444444444444Carbohydrate per meal (g) expected 62.5, Toolmoz 62.5
- Where the expected answer comes from
- 2500 × 0.25 ÷ 4 = 156.25, 2500 × 0.50 ÷ 4 = 312.5, 2500 × 0.25 ÷ 9 = 69.444 and 312.5 ÷ 5 = 62.5 (hand calculation)
- Allowed difference
- ±0.001
What this shows: the engine reproduces independently worked values for these cases. It does not prove every possible input is right. To test an answer you were given, see how to check a number; to see what is and is not checked across Toolmoz, see the accuracy ledger.
See a worked example
Worked example
A fixed demonstration, separate from the values you enter above.
- Daily energy target (kcal)
- 2000
- Protein (% of calories)
- 30
- Carbohydrate (% of calories)
- 40
- Fat (% of calories)
- 30
- Meals per day
- 3
Example result
- Protein (g)
- 150.0
- Carbohydrate (g)
- 200.0
- Fat (g)
- 66.7
- Protein calories (kcal)
- 600
- Carbohydrate calories (kcal)
- 800
- Fat calories (kcal)
- 600
- Protein per meal (g)
- 50.0
- Carbohydrate per meal (g)
- 66.7
- Fat per meal (g)
- 22.2
Uses the Atwater general factors: 4 kcal per gram of protein and carbohydrate, 9 kcal per gram of fat. Alcohol (7 kcal per gram) and fibre adjustments are not included, so food labels can differ slightly. Not dietary advice.