Based on your Max HR of 0 bpm and Resting HR of 0 bpm.
Zone
Intensity
Heart Rate Range (BPM)
Training Benefit
Master Your Training with Heart Rate Zones
Running based on heart rate is one of the most effective ways to train efficiently, avoid injury, and see consistent progress. Unlike "pace" which can vary based on wind, terrain, or fatigue, your heart rate is an objective measure of how hard your body is working internally.
The Science: Karvonen Formula vs. Standard Formula
Many generic calculators simply take percentages of your Maximum Heart Rate (MHR). However, this calculator uses the Karvonen Formula, also known as the Heart Rate Reserve (HRR) method. This is considered the gold standard for runners because it incorporates your Resting Heart Rate (RHR), tailoring the zones to your specific fitness level.
The formula is: Target HR = ((Max HR − Resting HR) × %Intensity) + Resting HR
Understanding the 5 Running Zones
Zone 1 (Recovery): Very light intensity. Used for warm-ups, cool-downs, and active recovery runs. You should be able to hold a full conversation easily.
Zone 2 (Aerobic Base): The "bread and butter" of endurance training. This builds mitochondrial density and capillary networks. It feels slow, but it's crucial for marathon training.
Zone 3 (Tempo/Aerobic): A "comfortably hard" pace. Often used for tempo runs, improving your body's ability to shuttle lactate and clear waste products efficiently.
Zone 4 (Lactate Threshold): Hard running. You are running at or near your lactate threshold. Conversations are limited to single words. Essential for improving speed endurance.
Zone 5 (VO2 Max): Maximum effort. Sprints and short intervals. You cannot speak. This improves your top-end speed and neuromuscular power.
How to Get Accurate Inputs
Resting Heart Rate: Measure this first thing in the morning while still lying in bed. Take the average over 3-5 days for the best accuracy.
Max Heart Rate: While the "220 minus Age" formula is a good starting point (and used here if you don't provide a value), a field test or a clinical stress test provides the most accurate data for advanced athletes.
function calculateRunningZones() {
// 1. Get input values
var ageInput = document.getElementById('runner_age');
var rhrInput = document.getElementById('runner_rhr');
var mhrInput = document.getElementById('runner_mhr');
var resultContainer = document.getElementById('hr_result_container');
var tableBody = document.getElementById('zone_table_body');
var dispMhr = document.getElementById('disp_mhr');
var dispRhr = document.getElementById('disp_rhr');
var age = parseFloat(ageInput.value);
var rhr = parseFloat(rhrInput.value);
var userMhr = parseFloat(mhrInput.value);
// 2. Validation
if (isNaN(age) || age 120) {
alert("Please enter a valid age.");
return;
}
if (isNaN(rhr) || rhr = 200) {
alert("Please enter a valid Resting Heart Rate (typically between 30 and 100).");
return;
}
// 3. Determine Max Heart Rate (MHR)
var maxHeartRate;
if (!isNaN(userMhr) && userMhr > 0) {
maxHeartRate = userMhr;
} else {
maxHeartRate = 220 – age;
}
// Sanity check: MHR must be greater than RHR
if (maxHeartRate 60, but standard charts use ranges
var z2_max = Math.round((hrr * 0.70) + rhr);
// Zone 3: 70% – 80%
var z3_min = Math.round((hrr * 0.70) + rhr);
var z3_max = Math.round((hrr * 0.80) + rhr);
// Zone 4: 80% – 90%
var z4_min = Math.round((hrr * 0.80) + rhr);
var z4_max = Math.round((hrr * 0.90) + rhr);
// Zone 5: 90% – 100%
var z5_min = Math.round((hrr * 0.90) + rhr);
var z5_max = maxHeartRate;
// 6. Update UI
dispMhr.innerText = maxHeartRate;
dispRhr.innerText = rhr;
// Clear previous results
tableBody.innerHTML = ";
// Helper function to create rows
function createRow(zoneClass, zoneName, intensity, range, benefit) {
return `