Friel Training Zones
{{ headlineZone }}
Threshold {{ effectiveThresholdDisplay }} · {{ thresholdSourceLabel }}
Discipline {{ disciplineLabel }} {{ testMethodLabel }} Offset {{ offset_bpm }} bpm Current {{ current_hr }} bpm {{ focusLabel }} · {{ session_minutes }} min
bpm:
bpm:
min:
bpm:
bpm:
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 }}

                    
:

Introduction:

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.

Everyday Use & Decision Guide:

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.

  • Use the same discipline as the test that produced the threshold unless you intentionally apply an offset. The running and cycling bands are not identical.
  • If your current heart rate lands outside the band you expected, check warm-up status, sensor contact, and the age of your threshold test before changing the whole plan.
  • The focus presets are planning templates, not coaching rules. Endurance heavily favors Z2, while threshold and VO2 presets spread more minutes upward.
  • A zone label does not mean you must chase that number every minute. Heart rate drifts during long sessions and can lag during short intervals.

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.

Technical Details:

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.

Formula Core

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.

Tbase = { HRtest×fmethod when test override is on Tmanual otherwise Teffective = clamp(Tbase+obpm,0,260) HRzone = round(Teffective×pzone) mzone = Msession×wzone
Test method factors used to derive threshold heart rate
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.
Running and cycling zone percentages used by the calculator
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.

Step-by-Step Guide:

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.

  1. Choose Discipline first. Use Cycling for a bike-based threshold and Running for a run-based threshold so the correct zone table is loaded.
  2. Enter Threshold HR if you already know your LTHR. If you only have a recent average from a test, open Advanced, fill Test average, choose the matching Test method, and leave Apply test override turned on.
  3. Add a small Discipline offset only when you intentionally want to translate a threshold across sports. The threshold source line under the summary will show whether the app is using the manual value or the derived value.
  4. Optional: enter Current HR to see the live zone headline. If the current value is far from what the workout should feel like, pause here and confirm the threshold source before planning the rest of the session.
  5. Enter Session duration and choose a Session focus. The result panel will build the Session Plan table with minutes and percentages for the zones used by that focus.
  6. Open Zones Chart or Friel Zone Map if you want a visual check. If the form shows an error such as a threshold above 230 bpm or a negative duration, fix that input first because the charts and plan depend on a valid threshold.

Interpreting Results:

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.

  • If the summary says Manual LTHR, the manual threshold is driving every zone and plan row. If it names a test method and average, the derived threshold is in charge.
  • The session plan is a distribution template, not a minute-by-minute prescription. It tells you where the workout emphasis sits, not when every transition must happen.
  • A one-beat boundary is not a physiological cliff. Because the tool rounds zone edges to whole bpm, treat border cases as close calls and check breathing, power, pace, or perceived effort before forcing the higher zone.
  • If the current point lands in a much harder zone than expected early in the workout, verify the sensor and the threshold source before concluding your fitness changed overnight.

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.

Worked Examples:

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.

FAQ:

Can I use maximum heart rate instead of threshold heart rate?

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.

Why do running and cycling give different ranges from the same threshold?

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.

Why does my current heart rate not match how the workout feels?

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.

Why am I seeing an error or an empty session plan?

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.

Glossary:

LTHR
Lactate threshold heart rate, the threshold value the tool uses to build every zone.
Threshold source
The label showing whether the applied threshold came from the manual entry or from a test average and multiplier.
Field-test factor
The numeric multiplier used to turn a test average into an estimated threshold.
Offset
A beats-per-minute adjustment added after the base threshold is resolved.
Time in zone
The planned minutes assigned to each zone by the selected session focus.
Friel Zone Map
The chart that plots percent of threshold on one axis and actual bpm on the other to show where the current heart rate sits.