Strava Heart Rate Zone Calculator
This calculator helps you understand how Strava estimates your heart rate zones, which are crucial for effective training. Strava primarily uses two methods to determine your heart rate zones: maximum heart rate (Max HR) and heart rate reserve (HRR).
Heart Rate Zones
"; // Max HR Method Output htmlOutput += "Zones Based on Maximum Heart Rate (% of Max HR)
"; htmlOutput += "";
htmlOutput += "Zone 1: Very Light (50-60% of Max HR)";
htmlOutput += "" + Math.round(zone1MaxHR) + " – " + Math.round(zone2MaxHR) + " bpm";
htmlOutput += "
";
htmlOutput += "";
htmlOutput += "Zone 2: Light (60-70% of Max HR)";
htmlOutput += "" + Math.round(zone2MaxHR) + " – " + Math.round(zone3MaxHR) + " bpm";
htmlOutput += "
";
htmlOutput += "";
htmlOutput += "Zone 3: Moderate (70-80% of Max HR)";
htmlOutput += "" + Math.round(zone3MaxHR) + " – " + Math.round(zone4MaxHR) + " bpm";
htmlOutput += "
";
htmlOutput += "";
htmlOutput += "Zone 4: Hard (80-90% of Max HR)";
htmlOutput += "" + Math.round(zone4MaxHR) + " – " + Math.round(zone5MaxHR) + " bpm";
htmlOutput += "
";
htmlOutput += "";
htmlOutput += "Zone 5: Maximum (90-100% of Max HR)";
htmlOutput += "" + Math.round(zone5MaxHR) + " – " + Math.round(maxHeartRate) + " bpm";
htmlOutput += "
";
// HRR Method Output
htmlOutput += "Zones Based on Heart Rate Reserve (% of HRR)
"; htmlOutput += "";
htmlOutput += "Zone 1: Very Light (50-60% of HRR + Rest)";
htmlOutput += "" + Math.round(zone1HRR_low) + " – " + Math.round(zone1HRR_high) + " bpm";
htmlOutput += "
";
htmlOutput += "";
htmlOutput += "Zone 2: Light (60-70% of HRR + Rest)";
htmlOutput += "" + Math.round(zone2HRR_low) + " – " + Math.round(zone2HRR_high) + " bpm";
htmlOutput += "
";
htmlOutput += "";
htmlOutput += "Zone 3: Moderate (70-82% of HRR + Rest)";
htmlOutput += "" + Math.round(zone3HRR_low) + " – " + Math.round(zone3HRR_high) + " bpm";
htmlOutput += "
";
htmlOutput += "";
htmlOutput += "Zone 4: Hard (82-95% of HRR + Rest)";
htmlOutput += "" + Math.round(zone4HRR_low) + " – " + Math.round(zone4HRR_high) + " bpm";
htmlOutput += "
";
htmlOutput += "";
htmlOutput += "Zone 5: Maximum (95-100% of HRR + Rest)";
htmlOutput += "" + Math.round(zone5HRR_low) + " – " + Math.round(zone5HRR_high) + " bpm";
htmlOutput += "
";
resultsDiv.innerHTML = htmlOutput;
}
.strava-heart-rate-zones-calculator {
font-family: sans-serif;
padding: 20px;
border: 1px solid #ccc;
border-radius: 8px;
max-width: 600px;
margin: 20px auto;
}
.strava-heart-rate-zones-calculator h2, .strava-heart-rate-zones-calculator h3, .strava-heart-rate-zones-calculator h4 {
color: #333;
margin-bottom: 15px;
}
.input-section {
margin-bottom: 15px;
}
.input-section label {
display: block;
margin-bottom: 5px;
font-weight: bold;
}
.input-section input[type="number"] {
width: calc(100% – 22px);
padding: 10px;
border: 1px solid #ccc;
border-radius: 4px;
font-size: 1em;
}
button {
background-color: #007bff;
color: white;
padding: 10px 20px;
border: none;
border-radius: 4px;
cursor: pointer;
font-size: 1em;
transition: background-color 0.3s ease;
}
button:hover {
background-color: #0056b3;
}
.results-section {
margin-top: 25px;
border-top: 1px solid #eee;
padding-top: 20px;
}
.results-section h3 {
margin-bottom: 20px;
}
.zone-item {
background-color: #f9f9f9;
border: 1px solid #e0e0e0;
padding: 10px;
margin-bottom: 10px;
border-radius: 5px;
}
.zone-item strong {
color: #555;
}
.zone-item span {
font-weight: bold;
color: #007bff;
}
.error {
color: red;
font-weight: bold;
}