Scientifically calculate your daily energy needs based on body metrics
Measurement System:
Male
Female
Years (15-100)
Please enter a valid age.
Feet and Inches
Pounds (lbs)
Centimeters (cm)
Kilograms (kg)
Sedentary (Little to no exercise)
Lightly Active (Exercise 1-3 days/week)
Moderately Active (Exercise 3-5 days/week)
Very Active (Exercise 6-7 days/week)
Extra Active (Very hard exercise/physical job)
Select the option that best matches your routine
Estimated Daily Maintenance Calories
2,450 kcal/day
Based on Mifflin-St Jeor Formula
Basal Metabolic Rate (BMR)
1,750
Calories burned at rest
Weight Loss (-0.5kg/wk)
1,950
500 calorie deficit
Weight Gain (+0.5kg/wk)
2,950
500 calorie surplus
Calorie Intake by Activity Level
Estimated Macronutrient Needs (Maintenance)
Macronutrient
Percentage
Grams per Day
Calories
What is a Calorie Height Weight Calculator?
A calorie height weight calculator is a specialized financial tool for your biological budget. Just as you track income and expenses to manage wealth, this calculator helps you manage your body's energy balance. It estimates the total number of calories you need to consume daily to maintain your current weight based on your specific physical attributes: height, weight, age, gender, and activity level.
This calculation determines your Total Daily Energy Expenditure (TDEE). Unlike generic recommendations (like the standard "2,000 calories a day"), a calorie height weight calculator provides a personalized baseline. It is essential for anyone looking to optimize their health, whether the goal is weight loss, muscle gain, or simply metabolic maintenance.
Common misconceptions often lead people to undereat or overeat significantly. Many assume that height doesn't matter as much as weight, but taller individuals generally possess more lean body mass, requiring more energy to function. This tool accounts for these nuances to prevent metabolic adaptation caused by severe under-eating or unwanted fat gain from over-eating.
Calorie Height Weight Calculator Formula
The most widely accepted and accurate formula used by modern dietitians and health professionals is the Mifflin-St Jeor Equation. This formula first calculates your Basal Metabolic Rate (BMR)—the energy your body needs just to exist at rest—and then applies an activity multiplier.
Step 1: Calculate BMR
The mathematical models differ slightly for men and women due to differences in lean body mass:
Men: (10 × weight in kg) + (6.25 × height in cm) – (5 × age in years) + 5
Women: (10 × weight in kg) + (6.25 × height in cm) – (5 × age in years) – 161
Step 2: Calculate TDEE
Once BMR is known, it is multiplied by an Activity Factor (AF) to find the TDEE:
TDEE = BMR × Activity Factor
Variables Table
Variable
Meaning
Unit
Typical Range
BMR
Basal Metabolic Rate
Calories (kcal)
1,200 – 2,500
Weight
Body Mass
kg or lbs
40kg – 150kg+
Height
Vertical Stature
cm or ft/in
140cm – 200cm+
Activity Factor
Physical Exertion
Multiplier
1.2 (Sedentary) – 1.9 (Athlete)
Practical Examples
Example 1: The Office Worker
Profile: Sarah is a 34-year-old female, 5'6″ (168 cm) tall, weighing 160 lbs (72.5 kg). She works a desk job and walks her dog occasionally (Sedentary).
Interpretation: To maintain her weight, Sarah should eat roughly 1,733 calories. If she eats 2,000 calories (standard advice), she will gradually gain weight over time because her personal requirements are lower.
Example 2: The Construction Worker
Profile: Mike is a 28-year-old male, 6'0″ (183 cm) tall, weighing 190 lbs (86 kg). He has a physically demanding job and lifts weights 4 times a week (Very Active).
Interpretation: Mike needs over 3,000 calories just to maintain his size. Eating "healthy" portions designed for an average person (e.g., 2,000 kcal) would put him in a severe deficit, likely causing muscle loss and fatigue.
How to Use This Calorie Height Weight Calculator
Select Measurement System: Choose between Imperial (US) or Metric based on your preference.
Enter Personal Metrics: Input your exact height, weight, and age. Accuracy here is crucial for the formula.
Choose Activity Level: Be honest. "Lightly Active" usually means intentional exercise 1-3 times a week, not just walking around the office.
Analyze Results: Look at the "Maintenance Calories." This is your anchor number.
Adjust for Goals:
To lose weight, subtract 250-500 calories from your result.
To gain muscle, add 250-500 calories to your result.
Key Factors That Affect Calorie Height Weight Results
While the formula is accurate, several factors influence your actual burn rate:
Muscle Mass vs. Fat Mass: Muscle tissue burns more calories at rest than fat tissue. Two people with the same calorie height weight calculator stats but different body compositions will have different BMRs. Leaner individuals need more calories.
Age-Related Metabolic Decline: As we age, metabolic processes slow down, typically decreasing BMR by 1-2% per decade after age 20. This is why the calculator subtracts calories as age increases.
TEF (Thermic Effect of Food): Protein requires more energy to digest (20-30% of its calories) compared to fats or carbs. A high-protein diet may effectively increase your daily expenditure.
NEAT (Non-Exercise Activity Thermogenesis): Fidgeting, standing, and subconscious movements can vary by up to 2,000 calories between individuals, affecting the real-world accuracy of the activity multiplier.
Hormonal Health: Thyroid issues (hypothyroidism), cortisol levels, and insulin sensitivity can alter the baseline metabolic rate significantly outside of standard mathematical predictions.
Adaptation History: Chronic dieters may have a "suppressed" metabolism. If you have been eating very low calories for a long time, your actual maintenance might be lower than the calculated value until you reverse diet.
Related Tools and Internal Resources
BMI Calculator – Check if your weight falls within a healthy range relative to your height.
Weight Loss Planner – Plan a timeline for reaching your target weight safely.
BMR Calculator – Focus specifically on your Basal Metabolic Rate without activity factors.
TDEE Calculator – Learn more about Total Daily Energy Expenditure science.
Ideal Weight Chart – See standard weight ranges for your height and frame size.
Frequently Asked Questions (FAQ)
How accurate is a calorie height weight calculator?
For most people, it is accurate within 10%. However, individuals with very high muscle mass may find the calculator underestimates their needs, while those with very high body fat might find it overestimates slightly.
Should I eat back my exercise calories?
Generally, no. The "Activity Level" multiplier in the calculator already accounts for your exercise. Adding exercise calories on top of your TDEE result usually leads to double-counting and weight gain.
Why does height affect calorie needs?
Height correlates with total body surface area and organ size. Taller people have larger skeletons and more skin surface area, requiring more thermal energy to maintain body temperature and cellular function.
Can I use this calculator for children?
No. This calculator uses the Mifflin-St Jeor equation designed for adults (18+). Children and teenagers have distinct energy requirements for growth and development that require pediatric formulas.
What is a safe calorie deficit?
A deficit of 500 calories per day typically results in 1 lb (0.45 kg) of weight loss per week. This is considered safe and sustainable. Deficits larger than 1,000 calories are generally discouraged without medical supervision.
How often should I recalculate?
You should use the calorie height weight calculator every time you lose or gain 5-10 lbs. As you lose weight, your body requires less energy to move, meaning your calorie target must decrease to continue losing weight.
Does this calculator work for keto or vegan diets?
Yes. The total calorie number is energy-neutral. Whether those calories come from fats (keto) or plants (vegan) is a matter of macronutrient distribution, but the total energy requirement remains the same.
Why is my weight not changing even though I follow the calculator?
This usually indicates tracking errors (eating more than you think) or a sedentary lifestyle that is lower than the "Sedentary" multiplier assumes. Try reducing intake by another 100-200 calories or increasing daily steps.
var currentUnit = 'imperial';
var calorieChart = null;
function toggleUnits() {
var radios = document.getElementsByName('units');
for (var i = 0; i < radios.length; i++) {
if (radios[i].checked) {
currentUnit = radios[i].value;
break;
}
}
var impInputs = document.getElementById('imperialInputs');
var metInputs = document.getElementById('metricInputs');
if (currentUnit === 'imperial') {
impInputs.style.display = 'block';
metInputs.style.display = 'none';
} else {
impInputs.style.display = 'none';
metInputs.style.display = 'block';
}
calculate();
}
function calculate() {
// Get common inputs
var gender = document.getElementById('gender').value;
var age = parseFloat(document.getElementById('age').value);
var activity = parseFloat(document.getElementById('activity').value);
// Validation
if (isNaN(age) || age 100) {
document.getElementById('ageError').style.display = 'block';
return;
} else {
document.getElementById('ageError').style.display = 'none';
}
var weightKg = 0;
var heightCm = 0;
// Get Unit specific inputs and convert to metric for formula
if (currentUnit === 'imperial') {
var ft = parseFloat(document.getElementById('heightFt').value) || 0;
var inches = parseFloat(document.getElementById('heightIn').value) || 0;
var lbs = parseFloat(document.getElementById('weightLbs').value) || 0;
if (lbs <= 0 || (ft === 0 && inches === 0)) return;
weightKg = lbs * 0.453592;
heightCm = (ft * 30.48) + (inches * 2.54);
} else {
weightKg = parseFloat(document.getElementById('weightKg').value) || 0;
heightCm = parseFloat(document.getElementById('heightCm').value) || 0;
if (weightKg <= 0 || heightCm <= 0) return;
}
// Mifflin-St Jeor Formula
// Men: 10W + 6.25H – 5A + 5
// Women: 10W + 6.25H – 5A – 161
var bmr = (10 * weightKg) + (6.25 * heightCm) – (5 * age);
if (gender === 'male') {
bmr += 5;
} else {
bmr -= 161;
}
var tdee = bmr * activity;
// Update UI
updateUI(bmr, tdee);
updateChart(bmr);
updateTable(tdee);
}
function updateUI(bmr, tdee) {
// Format numbers with commas
var fmt = function(n) { return Math.round(n).toLocaleString(); };
document.getElementById('resultTDEE').innerHTML = fmt(tdee) + ' kcal/day';
document.getElementById('resultBMR').innerText = fmt(bmr);
document.getElementById('resultLoss').innerText = fmt(tdee – 500);
document.getElementById('resultGain').innerText = fmt(tdee + 500);
}
function updateTable(tdee) {
var tbody = document.getElementById('macroTableBody');
tbody.innerHTML = ";
// Standard balanced diet: 50% Carbs, 20% Protein, 30% Fat
var macros = [
{ name: 'Carbohydrates', pct: 0.50, calPerGram: 4 },
{ name: 'Protein', pct: 0.20, calPerGram: 4 },
{ name: 'Fats', pct: 0.30, calPerGram: 9 }
];
for (var i = 0; i < macros.length; i++) {
var m = macros[i];
var cals = tdee * m.pct;
var grams = cals / m.calPerGram;
var row = '
' +
'
' + m.name + '
' +
'
' + (m.pct * 100) + '%
' +
'
' + Math.round(grams) + 'g
' +
'
' + Math.round(cals) + '
' +
'
';
tbody.innerHTML += row;
}
}
function drawBar(ctx, x, y, width, height, color) {
ctx.fillStyle = color;
ctx.fillRect(x, y, width, height);
}
function drawText(ctx, text, x, y, align, color) {
ctx.fillStyle = color || '#333′;
ctx.font = '12px Arial';
ctx.textAlign = align || 'center';
ctx.fillText(text, x, y);
}
function updateChart(bmr) {
var canvas = document.getElementById('calorieChart');
var ctx = canvas.getContext('2d');
// Handle high density displays
var dpr = window.devicePixelRatio || 1;
var rect = canvas.getBoundingClientRect();
canvas.width = rect.width * dpr;
canvas.height = rect.height * dpr;
ctx.scale(dpr, dpr);
var w = rect.width;
var h = rect.height;
ctx.clearRect(0, 0, w, h);
var activityLevels = [1.2, 1.375, 1.55, 1.725, 1.9];
var labels = ["Sedentary", "Light", "Moderate", "Active", "Extra"];
// Calculate max value for scaling
var maxVal = bmr * 1.9 * 1.1; // 10% headroom
var padding = 40;
var chartH = h – padding * 2;
var barWidth = (w – (padding * 2)) / activityLevels.length – 20;
// Draw Axes
ctx.beginPath();
ctx.moveTo(padding, padding);
ctx.lineTo(padding, h – padding);
ctx.lineTo(w – padding, h – padding);
ctx.strokeStyle = '#ddd';
ctx.stroke();
for (var i = 0; i < activityLevels.length; i++) {
var val = bmr * activityLevels[i];
var barHeight = (val / maxVal) * chartH;
var x = padding + 10 + (i * (barWidth + 20));
var y = h – padding – barHeight;
// Bar
var color = '#004a99';
if (i === 2) color = '#28a745'; // Highlight moderate
drawBar(ctx, x, y, barWidth, barHeight, color);
// Value Label
drawText(ctx, Math.round(val), x + barWidth/2, y – 5, 'center', '#000');
// Axis Label
drawText(ctx, labels[i], x + barWidth/2, h – padding + 15, 'center', '#666');
}
}
function resetCalc() {
document.getElementById('gender').value = 'male';
document.getElementById('age').value = '30';
document.getElementById('activity').value = '1.375';
if (currentUnit === 'imperial') {
document.getElementById('heightFt').value = '5';
document.getElementById('heightIn').value = '10';
document.getElementById('weightLbs').value = '170';
} else {
document.getElementById('heightCm').value = '178';
document.getElementById('weightKg').value = '77';
}
calculate();
}
function copyResults() {
var tdee = document.getElementById('resultTDEE').innerText;
var bmr = document.getElementById('resultBMR').innerText;
var loss = document.getElementById('resultLoss').innerText;
var text = "Calorie Height Weight Calculator Results:\n" +
"Maintenance (TDEE): " + tdee + "\n" +
"BMR: " + bmr + " kcal\n" +
"Weight Loss Target: " + loss + " kcal\n" +
"Generated at: " + window.location.href;
var ta = document.createElement("textarea");
ta.value = text;
document.body.appendChild(ta);
ta.select();
document.execCommand("copy");
document.body.removeChild(ta);
var btn = document.querySelector('.btn-copy');
var originalText = btn.innerText;
btn.innerText = "Copied!";
setTimeout(function() { btn.innerText = originalText; }, 2000);
}
// Initial calculation
window.onload = function() {
// Debounce resize
var resizeTimer;
window.addEventListener('resize', function() {
clearTimeout(resizeTimer);
resizeTimer = setTimeout(function() {
calculate();
}, 250);
});
calculate();
};