The short answer
Set protein from your bodyweight at roughly 1.6 to 2.0 g per kg, set fat at 25 to 30 percent of calories, and let carbohydrates fill whatever remains. A 75 kg person eating 2,400 calories to maintain lands near 120 g protein, 311 g carbs and 75 g fat.
Why protein should follow your bodyweight, not your calories
Nearly every macro calculator gives you percentages: 40 percent carbs, 30 percent protein, 30 percent fat. It looks tidy and it is the wrong shape for the problem.
A percentage rule makes protein a function of how much you eat. Two people eating 2,000 calories, one at 55 kg and one at 100 kg, get an identical 150 g protein target under a 30 percent rule, despite the heavier person carrying far more tissue to maintain. Worse, when you cut calories to lose fat, a percentage rule cuts your protein with them, which is precisely the moment the evidence says protein should go up.
The International Society of Sports Nutrition position stand expresses its recommendations in grams per kilogram of bodyweight for exactly this reason. Protein need scales with the body, not with the plate.
Fat is different. There is no comparable per-kilogram consensus, so it stays a percentage of calories, held inside the 20 to 35 percent range the Institute of Medicine identifies as appropriate for adults. Carbohydrates then take whatever is left, which at maintenance and in a surplus lands naturally inside the 45 to 65 percent band.
What this calculator uses
| Goal | Protein | Fat | Carbs |
|---|---|---|---|
| Fat loss | 2.0 g per kg | 25% of calories | remainder |
| Maintain | 1.6 g per kg | 28% of calories | remainder |
| Muscle gain | 1.8 g per kg | 25% of calories | remainder |
All three protein figures sit inside the ISSN range of 1.4 to 2.0 g per kg for active people, with fat loss at the top of it. That is deliberate: in an energy deficit, protein does more work, both in preserving lean tissue and in keeping hunger manageable.
Worked example
A 75 kg person maintaining at 2,400 calories:
- Protein: 1.6 × 75 = 120 g, which is 480 calories
- Fat: 28 percent of 2,400 = 672 calories, which is 75 g
- Carbs: the remaining 1,248 calories, which is 311 g
That works out to roughly 20 percent protein, 52 percent carbs and 28 percent fat, comfortably inside every published range without anyone having chosen those percentages in advance. They fell out of the bodyweight anchor.
When the numbers get adjusted, and why
There is a case where the arithmetic above breaks, and most calculators ship it without noticing.
Take a 120 kg person cutting at 1,600 calories. At 2.0 g per kg, protein comes to 240 g, which is 960 calories, or 60 percent of the day. Add 25 percent from fat and carbohydrates are left with 15 percent. That is outside the accepted range on two axes at once, and it is not a diet anyone should be handed by a form.
So two limits apply. Protein is capped at 40 percent of calories, and carbohydrates are held at a minimum of 20 percent, bought back from fat but never taking fat below 20 percent. When either applies, the calculator says so under the result rather than quietly changing your numbers.
For that 120 kg example the output becomes 160 g protein, 141 g carbs and 44 g fat: still protein-forward, still a real deficit, but inside the ranges.
Getting the numbers is the easy part
Three targets are harder to hit than one. A calorie total forgives a rough estimate, because errors in both directions tend to cancel across a day. Macros do not: guess the rice portion and your carbs are wrong, guess the oil and your fat is wrong, and unlike calories those errors do not offset each other.
This is where macro tracking usually collapses. It is not that people stop caring about protein, it is that weighing and logging three numbers per meal takes long enough that a busy week puts a hole in the log, and an incomplete log cannot tell you anything.
CalAlly is built to remove that step. You describe the meal out loud, the AI breaks it into ingredients and returns calories along with all three macros, and one tap logs it. About 3 seconds. The AI coach reads the result, so when your protein has been drifting low all week it tells you before the scale does.