Macro (Macronutrient) Calculator
Calculate your daily protein, carbohydrate and fat targets in grams. Your total calorie need is estimated the same way as our Calorie/TDEE calculator, then split into macronutrients based on the diet style you pick.
How it works
Total daily calories come from the Mifflin-St Jeor equation scaled by activity level. Each macronutrient style allocates a percentage of those calories to protein, carbs and fat. Protein and carbs each provide 4 kcal per gram; fat provides 9 kcal per gram - so grams are calculated by dividing each macro's calorie share by its per-gram energy value.
Protein (g) = (calories x protein%) / 4 | Carbs (g) = (calories x carb%) / 4 | Fat (g) = (calories x fat%) / 9Example. At 2,633 daily calories on a Balanced split: about 197g protein, 263g carbs and 88g fat.
Frequently asked questions
Which diet style should I pick?
Balanced suits most general fitness goals. High-protein helps preserve muscle during a calorie deficit. Low-carb and Keto are more restrictive approaches some people use for specific goals or preferences - none is objectively "best" for everyone.
Why does fat use 9 calories per gram instead of 4?
Fat is more energy-dense than protein or carbohydrate - each gram of fat provides about 9 kcal, more than double the 4 kcal per gram that protein and carbs provide.
Related calculators
Embed this calculator
Free to use on any site. Please keep the credit link.
<iframe
id="letmecalc-macro-calculator"
src="https://letmecalc.com/embed/health/macro-calculator"
title="Macro Calculator"
width="100%"
height="620"
style="border:0;max-width:100%"
loading="lazy"
></iframe>
<p><a href="https://letmecalc.com/health/macro-calculator" target="_blank" rel="noopener">Macro Calculator</a> by letmecalc</p>
<script>
(function () {
var f = document.getElementById("letmecalc-macro-calculator");
window.addEventListener("message", function (e) {
if (e.origin !== "https://letmecalc.com") return;
if (!f || e.source !== f.contentWindow) return;
var d = e.data;
if (!d || d.source !== "letmecalc-embed" || d.type !== "resize") return;
if (typeof d.height === "number" && d.height > 0) {
f.style.height = d.height + "px";
}
});
})();
</script>