/* Calculator Styles */
.cz2-calculator-container {
max-width: 600px;
margin: 20px auto;
padding: 25px;
background-color: #f8f9fa;
border: 1px solid #e9ecef;
border-radius: 8px;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
box-shadow: 0 4px 6px rgba(0,0,0,0.05);
}
.cz2-calculator-title {
text-align: center;
color: #2c3e50;
margin-bottom: 20px;
font-size: 24px;
font-weight: 700;
}
.cz2-form-group {
margin-bottom: 15px;
}
.cz2-label {
display: block;
margin-bottom: 5px;
font-weight: 600;
color: #34495e;
}
.cz2-input, .cz2-select {
width: 100%;
padding: 10px;
border: 1px solid #ced4da;
border-radius: 4px;
font-size: 16px;
box-sizing: border-box; /* Fix padding issue */
}
.cz2-input:focus {
border-color: #3498db;
outline: none;
}
.cz2-btn {
width: 100%;
padding: 12px;
background-color: #27ae60;
color: white;
border: none;
border-radius: 4px;
font-size: 18px;
cursor: pointer;
transition: background-color 0.3s;
margin-top: 10px;
}
.cz2-btn:hover {
background-color: #219150;
}
.cz2-result-box {
margin-top: 20px;
padding: 20px;
background-color: #ffffff;
border-left: 5px solid #27ae60;
border-radius: 4px;
display: none;
}
.cz2-result-item {
margin-bottom: 10px;
font-size: 16px;
color: #2c3e50;
}
.cz2-result-highlight {
font-size: 28px;
font-weight: bold;
color: #27ae60;
display: block;
margin-top: 5px;
}
.cz2-note {
font-size: 12px;
color: #7f8c8d;
margin-top: 5px;
}
/* Article Styles */
.cz2-article {
max-width: 800px;
margin: 40px auto;
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
line-height: 1.6;
color: #333;
}
.cz2-article h2 {
color: #2c3e50;
border-bottom: 2px solid #27ae60;
padding-bottom: 10px;
margin-top: 30px;
}
.cz2-article h3 {
color: #2980b9;
margin-top: 25px;
}
.cz2-article p {
margin-bottom: 15px;
}
.cz2-article ul {
margin-bottom: 20px;
}
.cz2-article li {
margin-bottom: 8px;
}
.cz2-table {
width: 100%;
border-collapse: collapse;
margin: 20px 0;
}
.cz2-table th, .cz2-table td {
border: 1px solid #ddd;
padding: 12px;
text-align: left;
}
.cz2-table th {
background-color: #f2f2f2;
color: #2c3e50;
}
function calculateZone2() {
// Inputs
var ageInput = document.getElementById('cz2-age');
var rhrInput = document.getElementById('cz2-resting-hr');
var mhrInput = document.getElementById('cz2-max-hr');
var methodInput = document.getElementById('cz2-method');
var resultBox = document.getElementById('cz2-result');
var resMaxHr = document.getElementById('res-max-hr');
var resHrr = document.getElementById('res-hrr');
var resZone2 = document.getElementById('res-zone2');
var resMethodNote = document.getElementById('res-method-note');
// Parsing
var age = parseFloat(ageInput.value);
var rhr = parseFloat(rhrInput.value);
var mhr = parseFloat(mhrInput.value);
var method = methodInput.value;
// Validation
if (isNaN(age) && isNaN(mhr)) {
alert("Please enter your Age or a known Max Heart Rate.");
return;
}
// Logic: Determine Max HR
var calculatedMaxHr = 0;
if (!isNaN(mhr)) {
calculatedMaxHr = mhr;
} else {
// Standard estimate
calculatedMaxHr = 220 – age;
}
// Logic: Select Formula
var useKarvonen = false;
if (method === "karvonen") {
if (isNaN(rhr)) {
alert("Resting Heart Rate is required for the Karvonen method.");
return;
}
useKarvonen = true;
} else if (method === "auto") {
if (!isNaN(rhr) && rhr > 0) {
useKarvonen = true;
}
}
// Calculation
var lowerBound = 0;
var upperBound = 0;
var hrReserve = 0;
if (useKarvonen) {
// Karvonen Formula: Target = ((Max – Rest) * Intensity) + Rest
// Zone 2 is typically 60% to 70% of HRR
hrReserve = calculatedMaxHr – rhr;
if (hrReserve <= 0) {
alert("Resting Heart Rate must be lower than Max Heart Rate.");
return;
}
lowerBound = Math.round((hrReserve * 0.60) + rhr);
upperBound = Math.round((hrReserve * 0.70) + rhr);
resHrr.parentElement.style.display = "block";
resHrr.innerHTML = hrReserve;
resMethodNote.innerHTML = "Calculated using the Karvonen (Heart Rate Reserve) method. This is generally more accurate for fit cyclists.";
} else {
// Standard Percentage of Max HR
// Zone 2 is typically 60% to 70% of Max HR (Use 65-75% sometimes, but 60-70% is the safer strict endurance range)
lowerBound = Math.round(calculatedMaxHr * 0.60);
upperBound = Math.round(calculatedMaxHr * 0.70);
resHrr.parentElement.style.display = "none"; // Hide HRR if not used
resMethodNote.innerHTML = "Calculated using standard Percentage of Max Heart Rate.";
}
// Display
resMaxHr.innerHTML = calculatedMaxHr;
resZone2.innerHTML = lowerBound + " – " + upperBound + " bpm";
resultBox.style.display = "block";
}
Mastering Zone 2 Training for Cyclists
In the world of cycling training, few concepts have gained as much traction in recent years as "Zone 2" training. Often referred to as the "endurance zone," this intensity level is the foundation upon which aerobic fitness is built. Whether you are training for a century ride, a crit race, or simply looking to improve your overall health, understanding your Zone 2 heart rate is critical.
What is Cycling Zone 2?
Zone 2 is a specific heart rate intensity where your body primarily utilizes fat as fuel rather than carbohydrates (glycogen). It is an aerobic intensity where your type 1 (slow-twitch) muscle fibers are doing the heavy lifting. In this zone, lactate production is low, allowing your body to clear it as fast as it produces it.
Physiologically, training in this zone stimulates mitochondrial density—essentially increasing the number and efficiency of the "power plants" within your cells. This leads to a higher aerobic ceiling and better endurance.
How to Calculate Your Zone 2
There are two primary ways to calculate your Zone 2 heart rate limits. Our calculator above supports both methods.
1. Percentage of Max Heart Rate (Traditional)
This is the simplest method. It defines Zone 2 as roughly 60% to 70% of your Maximum Heart Rate (MHR). While easy to calculate, it does not account for your individual fitness level or resting heart rate.
- Formula: MHR × 0.60 to MHR × 0.70
2. Karvonen Method (Heart Rate Reserve)
This method is generally preferred by coaches and experienced cyclists because it factors in your Resting Heart Rate (RHR). The difference between your Max HR and your Resting HR is called your Heart Rate Reserve (HRR).
- Formula: ((Max HR – Resting HR) × %) + Resting HR
- Zone 2 Range: 60% to 70% intensity.
Why is Resting Heart Rate Important?
A lower resting heart rate usually indicates better cardiovascular fitness. By using the Karvonen method, the calculator adjusts the zones to fit your specific physiological profile. Two cyclists might have the same age and max heart rate, but if one has a resting HR of 45 and the other 65, their training zones should differ. The Karvonen formula accounts for this.
Example Calculation
Let's look at a realistic example for a 40-year-old cyclist:
| Metric |
Value |
| Age |
40 |
| Max HR (Estimated 220-Age) |
180 bpm |
| Resting HR |
60 bpm |
| Zone 2 (Karvonen) |
132 – 144 bpm |
| Zone 2 (Standard %) |
108 – 126 bpm |
As you can see, the Karvonen method often yields a slightly higher, more accurate training target for fit individuals compared to the standard percentage method.
The "Talk Test"
If you don't have a heart rate monitor handy, you can verify if you are in Zone 2 using the "Talk Test." You should be able to hold a conversation in full sentences without gasping for air, but the effort should be high enough that you cannot sing comfortably. If you can only speak in short bursts, you have likely drifted into Zone 3 (Tempo) or Zone 4 (Threshold).