Calculate your optimal heart rate training zones to maximize your fitness results, inspired by the methodologies used by active communities and endurance athletes.
Leave blank for the standard formula. Enter value for the more accurate Karvonen method.
Your Maximum Heart Rate (MHR)
0 BPM
Zone
Intensity
Target Range (BPM)
Benefit
Understanding Your Target Heart Rate
Whether you are training for a marathon, trying to lose weight, or simply maintaining an active lifestyle, understanding your heart rate zones is critical for efficiency. This calculator uses two primary methods to determine your target zones: the standard Maximum Heart Rate (MHR) formula and the more personalized Karvonen formula.
Why Calculate Heart Rate Zones?
Training blindly without monitoring your intensity often leads to the "junk mile" phenomenon—working too hard to recover properly but not hard enough to trigger significant physiological adaptation. By defining specific target heart rate zones (THR), you can categorize your workouts into specific purposes:
Recovery (Zone 1): Promotes blood flow and helps muscles repair.
Fat Burning (Zone 2): Teaches the body to utilize fat as a primary fuel source.
Aerobic (Zone 3): Increases cardiovascular endurance and lung capacity.
Anaerobic (Zone 4): Improves speed endurance and lactate threshold.
VO2 Max (Zone 5): Increases maximum sprinting power and neuromuscular coordination.
Pro Tip: For the most accurate results, measure your Resting Heart Rate (RHR) in the morning before getting out of bed. This allows the calculator to use the Karvonen formula, which accounts for your specific fitness level.
The Formulas Used
There are varying ways to estimate heart rate zones. This tool adapts based on the data you provide:
1. Standard Method (Fox Formula)
This is the simplest estimation, calculated as 220 - Age. It provides a baseline Maximum Heart Rate (MHR). Your zones are then calculated as straight percentages of this maximum number. This is useful for beginners but assumes a generic fitness profile.
2. The Karvonen Method
Used widely by platforms like Active.com and professional coaches, this method incorporates your Heart Rate Reserve (HRR). The HRR is the difference between your Maximum Heart Rate and your Resting Heart Rate.
Because it factors in your resting heart rate (which lowers as you get fitter), the Karvonen method often prescribes slightly higher, more accurate target zones for fit individuals compared to the standard method.
How to Use These Zones
Once you have your numbers above, structure your weekly training plan. A balanced plan for an active individual typically looks like this:
80% of training: Zones 1 and 2. This builds the aerobic base and prevents burnout.
15% of training: Zone 3 and low Zone 4. Tempo runs or sustained efforts.
5% of training: High Zone 4 and Zone 5. Interval training and sprints.
Always consult with a physician before starting a new exercise program, especially if you have a history of heart conditions.
function calculateHeartRate() {
// Get Inputs
var ageInput = document.getElementById('age');
var rhrInput = document.getElementById('restingHR');
var resultDiv = document.getElementById('result');
var maxHRDisplay = document.getElementById('maxHRDisplay');
var methodDisplay = document.getElementById('methodUsed');
var tableBody = document.getElementById('zoneTableBody');
var age = parseFloat(ageInput.value);
var rhr = parseFloat(rhrInput.value);
// Validation
if (!age || age 120) {
alert("Please enter a valid age between 1 and 120.");
return;
}
// Calculate Max Heart Rate (Fox Formula)
var maxHR = 220 – age;
var method = "Standard Formula";
var useKarvonen = false;
// Check if RHR is valid for Karvonen
if (rhr && rhr > 30 && rhr < 120) {
method = "Karvonen Formula (Personalized)";
useKarvonen = true;
} else if (rhrInput.value !== "") {
// User typed something invalid but not empty
alert("Please enter a valid Resting Heart Rate (30-120) or leave it blank.");
return;
}
// Display Max HR and Method
maxHRDisplay.innerHTML = maxHR + " BPM";
methodDisplay.innerHTML = "Method: " + method;
// Zone Definitions
// Format: [min%, max%, name, benefit, cssClass]
var zones = [
[0.50, 0.60, "Zone 1", "Warm up / Recovery", "zone-row-1"],
[0.60, 0.70, "Zone 2", "Fat Burning / Basic Endurance", "zone-row-2"],
[0.70, 0.80, "Zone 3", "Aerobic / Cardiovascular Fitness", "zone-row-3"],
[0.80, 0.90, "Zone 4", "Anaerobic / Hardcore Training", "zone-row-4"],
[0.90, 1.00, "Zone 5", "Maximum Effort / VO2 Max", "zone-row-5"]
];
var tableHTML = "";
for (var i = 0; i < zones.length; i++) {
var minPct = zones[i][0];
var maxPct = zones[i][1];
var zoneName = zones[i][2];
var benefit = zones[i][3];
var cssClass = zones[i][4];
var minBPM, maxBPM;
if (useKarvonen) {
// Karvonen: Target = ((MaxHR – RHR) * %Intensity) + RHR
var hrr = maxHR – rhr;
minBPM = Math.round((hrr * minPct) + rhr);
maxBPM = Math.round((hrr * maxPct) + rhr);
} else {
// Standard: Target = MaxHR * %Intensity
minBPM = Math.round(maxHR * minPct);
maxBPM = Math.round(maxHR * maxPct);
}
tableHTML += '