Minimum and Maximum Heart Rate Calculator

Minimum and Maximum Heart Rate Calculator with Training Zones body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; line-height: 1.6; color: #333; margin: 0; padding: 0; background-color: #f4f7f6; } .container { max-width: 800px; margin: 40px auto; background: #fff; padding: 30px; border-radius: 8px; box-shadow: 0 4px 15px rgba(0,0,0,0.1); } h1, h2, h3 { color: #2c3e50; } h1 { text-align: center; margin-bottom: 30px; border-bottom: 2px solid #e74c3c; padding-bottom: 10px; } .calc-box { background-color: #fcfcfc; border: 1px solid #e0e0e0; padding: 25px; border-radius: 8px; margin-bottom: 40px; } .form-group { margin-bottom: 20px; } label { display: block; margin-bottom: 8px; font-weight: 600; color: #555; } input[type="number"], select { width: 100%; padding: 12px; border: 1px solid #ddd; border-radius: 4px; font-size: 16px; box-sizing: border-box; } button { display: block; width: 100%; padding: 15px; background-color: #e74c3c; color: #fff; border: none; border-radius: 4px; font-size: 18px; font-weight: bold; cursor: pointer; transition: background-color 0.3s; } button:hover { background-color: #c0392b; } #resultsArea { display: none; margin-top: 30px; border-top: 1px solid #eee; padding-top: 20px; } .result-card { background: #fff5f5; border-left: 5px solid #e74c3c; padding: 15px; margin-bottom: 20px; } .result-card h4 { margin: 0 0 10px 0; color: #c0392b; } .big-number { font-size: 32px; font-weight: bold; color: #333; } table { width: 100%; border-collapse: collapse; margin-top: 20px; } th, td { padding: 12px; text-align: left; border-bottom: 1px solid #ddd; } th { background-color: #f8f9fa; font-weight: 700; } .zone-row:nth-child(even) { background-color: #f9f9f9; } .content-section { margin-top: 50px; } .disclaimer { font-size: 12px; color: #777; margin-top: 20px; text-align: center; } .error-msg { color: red; font-size: 14px; display: none; margin-bottom: 10px; }

Heart Rate & Training Zone Calculator

If entered, we use the Karvonen formula for higher accuracy.
Please enter a valid age between 10 and 100.

Maximum Heart Rate (MHR)

0 BPM

Target Heart Rate Zones

Based on your input, here are your optimal training intensity zones:

Zone Intensity % Target Range (BPM) Benefit

Understanding Minimum and Maximum Heart Rate

Whether you are an elite athlete or just starting your fitness journey, understanding your heart rate data is crucial for safe and effective training. This calculator determines your Maximum Heart Rate (MHR) and breaks down your target heart rate zones to help you structure your workouts.

What is Maximum Heart Rate (MHR)?

Your Maximum Heart Rate is the highest number of beats per minute (BPM) your heart can pump under maximum stress. It is largely determined by genetics and age. While it doesn't indicate fitness level, it is the anchor point for defining your training zones.

The most common formula used is:

MHR = 220 – Age

While simple, this provides a solid baseline for most general fitness purposes.

The Karvonen Method vs. Standard Method

This calculator offers two modes of calculation:

  • Standard (Age-based): Calculates zones purely as a percentage of your Maximum Heart Rate. This is useful if you do not know your resting heart rate.
  • Karvonen Formula (Heart Rate Reserve): If you input your Resting Heart Rate (RHR), the calculator uses the Karvonen formula. This method accounts for your fitness level by calculating the "Heart Rate Reserve" (HRR = MHR – RHR).

The formula for a specific target zone using Karvonen is:
Target HR = ((MHR – RHR) × %Intensity) + RHR

Heart Rate Training Zones Explained

Training in different heart rate zones triggers different physiological adaptations:

  • Zone 1 (50-60%): Very light intensity. Used for warm-ups and active recovery. Helps with blood flow and recovery.
  • Zone 2 (60-70%): Light intensity. The "Fat Burning" zone. Improves general endurance and metabolizes fat for energy.
  • Zone 3 (70-80%): Moderate intensity. Improves aerobic capacity and blood circulation efficiency.
  • Zone 4 (80-90%): Hard intensity. Increases anaerobic threshold and speed endurance. Difficult to sustain for long periods.
  • Zone 5 (90-100%): Maximum effort. Used for short intervals to improve speed and neuromuscular power.

How to Find Your Resting Heart Rate

To get the most accurate results from this calculator, measure your Resting Heart Rate (RHR) in the morning right after waking up, before getting out of bed. Count your pulse for 60 seconds. A lower RHR typically indicates better cardiovascular fitness.

Disclaimer: This calculator is for informational purposes only. It is not a medical device. Always consult with a physician before starting a new exercise program, especially if you have a history of heart conditions.
function calculateHeartRate() { // 1. Get Inputs var ageInput = document.getElementById("hrAge").value; var rhrInput = document.getElementById("hrResting").value; var errorDiv = document.getElementById("hrError"); var resultsArea = document.getElementById("resultsArea"); var displayMHR = document.getElementById("displayMHR"); var tableBody = document.querySelector("#zonesTable tbody"); // 2. Validate Age var age = parseFloat(ageInput); if (isNaN(age) || age 120) { errorDiv.style.display = "block"; errorDiv.innerHTML = "Please enter a valid age."; resultsArea.style.display = "none"; return; } // 3. Handle Resting Heart Rate (Optional) var rhr = parseFloat(rhrInput); var useKarvonen = false; if (!isNaN(rhr) && rhr > 20 && rhr < 200) { useKarvonen = true; } errorDiv.style.display = "none"; // 4. Calculate Maximum Heart Rate (Fox Formula) var mhr = 220 – age; // 5. Update UI for MHR displayMHR.innerHTML = Math.round(mhr); resultsArea.style.display = "block"; // 6. Define Zones Data // Zones: 1 (50-60), 2 (60-70), 3 (70-80), 4 (80-90), 5 (90-100) var zones = [ { id: 1, minPct: 0.50, maxPct: 0.60, name: "Zone 1", desc: "Warm Up / Recovery" }, { id: 2, minPct: 0.60, maxPct: 0.70, name: "Zone 2", desc: "Fat Burning / Endurance" }, { id: 3, minPct: 0.70, maxPct: 0.80, name: "Zone 3", desc: "Aerobic Capacity" }, { id: 4, minPct: 0.80, maxPct: 0.90, name: "Zone 4", desc: "Anaerobic Threshold" }, { id: 5, minPct: 0.90, maxPct: 1.00, name: "Zone 5", desc: "Maximum Effort" } ]; // 7. Clear previous table rows tableBody.innerHTML = ""; // 8. Loop through zones and calculate specific BPM ranges for (var i = 0; i < zones.length; i++) { var zone = zones[i]; var minBPM, maxBPM; if (useKarvonen) { // Karvonen Formula: ((MHR – RHR) * %) + RHR var hrr = mhr – rhr; minBPM = (hrr * zone.minPct) + rhr; maxBPM = (hrr * zone.maxPct) + rhr; } else { // Standard Formula: MHR * % minBPM = mhr * zone.minPct; maxBPM = mhr * zone.maxPct; } // Round values minBPM = Math.round(minBPM); maxBPM = Math.round(maxBPM); // Create Table Row var row = document.createElement("tr"); row.className = "zone-row"; row.innerHTML = "" + zone.name + "" + "" + Math.round(zone.minPct * 100) + "% – " + Math.round(zone.maxPct * 100) + "%" + "" + minBPM + " – " + maxBPM + " bpm" + "" + zone.desc + ""; tableBody.appendChild(row); } }

Leave a Comment