| Zone | Percent of LTHR | BPM range | Purpose | Copy |
|---|---|---|---|---|
| {{ z.id }} | {{ z.percent_display }} | {{ z.bpm_display }} | {{ z.cue }} |
| Zone | Minutes | Percent | Intent | Copy |
|---|---|---|---|---|
| Set a session duration to build a plan. | ||||
| {{ row.id }} | {{ row.minutes_display }} | {{ row.percent_display }} | {{ row.intent }} | |
Heart rate zones turn a pulse number into a training language. Instead of guessing whether a ride or run is easy, steady, threshold, or very hard, you compare your heart rate to a threshold anchor and read the effort as a band with a clear purpose.
This calculator applies Joe Friel style threshold-based zones for running and cycling. It converts a threshold heart rate into seven bands, shows the beats-per-minute range for each one, labels the intended use of the band, and can also place a current heart rate inside that structure so you can tell where you are right now.
The practical value is pacing discipline. Easy sessions stay easy, threshold work stops drifting into random medium-hard riding, and a planned hour can be turned into a simple time-in-zone split instead of a vague instruction to hold tempo. That is especially useful when pace and power are less stable than usual because of hills, weather, or fatigue.
You can approach the tool from two directions. If you already know your lactate threshold heart rate, enter it directly and pick the sport you tested in. If you only have an average heart rate from a recent field test or race effort, the calculator can estimate threshold from that average, then apply a small sport offset when you are translating the result across disciplines.
The output is still a guide, not a verdict. A neat Z2 or Z4 label does not mean the session is automatically appropriate, and a mathematically correct threshold does not cancel out illness, poor recovery, heat stress, or a bad sensor reading.
If the result suggests an intensity that feels clearly wrong, trust symptoms and retest before trusting the zone table.
This page is for training guidance and is not a medical assessment.
A strong first pass is simple. Pick the sport, enter the best threshold value you have, leave the offset at zero, and look at the zone table before touching anything else. If you only have a recent 20-minute or race-style average, enter that average, choose the matching test method, and let the tool derive the threshold for you.
The calculator is most useful when you want structure without building a full training plan from scratch. A cyclist planning an aerobic ride can check that endurance falls where expected, then use the session focus preset to turn a 60-minute workout into a rough time split. A runner coming back to threshold work can compare a live heart rate to the zone summary and quickly see whether the effort is sitting in Z3, Z4, or already pushing into Z5a.
Before trusting the result, compare the headline zone to perceived effort. If the table says endurance but breathing and form feel like threshold, revisit the threshold source shown under the summary first.
Lactate threshold heart rate, often shortened to LTHR, is used here as the anchor that personalizes every zone. Rather than expressing intensity as a percentage of maximum heart rate, the tool follows a threshold model: each zone is defined as a percentage band around the highest heart rate you can sustain for a hard but steady effort. That makes the ranges more useful for training decisions because threshold responds more directly to the kind of work most endurance athletes actually schedule.
The package has two sport-specific zone maps. Cycling keeps Z1 narrower and starts endurance at 82% of threshold, while running keeps Z1 wider and begins Z2 at 86%. Those differences matter because the calculator is not just renaming effort levels; it is changing the actual boundaries used to classify your current heart rate, draw the bar chart, and shade the Friel Zone Map.
The threshold itself can come from a manual value or a derived value. When test override is enabled and a positive test average is present, the app multiplies that average by a method factor such as 0.95 for a cycling 20-minute field test or 0.98 for a running 20-minute field test. After that, any offset is added and the applied threshold is clamped to the 0 to 260 bpm range used by the package. Zone edges are then rounded to whole beats per minute, which is why a displayed boundary can move by one beat when the underlying threshold changes slightly.
Session planning sits on top of the zone math. Each focus preset contains a fixed distribution of workout time across the seven zones, and the calculator multiplies your planned minutes by those weights to produce the session table. The current heart rate, when present, is also converted into a percentage of threshold so the point can be placed on the two-axis map of percent of threshold versus actual bpm.
A small set of deterministic rules drives every result. First the tool resolves the threshold source, then it converts that threshold into zone edges and optional session minutes.
| Test method | Cycling factor | Running factor | How the tool uses it |
|---|---|---|---|
| 20-minute field test | 0.95 | 0.98 | Scales a shorter hard effort down to an estimated threshold. |
| 30-60 minute TT or race | 1.00 | 1.00 | Treats the average as threshold directly. |
| Long steady tempo | 0.93 | 0.97 | Discounts a controlled tempo effort before building zones. |
| Lab or direct LTHR | 1.00 | 1.00 | Uses the supplied value without adjustment. |
| Zone | Cycling | Running | Typical purpose cue |
|---|---|---|---|
| Z1 | 65-81% | 65-85% | Recovery and relaxed aerobic work. |
| Z2 | 82-89% | 86-89% | Durable endurance work you can repeat often. |
| Z3 | 90-93% | 90-94% | Tempo effort with controlled breathing. |
| Z4 | 94-99% | 95-99% | Sub-threshold work near sustained race pace. |
| Z5a | 100-102% | 100-102% | Short work just above threshold. |
| Z5b | 103-106% | 103-106% | VO2-oriented intervals. |
| Z5c | 107-112% | 107-112% | Very hard anaerobic bursts and sprint-like efforts. |
Comparisons stay most useful when the threshold source is consistent. If one result comes from a running field test and another comes from a bike race average with a manual offset, the numbers may still be useful individually, but they are no longer a clean apples-to-apples comparison.
Use the calculator in the same order you would usually plan a session: anchor the threshold first, then classify the effort, then shape the minutes.
The most important outputs are the applied threshold line, the seven bpm ranges, and the headline zone when a current heart rate is present. Read those together rather than treating one number as the whole answer. A current point near the top of Z2 has a different training meaning from a point just inside Z4, even if both still feel steady for a few minutes.
The most common overread is assuming a correct zone table guarantees a correct workout. It only guarantees that the workout is being described consistently against the threshold you supplied.
A cyclist with a manual threshold of 165 bpm who enters a current heart rate of 142 bpm will see Z2 as 135 to 147 bpm. If the session duration is 60 minutes and the focus is Endurance base, the plan allocates about 12 minutes to Z1, 33 minutes to Z2, 9 minutes to Z3, and 6 minutes to Z4. That is a practical confirmation that the workout is mostly aerobic even though it still includes a little upper-end work.
A runner with a 20-minute field-test average of 174 bpm and no offset will get a derived threshold of 170.52 bpm because the running multiplier is 0.98. The displayed threshold rounds to 171 bpm, and Z4 comes out at 162 to 169 bpm. That makes the tool useful for setting a threshold day target without manually doing any percentage math.
A common troubleshooting case is cross-sport translation. If a bike-tested threshold makes every easy run show up as Z3 or low Z4, do not immediately assume you need harder run training. First confirm that the discipline matches the source of the threshold, then use the offset only if you intentionally want to adjust a bike-derived number for running.
Not if you want this tool to behave as intended. Every zone band in the package is built from threshold percentages, not from percentages of maximum heart rate, so swapping in max HR will distort the ranges.
Because the package uses separate percentage bands for the two sports and separate field-test factors for some test methods. The threshold anchor may be the same number, but the classification rules are different.
Check the threshold source line, then check the sensor. Heart rate can lag during short efforts and drift upward in heat or fatigue, so a surprising headline zone is a cue to verify the context, not an automatic instruction to change the workout.
The calculator requires a valid threshold above 0 bpm. It also rejects negative session duration, negative test averages, and current heart rates above 260 bpm. Fix the flagged input first, then the zone table and plan will render normally.