Maximum Heart Rate Zone Calculator

Maximum Heart Rate Zone Calculator .hr-calculator-container { max-width: 800px; margin: 0 auto; padding: 30px; background-color: #ffffff; border-radius: 12px; box-shadow: 0 4px 20px rgba(0,0,0,0.1); font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; color: #333; } .hr-header { text-align: center; margin-bottom: 30px; } .hr-header h2 { margin: 0; color: #e74c3c; font-size: 28px; } .hr-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 25px; } @media (max-width: 600px) { .hr-form-grid { grid-template-columns: 1fr; } } .hr-input-group { display: flex; flex-direction: column; } .hr-input-group label { font-weight: 600; margin-bottom: 8px; color: #555; } .hr-input-group input, .hr-input-group select { padding: 12px; border: 1px solid #ddd; border-radius: 6px; font-size: 16px; transition: border-color 0.3s; } .hr-input-group input:focus { border-color: #e74c3c; outline: none; } .hr-btn { width: 100%; padding: 15px; background-color: #e74c3c; color: white; border: none; border-radius: 6px; font-size: 18px; font-weight: bold; cursor: pointer; transition: background-color 0.3s; } .hr-btn:hover { background-color: #c0392b; } .hr-results { margin-top: 30px; padding: 20px; background-color: #f9f9f9; border-radius: 8px; border-left: 5px solid #e74c3c; display: none; } .hr-summary { text-align: center; margin-bottom: 20px; } .mhr-display { font-size: 36px; font-weight: bold; color: #e74c3c; } .zone-table { width: 100%; border-collapse: collapse; margin-top: 15px; } .zone-table th, .zone-table td { padding: 12px; text-align: left; border-bottom: 1px solid #eee; } .zone-table th { background-color: #e74c3c; color: white; } .zone-row:nth-child(even) { background-color: #fff; } .zone-desc { font-size: 0.9em; color: #666; } .hr-article { margin-top: 40px; line-height: 1.6; color: #444; } .hr-article h3 { color: #2c3e50; margin-top: 25px; border-bottom: 2px solid #e74c3c; padding-bottom: 10px; display: inline-block; } .info-box { background-color: #e8f6f3; border-left: 4px solid #1abc9c; padding: 15px; margin: 15px 0; }

Maximum Heart Rate & Zone Calculator

Calculate your training zones using Standard or Karvonen methods.

Enter to use Karvonen Formula
Fox Formula (220 – Age) Tanaka Formula (208 – 0.7 × Age) Gulati (Women: 206 – 0.88 × Age)

Estimated Maximum Heart Rate (MHR)

0 BPM

Method: Standard Percentage

Zone Intensity Heart Rate Range (BPM)

Understanding Your Heart Rate Zones

Training based on heart rate zones is one of the most effective ways to improve cardiovascular fitness, burn fat, and increase endurance. Instead of guessing your effort level, heart rate monitoring provides objective data on your workout intensity. This calculator helps you determine your maximum heart rate (MHR) and breaks it down into five specific training zones.

Pro Tip: If you input your Resting Heart Rate, this calculator automatically switches to the Karvonen Method. This method is generally considered more accurate for individuals with higher or lower than average fitness levels because it takes your heart rate reserve (HRR) into account.

The Five Training Zones Explained

  • Zone 1 (Very Light): 50-60%. Used for warm-ups, cool-downs, and active recovery. You should be able to hold a conversation effortlessly.
  • Zone 2 (Light): 60-70%. The "Fat Burning" zone. Great for building general endurance and burning calories primarily from fat stores.
  • Zone 3 (Moderate): 70-80%. The aerobic zone. Improves blood circulation and skeletal muscle efficiency. You will breathe harder but can still speak in short sentences.
  • Zone 4 (Hard): 80-90%. The anaerobic threshold. This improves high-speed endurance and lactic acid tolerance. Breathing is heavy; conversation is difficult.
  • Zone 5 (Maximum): 90-100%. Maximum effort for short bursts. Used for interval training to improve speed and neuromuscular power. Sustainable for only short periods.

Formulas Used

This tool supports three major formulas for estimating Maximum Heart Rate (MHR):

  1. Fox Formula: 220 - Age. The most common standard, though it can be slightly inaccurate for older or very fit individuals.
  2. Tanaka Formula: 208 - (0.7 × Age). Often cited as more accurate for a wider range of age groups.
  3. Gulati Formula: 206 - (0.88 × Age). Specifically researched for women to provide a more accurate MHR estimate.
function calculateZones() { // Get Inputs var ageInput = document.getElementById("hr-age"); var restingInput = document.getElementById("hr-resting"); var formulaSelect = document.getElementById("hr-formula"); var resultContainer = document.getElementById("hr-result-container"); var mhrDisplay = document.getElementById("mhr-value"); var methodDisplay = document.getElementById("method-used"); var tableBody = document.getElementById("zone-table-body"); var age = parseFloat(ageInput.value); var restingHR = parseFloat(restingInput.value); var formula = formulaSelect.value; // Validation if (isNaN(age) || age 120) { alert("Please enter a valid age between 10 and 120."); return; } // Calculate MHR var mhr = 0; if (formula === "tanaka") { mhr = 208 – (0.7 * age); } else if (formula === "gulati") { mhr = 206 – (0.88 * age); } else { // Default Fox mhr = 220 – age; } mhr = Math.round(mhr); // Calculate Zones // Zones percentages: 50-60, 60-70, 70-80, 80-90, 90-100 var zones = []; var methodText = "Calculation Method: Standard Percentage of MHR"; var isKarvonen = false; if (!isNaN(restingHR) && restingHR > 0 && restingHR < mhr) { // Use Karvonen Method // Target HR = ((MHR – Resting) * %) + Resting isKarvonen = true; methodText = "Calculation Method: Karvonen Formula (Heart Rate Reserve)"; var hrr = mhr – restingHR; zones = [ { name: "Zone 1", desc: "Very Light / Recovery", minPct: 0.50, maxPct: 0.60 }, { name: "Zone 2", desc: "Light / Fat Burn", minPct: 0.60, maxPct: 0.70 }, { name: "Zone 3", desc: "Moderate / Aerobic", minPct: 0.70, maxPct: 0.80 }, { name: "Zone 4", desc: "Hard / Anaerobic", minPct: 0.80, maxPct: 0.90 }, { name: "Zone 5", desc: "Maximum / VO2 Max", minPct: 0.90, maxPct: 1.00 } ]; // Calculate Karvonen ranges for (var i = 0; i < zones.length; i++) { zones[i].minBpm = Math.round((hrr * zones[i].minPct) + restingHR); zones[i].maxBpm = Math.round((hrr * zones[i].maxPct) + restingHR); } } else { // Standard Percentage Method // Target HR = MHR * % zones = [ { name: "Zone 1", desc: "Very Light / Recovery", minPct: 0.50, maxPct: 0.60 }, { name: "Zone 2", desc: "Light / Fat Burn", minPct: 0.60, maxPct: 0.70 }, { name: "Zone 3", desc: "Moderate / Aerobic", minPct: 0.70, maxPct: 0.80 }, { name: "Zone 4", desc: "Hard / Anaerobic", minPct: 0.80, maxPct: 0.90 }, { name: "Zone 5", desc: "Maximum / VO2 Max", minPct: 0.90, maxPct: 1.00 } ]; // Calculate Standard ranges for (var i = 0; i < zones.length; i++) { zones[i].minBpm = Math.round(mhr * zones[i].minPct); zones[i].maxBpm = Math.round(mhr * zones[i].maxPct); } } // Render Results mhrDisplay.innerText = mhr; methodDisplay.innerText = methodText; tableBody.innerHTML = ""; for (var j = 0; j < zones.length; j++) { var row = "" + "" + zones[j].name + "" + zones[j].desc + "" + "" + Math.round(zones[j].minPct * 100) + "% – " + Math.round(zones[j].maxPct * 100) + "%" + "" + zones[j].minBpm + " – " + zones[j].maxBpm + " BPM" + ""; tableBody.innerHTML += row; } // Show result div resultContainer.style.display = "block"; // Scroll to results resultContainer.scrollIntoView({ behavior: 'smooth' }); }

Leave a Comment