Skip to main content

Guide · Targets · 8 min read

How to calculate your macros for bulking, cutting, or recomp

Estimate your maintenance calories, move them up or down for your goal, set protein and fat by bodyweight, give the rest to carbs, then correct every two weeks from your weight trend.

Six steps, one running example, and a calculator at each step so you can follow along with your own numbers. No prior knowledge needed. Every term is explained the first time it appears.

The short version

6 steps · 8 min
  • Maintenance calories ≈ resting metabolism (Mifflin-St Jeor) × an activity factor.
  • Bulk: eat 10 to 20% above maintenance. Cut: 10 to 25% below. Recomp: stay at maintenance.
  • Protein first: 1.6 to 2.2 g per kg of bodyweight (2.2 to 2.6 on a cut). Fat second: 0.6 to 1.0 g/kg. Carbs get whatever calories are left.
  • Every two weeks, compare weekly-average weights and adjust by 100 to 200 kcal. Never react to a single day.
Start with step 1

Step 1 of 6

Find your maintenance calories

Maintenance is the number of calories that keeps your weight steady. Every other number in this guide is measured from it.

Your body burns calories all day: resting, digesting, moving, and training. The total is called , or maintenance. You can't measure it at home, but you can estimate it closely enough to start, then correct it from real results in step 6.

The estimate has two parts. First, work out your resting metabolism (), which is what you'd burn lying still all day. Then multiply it by an to cover everything else.

Part 1: Resting metabolism

The most widely used formula is . It needs your weight in kilograms, height in centimetres, and age in years:

Mifflin-St Jeor

MenBMR = 10 × weight + 6.25 × height − 5 × age + 5
WomenBMR = 10 × weight + 6.25 × height − 5 × age − 161

In words: ten times your weight, plus 6.25 times your height, minus five times your age. Then add 5 for men or subtract 161 for women.

Part 2: Multiply by an activity factor

The activity factor scales your resting burn up to cover daily movement and training. Pick the one that describes your whole week, not just your gym days:

FactorYour typical week
1.2Desk job, little deliberate exercise
1.375Light training 1 to 3 days a week
1.55Moderate training 3 to 5 days a week
1.725Hard training 6 to 7 days a week
1.9Hard training plus a physically demanding job

Worked example

A 28-year-old man, 80 kg, 180 cm, lifting four days a week.

BMR = 10 × 80 + 6.25 × 180 − 5 × 28 + 5 = 1,790 kcal

Maintenance ≈ 1,790 × 1.55 ≈ 2,775 kcal a day

Try it with your numbers

Your maintenance calories

Starts on the worked example. Change anything and the rest of the guide follows your numbers.

Sex

Units

Activity: describe your whole week

Resting metabolism (BMR)

10 × 80 + 6.25 × 180 − 5 × 28 + 5= 1,790 kcal

Maintenance (TDEE)

1,790 × 1.55= 2,775 kcal a day

An estimate to start from, not a measurement. Step 6 shows how to correct it from your weight trend.

Watch out

The most common mistake: an activity factor that's too high

Four hour-long lifting sessions a week feel like a lot, but a session burns far less than most people expect, and the other 164 hours of the week are usually spent sitting. If you sit for work and train four times a week, 1.5 to 1.55 is a more honest starting point than 1.7. You'll correct it in step 6 either way.

Step 2 of 6

Pick your goal, then your pace

Your goal decides which direction calories move from maintenance. Your pace decides how far.

Faster is not better. A bigger adds more fat for every unit of muscle you gain. A bigger costs more muscle and is harder to stick to. Pick a moderate pace and let time do the work.

Bulking: gain muscle

Eat roughly 10 to 20% above maintenance, typically 250 to 500 kcal extra a day.

Aim to gain about 0.25 to 0.5% of your bodyweight per week. For an 80 kg lifter that's 200 to 400 g a week.

Newer lifters can sit at the top of that range. Experienced lifters build muscle more slowly and should stay near the bottom. Otherwise most of the extra weight is fat.

Worked example

Continuing the example

Maintenance 2,775 kcal + a moderate 300 kcal surplus = 3,075 kcal.

Cutting: lose fat

Eat roughly 10 to 25% below maintenance, typically 300 to 700 kcal less a day.

Aim to lose about 0.5 to 1% of your bodyweight per week.

The leaner you already are, the slower you should go. A 20% deficit is reasonable at higher body fat; someone already lean keeps more muscle at 10 to 15%.

Worked example

Continuing the example

Maintenance 2,775 kcal − a moderate 500 kcal deficit = 2,275 kcal.

Recomp: build muscle and lose fat at the same time

Eat at or very near maintenance (within about 5% either side) with protein at the high end of the range in step 3, and let training drive the change.

works best for beginners, people coming back after a break, and anyone carrying enough body fat to fuel muscle growth from stored energy.

Note

Expect the scale to barely move

Progress shows in the mirror, in measurements, and in your lifts, not in your weight.

Worked example

Continuing the example

Maintenance is 2,775 kcal, so a recomp target is ≈ 2,775 kcal.

Try it with your numbers

Your calorie target

Starts from your maintenance in step 1: 2,775 kcal.

Goal

Pace

The default for most lifters.

2,775 +300 kcal (+11%)= 3,075 kcal a day

Expect roughly 200 to 400 g a week of gain at this pace. Step 6 shows how to check it.

Step 3 of 6

Set protein first

Protein protects and builds muscle, so it's set first. Everything else fits around it.

Set protein by bodyweight, not as a percentage of calories. A percentage swings up and down with your calorie target. Your muscles' need for protein doesn't.

SituationProtein targetWhy
Bulking or recomp1.6 to 2.2 g per kgBenefits flatten above about 1.6 g/kg for most lifters; 2.0 to 2.2 gives a useful margin.
Cutting2.2 to 2.6 g per kg, or higherA deficit is when muscle is most at risk, and protein is the most filling macro. Two reasons to push it up.
Carrying a lot of body fatSame ranges, based on Use your estimated lean mass or a realistic goal weight instead of total weight, or the target inflates.

Protein has 4 kcal per gram. Multiply grams by four to see how many of your calories it uses.

Worked example

Continuing the example

80 kg, bulking at 2.0 g/kg → 160 g protein = 640 kcal.

80 kg, cutting at 2.4 g/kg → 192 g protein = 768 kcal.

Try it with your numbers

Your protein target

For a bulk: 1.6 to 2.2 g/kg. Based on the 80 kg from step 1.

Protein per kg of bodyweight2.0 g/kg

1.2 g/kgBulk range 1.6 g/kg to 2.2 g/kg3.0 g/kg

Protein

160g/day

Calories

640kcal

Of target

21%

80 kg × 2.0 g/kg= 160 g

Inside the range for a bulk.

Tip

Want the detail?

Timing, meal spacing, plant-based sources, and whether you can eat too much are all covered in how much protein you need to build muscle.

Step 4 of 6

Set fat second

Fat has a floor. Set it, then don't go under it.

Fat supports hormone production, joint health, and the absorption of several vitamins. Set it at 0.6 to 1.0 g per kg of bodyweight, which works out to about 20 to 35% of total calories for most people.

Watch out

Don't hold fat below about 0.5 g/kg for long

It's tempting on a cut, where squeezing fat makes room for carbs. The hormonal cost isn't worth it.

Fat has 9 kcal per gram, more than double protein or carbs. That's why small amounts of oil, butter, and dressing move calorie totals so much, and why they're the ingredients most often missed when tracking.

Worked example

Continuing the example

80 kg, bulking at 0.8 g/kg → 64 g fat = 576 kcal.

80 kg, cutting at 0.7 g/kg → 56 g fat = 504 kcal.

Try it with your numbers

Your fat target

Usual range 0.6 to 1 g/kg, floor 0.5 g/kg.

Fat per kg of bodyweight0.8 g/kg

0.4 g/kgRecommended 0.6 g/kg to 1.0 g/kg1.2 g/kg

Fat

64g/day

Calories

576kcal

Of target

19%

80 kg × 0.8 g/kg= 64 g

Inside the usual range.

Step 5 of 6

Carbs fill the rest

Whatever calories are left after protein and fat go to carbohydrates.

Carbs have 4 kcal per gram and are the main fuel for hard training. There's no need to fear a high carb number on a bulk. Carbs power the sessions that turn a surplus into muscle rather than fat.

Carbs (g) = (total calories − protein calories − fat calories) ÷ 4

Subtract the calories already taken by protein and fat, then divide what's left by four.

Worked example

Finishing the example

Bulk, 3,075 kcal: (3,075 − 640 − 576) ÷ 4 ≈ 465 g carbs. Final targets: 160 g protein · 64 g fat · 465 g carbs.

Cut, 2,275 kcal: (2,275 − 768 − 504) ÷ 4 ≈ 250 g carbs. Final targets: 192 g protein · 56 g fat · 250 g carbs.

Try it with your numbers

Your final targets

Everything from steps 1 to 4, in one place.

Carbs from what's left

(3,075 − 640 − 576) ÷ 4= 465 g

Calories · Bulk

3,075kcal

Protein

160g

Fat

64g

Carbs

465g

Protein 21% Carbs 60% Fat 19%

GainzMate's onboarding is built on this method (deterministic, every number editable) with a few refinements: with a body-fat estimate it uses the Katch-McArdle equation instead of Mifflin-St Jeor, it counts training sessions separately from your day-to-day activity factor, and it sets protein at the top of these ranges. So your numbers in the app can differ a little from this walkthrough.

Tip

If carbs come out very low on a cut

Under roughly 100 g usually means the deficit is too aggressive, or fat is set higher than it needs to be. Take a smaller deficit rather than cutting protein.

Step 6 of 6

Adjust from the trend, not the day

The estimate will be off. Every formula is. The correction loop is what makes the method work.

Weigh yourself in the same conditions each morning and ignore the daily number. Every two weeks, compare this week's with the one from two weeks ago, then adjust:

If you're…And the trend says…Do this
BulkingGaining faster than 0.5% a weekSubtract 100 to 200 kcal, mostly from carbs
BulkingGaining slower than 0.25% a week, or not at allAdd 100 to 200 kcal
CuttingLosing faster than 1% a weekAdd 100 to 200 kcal
CuttingLosing slower than 0.5% a weekSubtract 100 to 200 kcal, but check your logging first (below)
RecompingAnything. The scale isn't the signalJudge by measurements, photos, and lifts over 6 to 8 weeks
AnyoneWeight has changed by 5 kgRe-run the numbers from step 1

Note

If the scale isn't moving on a cut

The most likely explanation is under-logging, not a broken metabolism. Oils, sauces, bites while cooking, and untracked weekends add up. Our guide on how accurate AI calorie tracking really is covers where logging errors come from and how to shrink them.

Wrap-up

Common mistakes

Six ways this method goes wrong, all avoidable.

  • Choosing an activity factor by how hard training feels rather than how much you move in total. Start lower; the trend will tell you.
  • Setting protein as a percentage. Anchor it to bodyweight so it doesn't drop when calories do.
  • Cutting fat too low to fit more carbs. Hold the 0.5 g/kg floor.
  • Adjusting off daily weight. Use two-week comparisons of weekly averages.
  • Never re-calculating. A target set at 90 kg is wrong at 80 kg.
  • Trusting the numbers more than the outcome. The formula gets you close; results get you the rest of the way.

Wrap-up

How GainzMate does this

GainzMate's onboarding runs this method with a few refinements. You enter age, height, weight, activity, training frequency and style, goal, preferred pace, and optionally a body-fat estimate; the app returns calorie and macro targets using deterministic calculations: the same inputs always produce the same targets, with no black box and no AI in the loop. With a body-fat estimate it uses Katch-McArdle for resting metabolism, it adds your training sessions on top of a day-to-day activity factor, and it sets protein at the top of the ranges above.

Every target stays editable. If you'd rather run your own numbers from this guide, you can type them straight in.

GainzMate is coming soon to iPhone. See what it does or read the FAQ for where things stand.

General nutrition information for healthy adults, not medical advice. Individual needs vary; consult a qualified professional before changing your diet if you have a medical condition.

Published August 29, 2026 · Updated October 28, 2026

GainzMate runs this math for you.

Targets from your inputs, AI estimates you review before saving, and every number editable. Coming soon to iPhone.