*Based on the Keytel et al. formula for heart rate-based energy expenditure estimation.
How to Calculate Energy Expenditure from Heart Rate
Calculating energy expenditure (EE) based on heart rate is one of the most accessible methods for estimating the intensity of physical activity and the total calories burned during exercise. Unlike simple distance or time-based calculations, incorporating heart rate data accounts for individual physiological responses to effort.
The Science Behind Heart Rate and Calories
Heart rate is linearly related to oxygen consumption ($VO_2$) during moderate-to-vigorous aerobic exercise. Since the body consumes oxygen to produce energy (burn calories), measuring how fast your heart beats provides a strong proxy for how much energy you are expending. This relationship forms the basis of formulas like the one developed by Keytel et al. (2005), which this calculator utilizes.
The Calculation Formula
The standard formulas used to calculate energy expenditure from heart rate take into account gender, age, weight, and the average heart rate during the activity. The calculations yield energy in kiloJoules (kJ) per minute, which is then converted to kilocalories (kcal).
Note: Weight is in kilograms, HR is in beats per minute, and the result is in kcal/min.
Variables Affecting Accuracy
While heart rate is a reliable indicator, several factors can influence the accuracy of these calculations:
Fitness Level: Elite athletes generally have a higher stroke volume, meaning they pump more blood per beat. This can alter the HR-to-$VO_2$ relationship compared to the average population.
Resting Heart Rate: A lower resting heart rate often indicates better cardiovascular health, which affects the net calorie burn.
Environmental Factors: Heat and humidity can cause "cardiac drift," where heart rate rises to cool the body rather than solely to fuel muscles, potentially leading to an overestimation of calories burned.
Types of Exercise: These formulas are most accurate for steady-state aerobic activities (like running, cycling, or rowing) and less accurate for anaerobic activities like heavy weightlifting or HIIT.
Why Monitor Energy Expenditure?
Tracking energy expenditure helps in managing weight loss goals, ensuring adequate fueling for endurance events, and preventing overtraining. By understanding the metabolic demand of your workouts, you can optimize your nutrition and recovery strategies for better performance and health outcomes.
function calculateEnergyExpenditure() {
// Get input values
var gender = document.getElementById('ee_gender').value;
var age = parseFloat(document.getElementById('ee_age').value);
var weightInput = parseFloat(document.getElementById('ee_weight').value);
var weightUnit = document.getElementById('ee_weight_unit').value;
var hr = parseFloat(document.getElementById('ee_hr').value);
var duration = parseFloat(document.getElementById('ee_duration').value);
var errorDiv = document.getElementById('ee_error');
var resultsDiv = document.getElementById('ee_results_container');
// Validation
if (isNaN(age) || isNaN(weightInput) || isNaN(hr) || isNaN(duration) || age <= 0 || weightInput <= 0 || hr <= 0 || duration <= 0) {
errorDiv.style.display = 'block';
resultsDiv.style.display = 'none';
return;
}
errorDiv.style.display = 'none';
// Convert weight to kg if necessary
var weightKg = weightInput;
if (weightUnit === 'lbs') {
weightKg = weightInput * 0.45359237;
}
// Keytel Formula (2005)
// Returns KJ/min originally, we need to handle conversion carefully.
// The formulas below are standard adaptations that result in kJ/min.
// We divide by 4.184 to get kcal/min.
var ee_kj_per_min = 0;
if (gender === 'male') {
// Male: EE (kJ/min) = -55.0969 + (0.6309 x HR) + (0.1988 x W) + (0.2017 x A)
ee_kj_per_min = -55.0969 + (0.6309 * hr) + (0.1988 * weightKg) + (0.2017 * age);
} else {
// Female: EE (kJ/min) = -20.4022 + (0.4472 x HR) – (0.1263 x W) + (0.074 x A)
ee_kj_per_min = -20.4022 + (0.4472 * hr) – (0.1263 * weightKg) + (0.074 * age);
}
// Safety check for unrealistic low inputs resulting in negative calculation
if (ee_kj_per_min < 0) {
ee_kj_per_min = 0;
}
// Convert kJ/min to kcal/min
var ee_kcal_per_min = ee_kj_per_min / 4.184;
// Total calculations
var total_kcal = ee_kcal_per_min * duration;
var total_kj = ee_kj_per_min * duration;
// Display results
document.getElementById('ee_total_cal').innerHTML = Math.round(total_kcal) + ' kcal';
document.getElementById('ee_cal_min').innerHTML = ee_kcal_per_min.toFixed(1) + ' kcal/min';
document.getElementById('ee_total_kj').innerHTML = Math.round(total_kj) + ' kJ';
resultsDiv.style.display = 'block';
}