Ftp Heart Rate Calculator

FTP Heart Rate Calculator body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; line-height: 1.6; color: #333; max-width: 800px; margin: 0 auto; padding: 20px; } .calculator-container { background: #f8f9fa; border: 1px solid #e9ecef; border-radius: 8px; padding: 30px; margin: 30px 0; box-shadow: 0 4px 6px rgba(0,0,0,0.05); } .calc-title { text-align: center; margin-bottom: 25px; color: #2c3e50; } .input-group { margin-bottom: 20px; } .input-group label { display: block; margin-bottom: 8px; font-weight: 600; color: #495057; } .input-group input { width: 100%; padding: 12px; border: 1px solid #ced4da; border-radius: 4px; font-size: 16px; box-sizing: border-box; } .input-group input:focus { border-color: #007bff; outline: none; } .calc-btn { width: 100%; padding: 14px; background-color: #d63031; color: white; border: none; border-radius: 4px; font-size: 18px; font-weight: bold; cursor: pointer; transition: background-color 0.2s; } .calc-btn:hover { background-color: #c0392b; } #result-section { margin-top: 30px; display: none; animation: fadeIn 0.5s; } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } .result-table { width: 100%; border-collapse: collapse; margin-top: 20px; background: white; } .result-table th, .result-table td { padding: 12px 15px; border: 1px solid #ddd; text-align: left; } .result-table th { background-color: #2c3e50; color: white; } .result-table tr:nth-child(even) { background-color: #f2f2f2; } .zone-tag { display: inline-block; padding: 4px 8px; border-radius: 4px; font-size: 0.85em; font-weight: bold; color: white; } .z1 { background-color: #bdc3c7; color: #333; } .z2 { background-color: #3498db; } .z3 { background-color: #2ecc71; } .z4 { background-color: #f1c40f; color: #333; } .z5 { background-color: #e67e22; } .z6 { background-color: #e74c3c; } .z7 { background-color: #8e44ad; } article { margin-top: 50px; } h2 { color: #2c3e50; margin-top: 40px; border-bottom: 2px solid #eee; padding-bottom: 10px; } p, li { margin-bottom: 15px; } .info-box { background-color: #e8f4fc; padding: 15px; border-left: 5px solid #3498db; margin: 20px 0; }

FTP Heart Rate Calculator

Based on Joe Friel's 7-Zone System for Cycling

Enter your average heart rate from a 20-minute time trial.

Your Training Zones

Zone Intensity Heart Rate Range (BPM)
function calculateZones() { var lthrInput = document.getElementById("lthrInput"); var lthr = parseFloat(lthrInput.value); // Validation if (isNaN(lthr) || lthr 250) { alert("Please enter a valid Heart Rate (typically between 100 and 220 bpm)."); return; } // Calculation logic based on Joe Friel's Cycling Zones // Zone 1: 106% var z1_upper = Math.floor(lthr * 0.81); var z2_lower = Math.ceil(lthr * 0.81); var z2_upper = Math.floor(lthr * 0.89); var z3_lower = Math.ceil(lthr * 0.90); var z3_upper = Math.floor(lthr * 0.93); var z4_lower = Math.ceil(lthr * 0.94); var z4_upper = Math.floor(lthr * 0.99); var z5a_lower = Math.ceil(lthr * 1.00); var z5a_upper = Math.floor(lthr * 1.02); var z5b_lower = Math.ceil(lthr * 1.03); var z5b_upper = Math.floor(lthr * 1.06); var z5c_lower = Math.ceil(lthr * 1.06); // Generate Table Rows var tableHTML = "; // Zone 1 tableHTML += ''; tableHTML += 'Zone 1'; tableHTML += 'Active Recovery'; tableHTML += 'Below ' + z1_upper + ' bpm'; tableHTML += ''; // Zone 2 tableHTML += ''; tableHTML += 'Zone 2'; tableHTML += 'Aerobic Endurance'; tableHTML += '' + z2_lower + ' – ' + z2_upper + ' bpm'; tableHTML += ''; // Zone 3 tableHTML += ''; tableHTML += 'Zone 3'; tableHTML += 'Tempo'; tableHTML += '' + z3_lower + ' – ' + z3_upper + ' bpm'; tableHTML += ''; // Zone 4 tableHTML += ''; tableHTML += 'Zone 4'; tableHTML += 'Sub-Threshold'; tableHTML += '' + z4_lower + ' – ' + z4_upper + ' bpm'; tableHTML += ''; // Zone 5a tableHTML += ''; tableHTML += 'Zone 5a'; tableHTML += 'Super-Threshold'; tableHTML += '' + z5a_lower + ' – ' + z5a_upper + ' bpm'; tableHTML += ''; // Zone 5b tableHTML += ''; tableHTML += 'Zone 5b'; tableHTML += 'Aerobic Capacity (VO2 Max)'; tableHTML += '' + z5b_lower + ' – ' + z5b_upper + ' bpm'; tableHTML += ''; // Zone 5c tableHTML += ''; tableHTML += 'Zone 5c'; tableHTML += 'Anaerobic Capacity'; tableHTML += 'Above ' + z5c_lower + ' bpm'; tableHTML += ''; document.getElementById("zoneTableBody").innerHTML = tableHTML; document.getElementById("result-section").style.display = "block"; }

FTP Heart Rate Calculator: Master Your Cycling Training Zones

Training with power meters is the gold standard in modern cycling, but Heart Rate (HR) remains a vital and accessible metric for athletes of all levels. To train effectively using a heart rate monitor, you must determine your zones based on your Functional Threshold Heart Rate (FTHR), often referred to as Lactate Threshold Heart Rate (LTHR).

This FTP Heart Rate Calculator uses Joe Friel's widely accepted zone system to calculate your precise training intensities based on your threshold physiology rather than the less accurate "Max Heart Rate" formula.

Note: FTP (Functional Threshold Power) refers to wattage, while FTHR refers to the Heart Rate corresponding to that threshold effort. This calculator helps you align your HR zones with your FTP effort.

What is FTHR / LTHR?

Functional Threshold Heart Rate (FTHR) is the average heart rate you can sustain during an all-out effort for approximately one hour. This is the physiological "red line" where your body shifts from primarily aerobic metabolism to anaerobic metabolism, causing lactate to accumulate faster than it can be cleared.

Knowing this number allows you to set training zones that are personalized to your current fitness level, ensuring you aren't training too hard on easy days or too easy on hard days.

How to Determine Your FTHR

The most practical way to find your FTHR is through a 30-minute solo time trial test. You can do this on a flat stretch of road or an indoor trainer.

  1. Warm-up: 15–20 minutes of easy riding with a few short bursts of intensity.
  2. The Test: Ride for 30 minutes at the maximum sustained pace you can hold. It should be a steady, hard effort.
  3. The Data: Press the "Lap" button on your bike computer 10 minutes into the ride.
  4. The Result: Your average heart rate for the last 20 minutes of this 30-minute ride is your estimated LTHR/FTHR.

Once you have this number, enter it into the calculator above to define your zones.

Understanding the 7-Zone System

Unlike standard 5-zone models based on max heart rate, the FTHR model splits the higher intensities to provide more granularity for competitive training.

  • Zone 1 (Active Recovery): Very easy riding used for warming up, cooling down, or recovery days. Promotes blood flow without fatigue.
  • Zone 2 (Endurance): The "all-day" pace. Training here builds mitochondrial density and fat-burning efficiency.
  • Zone 3 (Tempo): A spirited pace often used in group rides. It requires focus but isn't maximal.
  • Zone 4 (Sub-Threshold): Just below your FTP. This is the "sweet spot" for raising your threshold power.
  • Zone 5a (Super-Threshold): Slightly above your FTP. Intervals here are very painful and typically last 8–20 minutes.
  • Zone 5b (Aerobic Capacity / VO2 Max): Very hard efforts lasting 3–8 minutes. This targets your maximum oxygen uptake.
  • Zone 5c (Anaerobic Capacity): Sprinting or short steep climbs. These efforts last less than a few minutes and rely on stored energy sources.

Why Use FTHR instead of Max Heart Rate?

Calculating zones based on Max Heart Rate (e.g., 220 minus age) is often inaccurate because max heart rate varies significantly between individuals of the same age and doesn't reflect fitness. FTHR is a performance metric; it changes as you get fitter. By anchoring your zones to your threshold, your training zones scale with your actual fitness, ensuring your workouts remain effective throughout the season.

Leave a Comment