Heart Rate Zones
{{ current_zone_label }}
Max {{ used_max_hr }} bpm · Resting {{ resting_hr }} bpm · Reserve {{ used_hrr }} bpm
Age {{ age }} Method {{ methodLabel }} Formula {{ formulaLabel }} Preset {{ presetLabel }} HR {{ current_hr }} bpm Above Z{{ zones.length }} Below Z1 Session {{ sessionPlan.totalMinutes }} min Focus {{ timePresetLabel }}
yrs
bpm
bpm
bpm
min
bpm
Key markers
{{ 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 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 }}

                

Introduction:

Outline heart with a simple ECG line.

Heart rate zones are effort bands based on your pulse, used to pace training and manage recovery with intent. They help you organize easy days and build toward harder sessions with fewer guesswork moments.

You provide either age to estimate a maximum, a known maximum, or both a maximum and a resting value to use reserve. The calculator returns zone ranges in beats per minute and an optional plan that spreads minutes across zones for a realistic workout flow.

For example, a steady endurance run might keep you mostly in easier bands with a small slice at moderate effort, while an interval day shifts more time to higher bands for short segments. Measure under consistent conditions and expect day to day variation, then adjust calmly rather than chasing a single number.

Numbers are training guides rather than medical rules, and personal responses differ. This tool provides informational estimates and does not substitute professional advice.

Technical Details:

Heartbeat intensity is observed as beats per minute and summarized using a maximum value and optionally a resting value. Heart rate reserve is the difference between these two quantities and represents the workable span between rest and peak effort.

Zones are bands bounded by percentage breakpoints. With a percentage of maximum approach, each boundary is a fixed share of the maximum. With a heart rate reserve approach, each boundary is a fixed share of the reserve added back to resting so lower bands sit closer to rest and higher bands approach peak.

Results include lower and upper beats per minute for each band and a midpoint. A live reading can be classified into the current band using inclusive limits, and a session plan can allocate minutes across bands using presets or a custom mix that rescales to total one hundred percent.

Comparisons are most meaningful within the same person using the same device, at similar times of day, and with the same rounding step. Age based estimates are convenient but approximate; tested maximum and measured resting values usually improve specificity.

HRR = Hmax Hrest
Limax = round ( pi1100 · Hmax ) Uimax = round ( pi100 · Hmax ) Lihrr = round ( Hrest + pi1100 · HRR ) Uihrr = round ( Hrest + pi100 · HRR ) Mi = round ( Li+Ui2 )
Symbols and units
Symbol Meaning Unit/Datatype Source
Hmax Maximum heart rate bpm Estimated from age or entered directly
Hrest Resting heart rate bpm Entered directly
HRR Heart rate reserve bpm Derived as Hmax − Hrest
pi Breakpoint percentage % of span Preset or custom list, ascending, last is 100
Li, Ui Lower and upper zone bounds bpm Computed from method and breakpoints
Mi Zone midpoint bpm Average of bounds after rounding
s Rounding step bpm Nearest integer if zero, else nearest multiple of s
T Planned session duration minutes User input for time allocation
wi Time distribution weight percent Preset or custom, rescaled to sum 100
Zone labels by model
Model Zones
Six bands Recovery, Endurance, Tempo, Threshold, VO₂max, Anaerobic
Five bands Recovery, Endurance, Tempo, Threshold, VO₂max
Four bands Easy, Steady, Threshold, VO₂max
Three bands Easy, Moderate, Intense
  1. Derive maximum from age formula, or accept entered maximum and resting.
  2. Validate breakpoints as strictly ascending and ending at one hundred.
  3. Compute band bounds from percentages using maximum or reserve method.
  4. Apply the rounding step to bounds and midpoints.
  5. Classify a current reading if provided using inclusive limits.
  6. If a duration is set, rescale the distribution and compute minutes per band.
  7. Assemble tables, key markers, chart, and optional exports for reuse.

Units, precision, and rounding

All beats per minute are rounded to the nearest integer unless a step is set, in which case values round to the nearest multiple of that step. Percentages display with one decimal place.

Validation and bounds

Input validation rules
Field Type Min Max Step/Pattern Error Text Placeholder
Age number 10 100 step 1 35
Max heart rate number 100 230 step 1 “Invalid Max HR.” 190
Resting heart rate number 30 (UI), 20 (logic) 120 (UI), 150 (logic) step 1 “Max HR must be greater than Resting HR for HRR.” 60
Current heart rate number 0 240 step 1 140
Breakpoints comma‑separated % >0 ≤100 strictly ascending, last is 100 “At least two breakpoints are required.” “Breakpoints must be in (0, 100].” “Breakpoints must be strictly ascending.” “Last breakpoint must be 100.” 50,60,70,80,90,100
Custom mix comma‑separated % ≥0 length must match zone count “Enter N comma‑separated percentages…” “Custom mix must include N values.” “Intensity mix must include positive percentages.” 60,25,10,5
Rounding step number 0 step 1 0
Session duration number 0 step 1 “Unable to build session plan.” 60

I/O and exports

Zone tables and session plans can be copied or saved as CSV. A structured JSON snapshot is available, and a DOCX export compiles the current table with a short note.

Networking and privacy

Processing is browser‑based and input values remain on your device. No data is transmitted or stored on a server.

Assumptions and limitations

  • Age formulas estimate population averages and can deviate for individuals.
  • Device lag and sensor error can shift live readings from true physiology.
  • Rounding steps may move band edges by several beats per minute.
  • Reserve method requires accurate resting and maximum values for best results.
  • Classification uses inclusive limits at both edges of each band.
  • Preset distributions adapt to two to six bands by merging or splitting extremes.
  • Custom percentages rescale to sum one hundred even if the sum differs.
  • Heads‑up Valid patterns do not confirm fitness for any intensity; use test data for demonstrations.

Edge cases and error sources

  • Resting equal to or above maximum in reserve mode generates an error.
  • Breakpoints that are not strictly increasing or do not end at one hundred.
  • Non‑numeric entries or stray characters in lists.
  • Zero duration disables session planning outputs.
  • Large rounding steps can collapse narrow bands.
  • Live reading of zero disables current‑band classification.
  • Custom mix length that does not match the number of bands.
  • Outlier resting readings taken after caffeine or poor sleep.
  • Boundary values may change band when rounding step is adjusted.
  • Copy and download depend on clipboard and file permissions in the browser.

Step‑by‑Step Guide:

Heart rate zones for training with optional time allocation and a quick current‑band check.

  1. Choose a method; set Age or enter Max and optional Resting.
  2. Select a zone preset or enter custom breakpoints that end at one hundred.
  3. Enter a session duration and pick an intensity preset or provide a custom mix.
  4. Adjust the rounding step to match your device reporting.
  5. Optionally set a live reading to see the current band.
  6. Copy, save, or export the table or plan for later reference.

Example. With 60 minutes and a base endurance mix in five bands, expect most minutes in Z1–Z2 with a small share in Z3.

FAQ:

Is my data stored?

No. Values stay on your device and outputs are generated locally. Nothing is sent to a server.

How accurate is an age estimate?

It is a population average. Individual maximums can differ. Using a tested maximum and measured resting usually improves specificity.

Which method should I pick?

Age is quick, maximum is simple when known, and reserve personalizes all bands around your resting. Choose based on what you can measure reliably.

What does “borderline” mean?

Values exactly on a boundary are included in that band. Small shifts from rounding or sensor lag may move a reading between adjacent bands.

How do I estimate maximum?

Use a published equation for a quick estimate or a controlled test when appropriate. Always respect your limits and recover well after hard efforts.

What are the presets?

Breakpoints include classic five, endurance five, polarized three, threshold four, and a six‑band cycling model. You can also enter custom percentages.

Can I use this offline?

Yes. Once loaded, calculations and exports work without connectivity. Local clipboard and file permissions still apply.

Are exports supported?

Tables and plans can be copied, saved as CSV, captured as JSON, or exported to a DOCX summary for sharing or notes.

Health information is personal. Use caution with strenuous sessions and consult a professional when in doubt.