Calculate your personalized heart rate training zones for effective workouts.
Your HR Training Zones
Enter your age and resting heart rate to see your zones.
Understanding Heart Rate Training Zones
Heart rate (HR) training zones are ranges of heart rate intensity that correspond to different physiological effects and training adaptations. By training within specific zones, you can target different energy systems, improve cardiovascular fitness, enhance endurance, and optimize fat burning. This calculator helps you determine these zones based on your age and resting heart rate, which are key indicators of your current fitness level.
How the Calculation Works
The most common methods for calculating HR training zones involve determining your Maximum Heart Rate (MHR) and then applying percentages to that value. A widely used formula for estimating MHR is the Tanaka formula:
MHR = 208 - (0.7 * Age)
Once your estimated MHR is calculated, Heart Rate Reserve (HRR) is often used to define the zones more precisely, especially for moderate to intense training. HRR is the difference between your MHR and your Resting Heart Rate (RHR):
HRR = MHR - RHR
Your training zones are then calculated as a percentage of your HRR, added to your RHR:
Zone 1 (Very Light/Recovery): 50-60% of HRR
Zone 2 (Light/Aerobic): 60-70% of HRR
Zone 3 (Moderate/Tempo): 70-80% of HRR
Zone 4 (Hard/Threshold): 80-90% of HRR
Zone 5 (Very Hard/Maximal): 90-100% of HRR
The lower boundary for each zone is calculated as: (HRR * Lower Percentage) + RHR
The upper boundary for each zone is calculated as: (HRR * Upper Percentage) + RHR
Interpreting Your HR Zones
Zone 1 (50-60% MHR / 50-60% HRR): Active recovery, light warm-ups, and cool-downs. Promotes blood flow and aids muscle recovery without significant cardiovascular stress.
Zone 2 (60-70% MHR / 60-70% HRR): Aerobic base building, endurance training. Improves cardiovascular efficiency and fat burning. This is where most endurance athletes spend a significant portion of their training time.
Zone 3 (70-80% MHR / 70-80% HRR): Improves aerobic capacity and lactate threshold. Often referred to as "tempo" pace, it's comfortably hard and sustainable for moderate durations.
Zone 4 (80-90% MHR / 80-90% HRR): Anaerobic threshold training. Significantly improves speed and power, but is harder to sustain. Crucial for improving performance in events.
Zone 5 (90-100% MHR / 90-100% HRR): Maximal intensity, interval training. Develops peak power and speed. Very short durations with long recovery periods. This zone is highly demanding.
Factors to Consider
This calculator provides an estimate. Your actual optimal training zones may vary due to factors like genetics, hydration, fatigue, medications, environmental conditions (heat, altitude), and specific fitness goals. It's always recommended to listen to your body and consult with a healthcare professional or certified fitness coach for personalized advice.
function calculateHRZones() {
var age = parseFloat(document.getElementById("age").value);
var restingHeartRate = parseFloat(document.getElementById("restingHeartRate").value);
var zoneResultsDiv = document.getElementById("zoneResults");
zoneResultsDiv.innerHTML = "; // Clear previous results
if (isNaN(age) || isNaN(restingHeartRate) || age <= 0 || restingHeartRate <= 0) {
zoneResultsDiv.innerHTML = 'Please enter valid positive numbers for age and resting heart rate.';
return;
}
// Calculate Maximum Heart Rate (MHR) using Tanaka formula
var maxHeartRate = 208 – (0.7 * age);
// Calculate Heart Rate Reserve (HRR)
var heartRateReserve = maxHeartRate – restingHeartRate;
// Define zone percentages for HRR
var zonesHRR = {
"Zone 1 (50-60%)": {"low": 0.50, "high": 0.60},
"Zone 2 (60-70%)": {"low": 0.60, "high": 0.70},
"Zone 3 (70-80%)": {"low": 0.70, "high": 0.80},
"Zone 4 (80-90%)": {"low": 0.80, "high": 0.90},
"Zone 5 (90-100%)": {"low": 0.90, "high": 1.00}
};
var tableHTML = '
';
tableHTML += '
Zone
Range (bpm)
% HRR
';
tableHTML += '';
for (var zoneName in zonesHRR) {
var zoneData = zonesHRR[zoneName];
var lowerBound = Math.round((heartRateReserve * zoneData.low) + restingHeartRate);
var upperBound = Math.round((heartRateReserve * zoneData.high) + restingHeartRate);
// Ensure bounds are not negative or exceed MHR significantly (due to rounding/formula)
lowerBound = Math.max(0, lowerBound);
upperBound = Math.min(Math.round(maxHeartRate), upperBound);
lowerBound = Math.min(lowerBound, upperBound); // Ensure lower bound isn't higher than upper
tableHTML += '