Calculate Zones Heart Rate

.hr-calc-container { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; max-width: 800px; margin: 20px auto; padding: 25px; border: 1px solid #e1e4e8; border-radius: 12px; background-color: #ffffff; box-shadow: 0 4px 6px rgba(0,0,0,0.05); } .hr-calc-header { text-align: center; margin-bottom: 25px; } .hr-calc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 20px; } @media (max-width: 600px) { .hr-calc-grid { grid-template-columns: 1fr; } } .hr-input-group { display: flex; flex-direction: column; } .hr-input-group label { font-weight: 600; margin-bottom: 8px; color: #333; } .hr-input-group input { padding: 12px; border: 1px solid #ccc; border-radius: 6px; font-size: 16px; } .hr-calc-btn { width: 100%; background-color: #e63946; color: white; padding: 15px; border: none; border-radius: 6px; font-size: 18px; font-weight: bold; cursor: pointer; transition: background 0.3s; } .hr-calc-btn:hover { background-color: #c1121f; } .hr-results { margin-top: 30px; display: none; } .hr-results-table { width: 100%; border-collapse: collapse; margin-top: 15px; } .hr-results-table th, .hr-results-table td { padding: 12px; text-align: left; border-bottom: 1px solid #eee; } .hr-results-table th { background-color: #f8f9fa; } .zone-1 { border-left: 5px solid #a8dadc; } .zone-2 { border-left: 5px solid #457b9d; } .zone-3 { border-left: 5px solid #f1faee; background-color: #f1faee; } .zone-3 { border-left: 5px solid #ffb703; } .zone-4 { border-left: 5px solid #fb8500; } .zone-5 { border-left: 5px solid #e63946; } .hr-article { margin-top: 40px; line-height: 1.6; color: #444; } .hr-article h2 { color: #222; margin-top: 25px; } .hr-article h3 { color: #333; margin-top: 20px; }

Heart Rate Training Zone Calculator

Calculate your personalized cardiovascular training zones using the Karvonen Formula.

Your Personalized Results

Maximum Heart Rate (Estimated): BPM

Heart Rate Reserve: BPM

Zone Intensity Target Range (BPM) Benefit
Zone 1 50% – 60% Warm-up / Recovery
Zone 2 60% – 70% Fat Burning / Endurance
Zone 3 70% – 80% Aerobic / Fitness
Zone 4 80% – 90% Anaerobic / Performance
Zone 5 90% – 100% Maximum Effort / Speed

Understanding Heart Rate Zones

Training with heart rate zones allows you to be precise with your exercise intensity. Instead of guessing how hard you are working, you can use your heart rate as a biological tachometer. This calculator utilizes the Karvonen Formula, which is widely considered more accurate than simple percentage-of-max-HR formulas because it factors in your resting heart rate (cardiovascular fitness level).

What is the Karvonen Formula?

The Karvonen formula calculates your Heart Rate Reserve (HRR) to determine your training intensity. The basic math works like this:

  • Max HR: 220 – Age
  • Heart Rate Reserve (HRR): Max HR – Resting HR
  • Target Heart Rate: (HRR × % Intensity) + Resting HR

The Five Training Zones Explained

Zone 1: Very Light (50-60% HRR)

This zone is used for warm-ups, cool-downs, and active recovery. It improves overall health but doesn't significantly build cardiovascular endurance. It's perfect for those starting an exercise program.

Zone 2: Light / Endurance (60-70% HRR)

Often called the "fat-burning zone," Zone 2 is the foundation of endurance training. At this intensity, your body becomes more efficient at oxidizing fat and building capillary density. You should be able to hold a full conversation in this zone.

Zone 3: Moderate / Aerobic (70-80% HRR)

This is where you improve your aerobic capacity and cardiovascular strength. It makes your heart stronger and more efficient at pumping blood. Conversation becomes difficult and shorter sentences are the norm.

Zone 4: Hard / Anaerobic (80-90% HRR)

In Zone 4, you are training near your lactate threshold. Your body begins to produce lactic acid faster than it can clear it. This zone improves your ability to sustain high-speed performance and increases your "pain tolerance" for fast efforts.

Zone 5: Maximum (90-100% HRR)

This is all-out effort. It is used for interval training and high-intensity sprints. Training here improves your VO2 Max (the maximum amount of oxygen your body can use during exercise). It is sustainable only for very short bursts.

How to Measure Your Resting Heart Rate

For the most accurate results, measure your resting heart rate first thing in the morning before getting out of bed. Place two fingers on your wrist (radial pulse) or neck (carotid pulse), count the beats for 60 seconds, or count for 15 seconds and multiply by four.

function calculateHRZones() { var age = document.getElementById("hrAge").value; var restingHR = document.getElementById("hrRest").value; if (!age || age <= 0 || !restingHR || restingHR <= 0) { alert("Please enter valid numbers for both age and resting heart rate."); return; } var mhr = 220 – age; var hrr = mhr – restingHR; if (hrr <= 0) { alert("Resting heart rate cannot be higher than maximum heart rate. Please check your inputs."); return; } // Zone 1: 50-60% var z1Low = Math.round((hrr * 0.50) + parseInt(restingHR)); var z1High = Math.round((hrr * 0.60) + parseInt(restingHR)); // Zone 2: 60-70% var z2Low = Math.round((hrr * 0.60) + parseInt(restingHR)); var z2High = Math.round((hrr * 0.70) + parseInt(restingHR)); // Zone 3: 70-80% var z3Low = Math.round((hrr * 0.70) + parseInt(restingHR)); var z3High = Math.round((hrr * 0.80) + parseInt(restingHR)); // Zone 4: 80-90% var z4Low = Math.round((hrr * 0.80) + parseInt(restingHR)); var z4High = Math.round((hrr * 0.90) + parseInt(restingHR)); // Zone 5: 90-100% var z5Low = Math.round((hrr * 0.90) + parseInt(restingHR)); var z5High = Math.round((hrr * 1.00) + parseInt(restingHR)); // Display values document.getElementById("mhrValue").innerText = mhr; document.getElementById("hrrValue").innerText = hrr; document.getElementById("z1Range").innerText = z1Low + " – " + z1High + " BPM"; document.getElementById("z2Range").innerText = z2Low + " – " + z2High + " BPM"; document.getElementById("z3Range").innerText = z3Low + " – " + z3High + " BPM"; document.getElementById("z4Range").innerText = z4Low + " – " + z4High + " BPM"; document.getElementById("z5Range").innerText = z5Low + " – " + z5High + " BPM"; document.getElementById("hrResults").style.display = "block"; // Smooth scroll to results document.getElementById("hrResults").scrollIntoView({ behavior: 'smooth' }); }

Leave a Comment