TDEE Calculator
Calculate your Total Daily Energy Expenditure and daily calorie needs.
TDEE Calculator estimates your Total Daily Energy Expenditure β the total number of calories your body burns in a day accounting for your Basal Metabolic Rate (BMR) and your physical activity level. TDEE is the foundation of any calorie-based diet or fitness plan: eating below TDEE creates a deficit for weight loss, eating above it causes weight gain.
Enter your age, height, weight, biological sex, and select your activity level from sedentary to very active. The tool uses the Mifflin-St Jeor equation (the most validated formula for most adults) to calculate BMR and multiplies it by an activity factor to produce your TDEE.
Your TDEE is an estimate, not a guarantee β individual metabolism varies. Use it as a starting point, track your actual weight change over 2β3 weeks, and adjust your calorie intake accordingly. A common approach is to subtract 500 calories from TDEE for a safe weight loss of approximately 0.5 kg (1 lb) per week.
Frequently Asked Questions
Code Implementation
def mifflin_bmr(weight_kg, height_cm, age, sex):
"""
Mifflin-St Jeor BMR formula (1990).
Parameters:
weight_kg - body weight in kilograms
height_cm - height in centimetres
age - age in years
sex - 'male' or 'female'
Returns BMR in kcal/day.
"""
bmr = 10 * weight_kg + 6.25 * height_cm - 5 * age
bmr += 5 if sex.lower() == 'male' else -161
return bmr
def tdee(weight_kg, height_cm, age, sex, activity_level='sedentary'):
"""
Calculate Total Daily Energy Expenditure (TDEE).
Activity multipliers (Mifflin-St Jeor):
sedentary 1.2 (desk job, little/no exercise)
light 1.375 (1-3 days/week exercise)
moderate 1.55 (3-5 days/week exercise)
active 1.725 (6-7 days/week hard exercise)
very_active 1.9 (physical job + hard exercise)
"""
multipliers = {
'sedentary': 1.2,
'light': 1.375,
'moderate': 1.55,
'active': 1.725,
'very_active': 1.9,
}
bmr = mifflin_bmr(weight_kg, height_cm, age, sex)
factor = multipliers.get(activity_level, 1.2)
return bmr * factor
# Example: 30-year-old male, 80 kg, 180 cm, moderately active
bmr = mifflin_bmr(80, 180, 30, 'male')
tdee_val = tdee(80, 180, 30, 'male', 'moderate')
print(f"BMR: {bmr:.0f} kcal/day")
print(f"TDEE: {tdee_val:.0f} kcal/day")
print(f"Weight loss target (-500 kcal): {tdee_val - 500:.0f} kcal/day")
print(f"Muscle gain target (+250 kcal): {tdee_val + 250:.0f} kcal/day")Comments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.