Estimate calories burned based on your heart rate and workout duration.
Male
Female
Estimated Calories Burned:
0 kcal
This calculation uses standard physiological formulas based on heart rate intensity, age, and weight for aerobic activity.
How to Calculate Calories Using Heart Rate
Traditional calorie trackers often rely solely on weight and activity type. However, using your average heart rate (BPM) provides a much more personalized and accurate estimate of metabolic effort. This is because your heart rate is a direct indicator of how hard your cardiovascular system is working to supply oxygen to your muscles.
The Scientific Formula
Our calculator uses the widely accepted formula derived from the Journal of Sports Sciences. The math differs slightly between biological sexes because of differences in lean muscle mass and metabolic rates:
For Men: [(Age x 0.2017) + (Weight x 0.1988) + (Heart Rate x 0.6309) – 55.0969] x Time / 4.184
For Women: [(Age x 0.074) – (Weight x 0.1263) + (Heart Rate x 0.4472) – 20.4022] x Time / 4.184
Example Calculation
If a 30-year-old male weighing 80kg performs a 60-minute HIIT workout with an average heart rate of 155 BPM:
Age component: 30 * 0.2017 = 6.051
Weight component: 80 * 0.1988 = 15.904
HR component: 155 * 0.6309 = 97.7895
Sum: 6.051 + 15.904 + 97.7895 – 55.0969 = 64.6476
Final Burn: (64.6476 * 60) / 4.184 = 927 Calories
Why Monitor Your Heart Rate?
Monitoring heart rate isn't just about weight loss; it's about training efficiency. By staying within your target heart rate zones (usually 50% to 85% of your maximum heart rate), you can ensure you are improving cardiovascular health without overtraining or risking injury. Modern chest straps and wrist-based monitors make tracking these metrics easier than ever before.
function calculateCalories() {
var gender = document.getElementById("gender").value;
var age = parseFloat(document.getElementById("age").value);
var weight = parseFloat(document.getElementById("weight").value);
var heartRate = parseFloat(document.getElementById("heartRate").value);
var duration = parseFloat(document.getElementById("duration").value);
var resultDiv = document.getElementById("calorieResult");
var resultDisplay = document.getElementById("resultDisplay");
if (isNaN(age) || isNaN(weight) || isNaN(heartRate) || isNaN(duration) || age <= 0 || weight <= 0 || heartRate <= 0 || duration <= 0) {
alert("Please enter valid positive numbers for all fields.");
return;
}
var calories = 0;
if (gender === "male") {
// Male Formula: [(Age x 0.2017) + (Weight x 0.1988) + (Heart Rate x 0.6309) – 55.0969] x Time / 4.184
var part1 = (age * 0.2017) + (weight * 0.1988) + (heartRate * 0.6309) – 55.0969;
calories = (part1 * duration) / 4.184;
} else {
// Female Formula: [(Age x 0.074) – (Weight x 0.1263) + (Heart Rate x 0.4472) – 20.4022] x Time / 4.184
var part1 = (age * 0.074) – (weight * 0.1263) + (heartRate * 0.4472) – 20.4022;
calories = (part1 * duration) / 4.184;
}
// Ensure we don't return negative calories for extremely low heart rates/inputs
if (calories < 0) calories = 0;
resultDisplay.innerHTML = Math.round(calories) + " kcal";
resultDiv.style.display = "block";
// Smooth scroll to result on mobile
resultDiv.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
}