Heart Rate Zones Lactate Threshold Calculator

Lactate Threshold Heart Rate (LTHR) Zone Calculator

Your LTHR is the highest heart rate you can maintain for a 30-60 minute steady effort.

Your Personalized Training Zones

Zone Description BPM Range

What is Lactate Threshold Heart Rate (LTHR)?

Lactate Threshold Heart Rate (LTHR) is arguably the most important metric for endurance athletes like runners, cyclists, and triathletes. Unlike Maximum Heart Rate (Max HR), which is largely determined by genetics and age, LTHR represents the specific physiological point where your body produces lactic acid faster than it can clear it. Training based on LTHR is significantly more accurate than using age-based formulas like "220 minus age."

How to Find Your LTHR

The most common field test to find your LTHR is the 30-minute Time Trial. After a thorough warm-up, perform a solo effort at the highest intensity you can sustain for 30 minutes. To find your LTHR, take your average heart rate for the final 20 minutes of that 30-minute effort. This number is your threshold.

Understanding the 7 Training Zones (Joe Friel Method)

This calculator uses the Joe Friel method, which breaks down training intensities into specific physiological adaptations:

  • Zone 1 (Recovery): Very light intensity. Used for active recovery after hard days.
  • Zone 2 (Aerobic): Building base endurance and teaching the body to burn fat efficiently.
  • Zone 3 (Tempo): Moderate intensity. Improves aerobic capacity and muscular endurance.
  • Zone 4 (Sub-Threshold): Just below your threshold. Crucial for increasing your LTHR.
  • Zone 5a (Super-Threshold): Pushing just beyond your lactate threshold to improve lactate clearance.
  • Zone 5b (Aerobic Capacity): High intensity (VO2 Max) intervals to improve oxygen consumption.
  • Zone 5c (Anaerobic Capacity): Max effort sprints. Focuses on explosive power and neuromuscular speed.

Example Calculation

If an athlete performs a time trial and finds their LTHR is 170 BPM, their zones would be calculated as follows:

  • Zone 1: Below 145 BPM (85% of 170)
  • Zone 4: 162 – 168 BPM (95% to 99% of 170)
  • Zone 5b: 175 – 180 BPM (103% to 106% of 170)
function calculateLTHRZones() { var lthr = parseFloat(document.getElementById('lthr_val').value); var resultsArea = document.getElementById('results_area'); var tableBody = document.getElementById('zone_table_body'); if (isNaN(lthr) || lthr 220) { alert("Please enter a valid Heart Rate between 40 and 220 BPM."); return; } var zones = [ { name: "Zone 1", desc: "Recovery", min: 0, max: 0.849, color: "#e3f2fd" }, { name: "Zone 2", desc: "Aerobic / Base", min: 0.85, max: 0.899, color: "#fff" }, { name: "Zone 3", desc: "Tempo", min: 0.90, max: 0.949, color: "#f9f9f9" }, { name: "Zone 4", desc: "Sub-Threshold", min: 0.95, max: 0.999, color: "#fff" }, { name: "Zone 5a", desc: "Super-Threshold", min: 1.00, max: 1.029, color: "#f9f9f9" }, { name: "Zone 5b", desc: "Aerobic Capacity (VO2)", min: 1.03, max: 1.069, color: "#fff" }, { name: "Zone 5c", desc: "Anaerobic Capacity", min: 1.07, max: 1.20, color: "#f9f9f9" } ]; var html = ""; for (var i = 0; i < zones.length; i++) { var z = zones[i]; var rangeText = ""; if (z.name === "Zone 1") { rangeText = "Below " + Math.round(lthr * 0.85) + " BPM"; } else if (z.name === "Zone 5c") { rangeText = "Above " + Math.round(lthr * 1.06) + " BPM"; } else { rangeText = Math.round(lthr * z.min) + " – " + Math.round(lthr * z.max) + " BPM"; } html += ""; html += "" + z.name + ""; html += "" + z.desc + ""; html += "" + rangeText + ""; html += ""; } tableBody.innerHTML = html; resultsArea.style.display = "block"; // Smooth scroll to results resultsArea.scrollIntoView({ behavior: 'smooth', block: 'start' }); }

Leave a Comment