Heart Rate (HR) Zones Calculator
Calculate heart-rate zones from age, measured max HR, or heart-rate reserve, then compare formulas, current pulse, and session minutes.Heart Rate Zones
Current result
| Marker | Value | Copy |
|---|---|---|
| {{ marker.label }} | {{ marker.value }} |
| Zone | Percent | Range (bpm) | Reserve (bpm) | Midpoint | Session % | Minutes | HH:MM | Copy |
|---|---|---|---|---|---|---|---|---|
| Z{{ z.idx }} · {{ z.label }} | {{ z.pct_low }}–{{ z.pct_high }}% | {{ z.bpm_low }}–{{ z.bpm_high }} bpm | {{ z.reserve_low }}–{{ z.reserve_high }} bpm — | {{ z.mid_bpm }} bpm | {{ sessionPlan.rowsMapped[z.idx]?.pctDisplay || '—' }} | {{ sessionPlan.rowsMapped[z.idx]?.minutesDisplay || '—' }} | {{ sessionPlan.rowsMapped[z.idx]?.timeDisplay || '—' }} | |
| Max HR | 100% | {{ used_max_hr }} bpm | — | — | — | {{ sessionPlan.totalMinutes }} min | {{ sessionPlan.totalDisplay }} | |
| Reserve span | — | — | 0–{{ used_hrr }} bpm | — | — | — | — |
| Zone | Range | Primary use | Feels like | Talk test | Public-health ref | Today | Copy |
|---|---|---|---|---|---|---|---|
| Z{{ row.idx }} · {{ row.label }} | {{ row.range }} | {{ row.purpose }} | {{ row.feelsLike }} | {{ row.talkTest }} | {{ row.reference }} | {{ row.today }} |
| Marker | Value | Detail | Copy |
|---|---|---|---|
| {{ card.label }} | {{ card.value }} | {{ card.detail }} |
| {{ header.label }} | Copy |
|---|---|
| {{ row[header.key] }} |
| Summary | Detail | Copy |
|---|---|---|
| Headline | {{ comparisonSummary.headline }} | |
| Review cue | {{ comparisonSummary.detail || 'No extra review cue for this method.' }} |
| Zone | Session % | Minutes | HH:MM | Guidance | Copy |
|---|---|---|---|---|---|
| Z{{ row.idx }} · {{ row.label }} | {{ row.pctDisplay }} | {{ row.minutesDisplay }} | {{ row.timeDisplay }} | {{ row.guidance }} | |
| Total | {{ sessionPlan.totalPctDisplay }} | {{ sessionPlan.totalMinutesDisplay }} | {{ sessionPlan.totalDisplay }} | {{ timePresetLabel }} |
| Mix item | Share | Time | Detail | Copy |
|---|---|---|---|---|
| Working band | {{ focusBand.available ? focusBand.rangeLabel : '—' }} | {{ sessionPlan.valid ? sessionPlan.totalMinutesDisplay : '—' }} | {{ focusBand.available ? focusBand.note : 'Add valid zones to see the working band.' }} | |
| Current HR check | {{ currentFocusStatus.available ? currentFocusStatus.badge : 'Not entered' }} | Live readout | {{ currentFocusStatus.available ? currentFocusStatus.detail : 'Enter current HR in Advanced to compare today’s effort with the working band.' }} | |
| Z{{ row.idx }} · {{ row.label }} | {{ row.pctDisplay }} | {{ row.minutesDisplay }} · {{ row.timeDisplay }} | {{ row.guidance }} | |
|
No session mix yet
Enter a session duration in Advanced to export time-in-zone mix rows.
|
||||
Introduction:
Training by heart rate turns a live pulse into a rough gauge of effort. The number on a watch or chest strap is not the whole story by itself. A reading of 142 bpm may be relaxed endurance work for one runner and a hard threshold effort for another because the useful range depends on maximum heart rate, resting pulse, fitness, sport, heat, fatigue, medication, and sensor quality.
Zones make that shifting signal easier to use. Instead of chasing one exact beat-per-minute target, a training plan can group effort into bands such as recovery, endurance, tempo, threshold, and very hard interval work. Those bands help with pacing, workout design, and post-session review, especially when pace or power is not available or does not fit the terrain.
Most zone systems use one of two anchors. Percentage-of-maximum models multiply a maximum heart rate by each breakpoint, so a 70% edge is simply 70 percent of the selected maximum. Heart-rate-reserve models start with the span between resting and maximum heart rate, apply the percentage to that usable range, and add resting heart rate back. That reserve method, often called the Karvonen method, commonly produces higher middle-zone boundaries than plain percentage-of-maximum math.
The main vocabulary is small, but each term changes the result:
- Maximum heart rate
- The top anchor for the zone model, either estimated from age or entered from a reliable test.
- Resting heart rate
- A calm baseline pulse used to calculate heart-rate reserve.
- Breakpoint
- A percentage edge such as
60%or90%that becomes a bpm boundary. - Time in zone
- The planned or recorded minutes spent in each band during a workout.
Zone labels are not universal standards. A watch, cycling platform, coach, clinic, or running plan may use different maximum-heart-rate assumptions, lactate-threshold tests, sport settings, or breakpoint sets. Comparisons across devices or seasons are useful only when the method and anchor values are known.
Heart rate also lags behind effort. Short hill surges, heat, dehydration, caffeine, sleep loss, stress, and cardiac drift can move pulse away from pace, power, or perceived exertion. Zones work best as one training signal, not as proof that a session was safe, easy, or productive.
How to Use This Tool:
Use the calculator to set a zone table first, then add live pulse and session-planning details only when they help the workout you are building.
- Choose Calculation method. Use Age when only age is known, Custom Max HR when you have a tested maximum, or HR Reserve when a calm resting heart rate should shape the lower and middle zones.
- For age-based estimates, choose Age formula. The HR Key Markers table should show the selected maximum heart rate and the public-health moderate and vigorous reference ranges.
- Enter Age, Max HR, and Resting HR as required by the selected method. If HR Reserve reports that maximum heart rate must be greater than resting heart rate, fix those two values before reading the zone table.
- Pick a Zone preset. Classic 5, Endurance 5, Polarized 3, Threshold 4, and Cycling 6 use different breakpoint ladders; Custom needs strictly ascending percentages ending at
100. - Use Current HR when you want a live zone check. A value of
0hides the marker, while a positive pulse highlights whether today's effort sits below, inside, or above the calculated bands. - Open Advanced for Session duration, Intensity mix, Custom mix, and BPM rounding. Rounding is useful for watch alerts, but it can make adjacent displayed edges share the same bpm value.
- Review Method Comparison before changing a plan. In age mode it compares the supported age equations; in HR Reserve mode it shows how reserve-based ranges differ from plain percentage-of-maximum ranges.
Interpreting Results:
The summary is the fastest confidence check. It reports the selected method, maximum heart rate, and either the current zone or the working band implied by the session mix. If a current pulse falls below the first band or above the last band, treat the warning as a reason to check the input and the sensor before changing training targets.
Heart Rate Zone Table is the main result. It lists each zone's percentage range, bpm range, midpoint, reserve range when HR Reserve is active, and planned minutes when a valid session duration is entered. The first band starts at the first selected breakpoint, not at resting heart rate.
Training Guide gives practical cues for each band, including perceived effort, talk-test guidance, and overlap with broad moderate or vigorous activity anchors. Those public-health anchors remain percentage-of-maximum references even when the training zones use HR Reserve.
Session Plan converts the chosen workout length and intensity mix into minutes per zone. Use those minutes as a pacing plan, then compare them with breathing, pace, power, terrain, and recovery. A neat table does not override symptoms, unusual fatigue, chest discomfort, or a pulse reading that looks wrong for the effort.
Method Comparison shows why two calculators or watches can disagree. A small change in maximum-heart-rate formula can shift the aerobic cap or hard-entry point by several beats per minute, and HR Reserve can move mid-zone boundaries upward when resting heart rate is low.
Technical Details:
Heart-rate zone calculations have two steps: choose the anchor value, then apply percentage breakpoints. Age equations estimate maximum heart rate from population data, so they are convenient starting points rather than personal measurements. A measured maximum heart rate can be more useful when it was obtained safely and fits the same sport or training context.
Heart-rate reserve changes the lower anchor from zero to resting heart rate. This matters because two athletes can have the same maximum heart rate but different usable ranges. A lower resting pulse increases the reserve span and changes the bpm value reached by the same reserve percentage.
Formula Core:
Here p is the breakpoint percentage, HRmax is the maximum heart rate selected for the calculation, HRrest is resting heart rate, and B is the zone boundary in bpm. Boundaries are rounded to the nearest beat unless a bpm rounding step is entered, in which case each boundary snaps to the nearest selected step.
| Age equation | Maximum heart rate estimate | Interpretation note |
|---|---|---|
| Fox | 220 - age |
Familiar quick estimate, useful for rough comparison but blunt for individual training. |
| Tanaka | 208 - 0.7 x age |
Default age-based equation, often used as a broader adult estimate. |
| Gellish | 207 - 0.7 x age |
Similar age slope to Tanaka, one beat lower before rounding at the same age. |
| Nes | 211 - 0.64 x age |
Flatter age slope, so it can sit higher than Tanaka for older adults. |
Zone presets are breakpoint lists. Classic 5 uses 50,60,70,80,90,100. Endurance 5 uses 55,65,75,85,92,100. Polarized 3 uses 60,80,90,100. Threshold 4 uses 60,70,80,90,100. Cycling 6 uses 55,68,78,87,93,97,100. Custom breakpoints are sorted before use, but duplicate, non-positive, over-100, or missing-final-100 values are rejected.
| Rule area | Behavior | Why it matters |
|---|---|---|
| Input ranges | Age accepts 10 to 100; custom maximum heart rate accepts 100-230 bpm; resting heart rate is constrained to 20-150 bpm; current pulse accepts 0-240 bpm. |
Out-of-range values are corrected or blocked before zones are trusted. |
| HR Reserve validity | Maximum heart rate must be greater than resting heart rate. | A zero or negative reserve span cannot produce meaningful reserve-based zones. |
| Shared bpm edges | A current pulse equal to a shared rounded boundary is classified into the lower-numbered zone because zones are checked from low to high with inclusive edges. | Exact-edge readings should not be overinterpreted, especially after coarse bpm rounding. |
| Public-health anchors | Moderate activity is shown as 50-70% of maximum heart rate and vigorous activity as 70-85% of maximum heart rate. |
These broad anchors are not the same thing as a sport-specific training-zone model. |
| Session mix | Preset and custom percentages are normalized across the current number of zones; custom mixes need one non-negative value per zone and a positive total. | A custom mix such as 60,25,10,4,1 becomes proportional minutes for the selected session length. |
Worked substitution: with age 35, Tanaka gives 208 - 0.7 x 35 = 183.5, displayed as about 184 bpm. In the classic five-zone model, the 70% boundary is 0.70 x 184 = 128.8, displayed as about 129 bpm. If maximum heart rate is 190 bpm and resting heart rate is 58 bpm, heart-rate reserve is 132 bpm, so a 75% reserve boundary is 58 + 0.75 x 132 = 157 bpm.
Safety, Privacy, and Accuracy Notes:
Heart-rate zones are informational training aids, not medical instructions. People with cardiovascular disease, exercise restrictions, pregnancy considerations, chest symptoms, fainting, unexplained shortness of breath, or medication that affects heart rate should follow qualified medical guidance before using self-selected intensity targets.
- Stop exercise and seek urgent help for chest pain, fainting, severe breathlessness, or symptoms that feel unsafe.
- Use a recent measured maximum heart rate only when the test was safe and matches the activity being planned.
- Check wrist-sensor spikes, cadence lock, loose straps, and optical-sensor lag before changing zones from one unusual reading.
- Keep the same method, maximum heart rate, resting heart rate, and breakpoint set when comparing training blocks.
The calculations run in the browser. Exported tables, copied rows, downloaded charts, and saved JSON can contain heart-rate values entered on the page, so treat those files as personal training records.
Worked Examples:
Age-based base session
A 35 year old using the Tanaka equation and Classic 5 gets an estimated maximum near 184 bpm. Zone 2 spans roughly 110-129 bpm before optional rounding, and a base-endurance session gives most minutes to the first two zones.
Measured max with rounded alerts
A runner with a tested maximum of 196 bpm can use Custom Max HR and a 5 bpm rounding step so watch alerts land on simple values. The rounded table is easier to program, but an exact boundary pulse may be assigned to the lower-numbered adjacent zone.
Heart-rate reserve tempo work
With maximum heart rate 190 bpm and resting heart rate 58 bpm, reserve is 132 bpm. A 75% HRR boundary becomes 157 bpm, which is higher than 75% of maximum heart rate alone. That difference is the main reason HR Reserve plans should not be mixed casually with plain percentage-of-maximum zones.
Custom breakpoint correction
A custom set such as 60,70,80,90 is incomplete because it does not end at 100. Adding 100 gives the final zone a defined upper cap, and the zone table can be generated once the percentages are strictly ascending.
FAQ:
Which calculation method should I start with?
Use Custom Max HR if you have a reliable measured maximum. Use HR Reserve when resting heart rate should shape the zones. Use age-based estimates when no tested maximum is available.
Why do HR Reserve zones look higher?
Reserve zones apply the percentage to maximum heart rate minus resting heart rate, then add resting heart rate back. Because the lower anchor is resting pulse rather than zero, many boundaries move upward.
Are age formulas accurate enough for training?
They are useful estimates, not personal tests. Two people of the same age can have very different maximum heart rates, so formula differences should be treated as uncertainty rather than precision.
Why does my watch show different zones?
Wearables may use lactate threshold, running threshold, cycling threshold, heart-rate reserve, custom sport settings, or proprietary defaults. Match the method and breakpoints before comparing numbers.
Why did custom breakpoints fail?
Custom breakpoints must include at least two numeric percentages, stay greater than 0 and no higher than 100, rise strictly after sorting, and end at 100.
Should every workout stay inside one zone?
No. Warm-ups, hills, intervals, cardiac drift, and cooldowns naturally move heart rate across bands. The plan is a guide to the session's intended stress, not a rule that every second must satisfy.
Glossary:
- Maximum heart rate
- The highest heart rate used as the top of the selected zone model.
- Heart-rate reserve
- The difference between maximum heart rate and resting heart rate.
- Karvonen method
- A target-heart-rate method that adds a percentage of heart-rate reserve back to resting heart rate.
- Breakpoint
- A percentage boundary that starts or ends a heart-rate zone.
- Talk test
- A plain-language effort cue based on whether conversation stays comfortable, becomes clipped, or is no longer sustainable.
- Cardiac drift
- A gradual rise in heart rate during steady work, often influenced by heat, duration, hydration, and fatigue.
References:
- Target Heart Rates Chart, American Heart Association, Aug. 12, 2024.
- How to Measure Physical Activity Intensity, CDC, Dec. 4, 2025.
- Age-predicted maximal heart rate revisited, Journal of the American College of Cardiology, 2001.
- Longitudinal modeling of the relationship between age and maximal heart rate, PubMed.
- Age-predicted maximal heart rate in healthy subjects: The HUNT Fitness Study, PubMed.
- Karvonen Formula for calculating individualized target heart rate parameters, UCLA Health.