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.
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
BMR = 10 × weight + 6.25 × height − 5 × age + 5BMR = 10 × weight + 6.25 × height − 5 × age − 161In 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:
| Factor | Your typical week |
|---|---|
| 1.2 | Desk job, little deliberate exercise |
| 1.375 | Light training 1 to 3 days a week |
| 1.55 | Moderate training 3 to 5 days a week |
| 1.725 | Hard training 6 to 7 days a week |
| 1.9 | Hard 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
Resting metabolism (BMR)
Maintenance (TDEE)
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.
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.
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.
| Situation | Protein target | Why |
|---|---|---|
| Bulking or recomp | 1.6 to 2.2 g per kg | Benefits flatten above about 1.6 g/kg for most lifters; 2.0 to 2.2 gives a useful margin. |
| Cutting | 2.2 to 2.6 g per kg, or higher | A 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 fat | Same 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.
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%
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.
0.4 g/kgRecommended 0.6 g/kg to 1.0 g/kg1.2 g/kg
Fat
64g/day
Calories
576kcal
Of target
19%
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) ÷ 4Subtract 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
Calories · Bulk
3,075kcal
Protein
160g
Fat
64g
Carbs
465g
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 |
|---|---|---|
| Bulking | Gaining faster than 0.5% a week | Subtract 100 to 200 kcal, mostly from carbs |
| Bulking | Gaining slower than 0.25% a week, or not at all | Add 100 to 200 kcal |
| Cutting | Losing faster than 1% a week | Add 100 to 200 kcal |
| Cutting | Losing slower than 0.5% a week | Subtract 100 to 200 kcal, but check your logging first (below) |
| Recomping | Anything. The scale isn't the signal | Judge by measurements, photos, and lifts over 6 to 8 weeks |
| Anyone | Weight has changed by 5 kg | Re-run the numbers from step 1 |
Daily weight swings by a kilogram or more with water, , sodium, and what's still in your digestive system. Reacting to one reading is how people ping-pong their calories and conclude the method doesn't work. Comparing two-week weekly averages filters that noise out.
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.