Calculate your specific training zones based on your Functional Threshold Heart Rate (FTHR).
This is your average heart rate during a consistent 20-minute maximum effort (time trial).
Your Training Zones
Zone
Description
BPM Range
Understanding British Cycling Training Zones
Training with heart rate is one of the most effective ways for cyclists to monitor intensity and ensure they are hitting the specific physiological adaptations required for improvement. The British Cycling model focuses on the Functional Threshold Heart Rate (FTHR) as the primary anchor point, rather than a generic "Maximum Heart Rate" formula like 220-minus-age.
How to find your FTHR: Perform a 20-minute time trial (maximum steady effort). Your average heart rate for those 20 minutes is your FTHR. This is the intensity you can theoretically sustain for about an hour of racing.
The Six Training Zones Explained
Zone 1: Active Recovery ( < 68% FTHR ) Used for recovery rides after hard days or racing. It stimulates blood flow to the muscles without adding fatigue.
Zone 2: Endurance ( 68% – 83% FTHR ) The "bread and butter" of cycling. This builds aerobic capacity, efficiency, and teaches the body to burn fat more effectively as fuel.
Zone 3: Tempo ( 84% – 94% FTHR ) A "comfortably hard" pace. Training here improves aerobic power and prepares the body for more intense threshold work.
Zone 4: Threshold ( 95% – 105% FTHR ) The critical zone for time-trialling and climbing. Working at or near your FTHR increases the intensity you can maintain before lactate accumulates rapidly.
Zone 5: VO2 Max ( > 106% FTHR ) Extremely high intensity. These are short, sharp intervals designed to increase your maximum oxygen uptake and ceiling for performance.
Why Accuracy Matters
If you set your heart rate zones too high, you risk overtraining and burnout. If they are too low, you won't provide a sufficient stimulus for your body to adapt. Using the British Cycling method ensures your training is tailored specifically to your current fitness level rather than an age-based average.
Example Calculation
If a cyclist has a measured FTHR of 170 BPM, their zones would be:
Zone 1: Below 116 BPM
Zone 2: 116 – 141 BPM
Zone 3: 143 – 160 BPM
Zone 4: 162 – 179 BPM
Zone 5: Above 180 BPM
function calculateBCZones() {
var fthr = parseFloat(document.getElementById('fthrInput').value);
var tableBody = document.getElementById('bc-table-body');
var resultsContainer = document.getElementById('bc-results-container');
if (!fthr || fthr 225) {
alert('Please enter a valid Functional Threshold Heart Rate (usually between 120 and 190 bpm).');
return;
}
// Calculation Logic based on British Cycling percentages
// Zone 1: < 68%
// Zone 2: 68-83%
// Zone 3: 84-94%
// Zone 4: 95-105%
// Zone 5: 106%+
var z1_max = Math.round(fthr * 0.68);
var z2_min = Math.round(fthr * 0.69);
var z2_max = Math.round(fthr * 0.83);
var z3_min = Math.round(fthr * 0.84);
var z3_max = Math.round(fthr * 0.94);
var z4_min = Math.round(fthr * 0.95);
var z4_max = Math.round(fthr * 1.05);
var z5_min = Math.round(fthr * 1.06);
var zones = [
{ id: "1", name: "Recovery", desc: "Easy spinning, conversation pace", range: "Under " + z1_max + " bpm", cls: "zone-1" },
{ id: "2", name: "Endurance", desc: "Long steady rides, base building", range: z2_min + " – " + z2_max + " bpm", cls: "zone-2" },
{ id: "3", name: "Tempo", desc: "Sustained aerobic effort", range: z3_min + " – " + z3_max + " bpm", cls: "zone-3" },
{ id: "4", name: "Threshold", desc: "Time trial intensity / Race pace", range: z4_min + " – " + z4_max + " bpm", cls: "zone-4" },
{ id: "5", name: "VO2 Max", desc: "Very hard intervals (3-8 mins)", range: z5_min + " bpm +", cls: "zone-5" }
];
var html = "";
for (var i = 0; i < zones.length; i++) {
html += "