Skip to calculator

Macro calculators

Macro Calculator for Muscle Gain: Bulk Protein, Carb, and Fat Splits

Muscle gain math is the opposite of fat loss: high carbs fuel the training, protein supports growth, fat fills the rest.

Last reviewed January 15, 2025 · 5 min read

Protein

1.6–2.2 g/kg

Fat

0.8–1.2 g/kg

Carbs

4–6 g/kg

Muscle gain macros differ from fat-loss macros in two ways. First, protein needs are slightly lower than during a cut — 1.6–2.2 g/kg rather than 1.8–2.4 g/kg — because there's no muscle to defend; you're building, not preserving. Second, carbohydrates take center stage because they fuel the high-volume training that drives muscle growth.

This calculator structures a lean-bulk macro split around 200–400 kcal above maintenance, with macros that support training output, recovery, and muscle protein synthesis without padding fat gain.

Why carbs matter during a bulk

Carbohydrates fuel high-intensity training. Skeletal muscle relies on glycogen — stored carbohydrate — for repetitions in the 6–20 rep range that drive hypertrophy. Low-carb lifters typically perform 2–4 fewer reps per set than high-carb lifters at the same load, costing volume over weeks.

Carbs also raise insulin around training, which suppresses muscle protein breakdown and supports growth. A bulk on under 3 g/kg carbs is usually possible but suboptimal — most lifters do better with 4–6 g/kg during gaining phases.

Macro split frameworks for muscle gain

Common splits for natural lifters:

Style Protein % Fat % Carb % Best for
Standard bulk 20–25% 20–25% 50–55% Most natural lifters.
High-protein bulk 25–30% 20–25% 45–50% Lifters prioritizing satiety.
Performance-focused 20% 20% 60% Strength athletes, high-volume lifters.
Lower-carb bulk 25% 35% 40% Higher-fat eaters; rare for muscle gain.

How to set bulk macros — step by step

A simple framework:

Step 1 — Set protein

Protein (g) = body weight (kg) × 1.8. For an 80 kg lifter: 144 g of protein. Protein × 4 = 576 kcal.

Step 2 — Set fat

Fat (g) = body weight (kg) × 1.0. For an 80 kg lifter: 80 g fat. Fat × 9 = 720 kcal.

Step 3 — Fill carbs

Carbs (g) = (total calories − protein calories − fat calories) / 4. For a 2,900 kcal bulk: (2,900 − 576 − 720) / 4 = 401 g of carbs.

Timing macros around training

Total daily intake matters most, but timing helps marginally — especially around workouts:

  • Pre-workout (1–2 hours before): 0.5–1 g/kg carbs + 30–40 g protein for performance.
  • Post-workout (within 2 hours): 30–50 g protein + 50–100 g carbs to replenish glycogen.
  • Pre-sleep: 30–40 g slower-digesting protein (e.g., casein) supports overnight synthesis.
  • Rest days: Same protein, drop carbs by 50–100 g, keep fat steady.

Muscle-gain macro examples

Real macro splits for natural lifters in a 250 kcal surplus.

Male lifter · 75 kg · 2,800 kcal bulk target
Protein (2 g/kg)
150 g · 600 kcal
Fat (1.0 g/kg)
75 g · 675 kcal
Carbs (remainder)
381 g · 1,524 kcal
Split
21% / 24% / 54%

Performance-friendly split. Higher carbs fuel 4–5 weekly sessions.

Female lifter · 60 kg · 2,300 kcal bulk target
Protein (1.9 g/kg)
114 g · 456 kcal
Fat (1.0 g/kg)
60 g · 540 kcal
Carbs (remainder)
326 g · 1,304 kcal
Split
20% / 23% / 57%

Female lifters thrive on carbs — don't undereat them during gaining phases.

Strength athlete · 90 kg · 3,400 kcal bulk target
Protein (1.8 g/kg)
162 g · 648 kcal
Fat (1.0 g/kg)
90 g · 810 kcal
Carbs (remainder)
486 g · 1,944 kcal
Split
19% / 24% / 57%

Strength sports benefit from heavy carb fueling around training sessions.

Common mistakes and misconceptions

  • Going too high on protein. Past 2.2 g/kg, extra protein doesn't build more muscle — it just replaces carbs you needed for training fuel.
  • Under-eating fat. Fat below 0.7 g/kg compromises testosterone and hormone production over weeks.
  • Skipping carbs to 'stay lean'. Carbs at maintenance don't make you fat — surplus calories do. Cut carbs and you cut performance.
  • Treating bulk as a license to eat junk. Food quality affects digestion, sleep, and training quality — all of which affect muscle gain.

Tips for hitting bulk macros

  • Eat carb-heavy meals around training — pre and post-workout are the easiest places to put 100+ g carbs.
  • Use calorie-dense whole foods (rice, oats, pasta, nuts, olive oil) when 3,500+ kcal/day is hard.
  • Keep protein simple — 40 g at four meals plus a 20 g snack covers most lifters.
  • Weigh in 2–3x per week and watch the 4-week trend, not daily numbers.

People also ask

What's the best macro split for building muscle?
Roughly 20–25% protein, 20–25% fat, and 50–55% carbohydrates works for most natural lifters. The numbers shift with body weight and total intake, but high carbs fueling training plus 1.6–2.2 g/kg protein is the proven framework.
How much protein for muscle gain?
1.6–2.2 g per kg of body weight. For most natural lifters, 1.8 g/kg is plenty. Higher amounts (2.2 g/kg) make sense in a slight surplus or during transitions between phases, but offer diminishing returns past that point.
Can I bulk on a low-carb diet?
Possible but suboptimal. Low-carb lifters typically perform fewer reps and gain muscle slightly slower than high-carb lifters at the same protein intake. If carb intolerance forces low-carb, prioritize protein at 2.0–2.2 g/kg and accept slower gains.
Should I eat differently on training vs rest days?
Modestly. Most lifters do well dropping 50–100 g carbs on rest days and keeping protein and fat constant. Some prefer to eat the same daily total — both approaches work if the weekly average is right.
How fast should I gain weight during a bulk?
0.2–0.5% of body weight per week. For a 75 kg lifter that's 150–375 g/week. Faster than that and the muscle-to-fat ratio of new gains gets worse fast.

Related calculators & guides

Set your bulk macros

The main calculator outputs muscle-gain calories alongside a macro split sized to your body weight — choose the surplus row and the numbers populate.

Continue exploring

People Also Search For

Free calculators readers of this page also use — built by the same team behind this tool.

All tools are free, browser-based, and built by Varyense.