Target Heart Rate Zone Calculator

ANALife Services AuthorityNational Calculator Authority›Target Heart Rate Zone Calculator

.calc-container { max-width: 640px; margin: 2rem 0; padding: 1.5rem; background: #fff; border: 1px solid #ddd; border-radius: 8px; box-shadow: 0 1px 3px rgba(0,0,0,0.06); font-family: system-ui, -apple-system, sans-serif; } .calc-container h3 { font-family: Georgia, serif; font-size: 1.15rem; color: #1a1a1a; margin-bottom: 1rem; padding-bottom: 0.5rem; border-bottom: 2px solid var(--ac, #3d5a80); } .calc-row { display: flex; align-items: center; gap: 0.75rem; margin-bottom: 0.75rem; flex-wrap: wrap; } .calc-row label { min-width: 160px; font-size: 0.9rem; color: #333; font-weight: 500; } .calc-row input[type="number"], .calc-row select { flex: 1; min-width: 120px; max-width: 200px; padding: 0.5rem 0.6rem; border: 1px solid #ccc; border-radius: 4px; font-size: 0.9rem; font-family: system-ui, sans-serif; color: #1a1a1a; background: #fafaf8; } .calc-row input:focus, .calc-row select:focus { outline: none; border-color: var(--ac, #3d5a80); box-shadow: 0 0 0 2px rgba(26,74,138,0.12); } .calc-row .unit { font-size: 0.82rem; color: #888; min-width: 30px; } .calc-btn { display: inline-block; margin-top: 0.5rem; padding: 0.55rem 1.5rem; background: var(--ac, #3d5a80); color: #fff; border: none; border-radius: 4px; font-size: 0.9rem; font-weight: 600; cursor: pointer; font-family: system-ui, sans-serif; } .calc-btn:hover { opacity: 0.9; } .calc-result { margin-top: 1.25rem; padding: 1rem 1.25rem; background: #f0f6fc; border-left: 3px solid var(--ac, #3d5a80); border-radius: 0 6px 6px 0; display: none; } .calc-result.visible { display: block; } .calc-result-label { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.06em; color: #666; margin-bottom: 0.25rem; } .calc-result-value { font-size: 1.6rem; font-weight: 700; color: var(--ac, #3d5a80); } .calc-result-detail { font-size: 0.85rem; color: #555; margin-top: 0.5rem; line-height: 1.5; } .calc-note { margin-top: 1rem; font-size: 0.8rem; color: #888; font-style: italic; } .calc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; margin-top: 0.75rem; } .calc-grid-item { padding: 0.6rem 0.8rem; background: #f8f9fa; border-radius: 4px; border: 1px solid #eee; } .calc-grid-item .label { font-size: 0.75rem; color: #888; text-transform: uppercase; letter-spacing: 0.04em; } .calc-grid-item .value { font-size: 1.1rem; font-weight: 600; color: #1a1a1a; } @media (max-width: 720px) { .calc-row { flex-direction: column; align-items: flex-start; gap: 0.3rem; } .calc-row label { min-width: auto; } .calc-row input[type="number"], .calc-row select { max-width: 100%; width: 100%; } .calc-grid { grid-template-columns: 1fr; } } .calc-chart { margin: 1rem 0; text-align: center; } .calc-chart svg { max-width: 100%; height: auto; } .calc-chart-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.6rem 1.2rem; margin-top: 0.6rem; font-size: 0.8rem; color: #555; } .calc-chart-legend span { display: inline-flex; align-items: center; gap: 0.3rem; } .calc-chart-legend i { display: inline-block; width: 10px; height: 10px; border-radius: 2px; font-style: normal; } .calc-related { max-width: 640px; margin: 2rem 0 1rem; padding: 1.25rem 1.5rem; background: #f8f9fa; border: 1px solid #e8e8e8; border-radius: 8px; } .calc-related h3 { font-family: Georgia, serif; font-size: 1rem; color: #1a1a1a; margin: 0 0 0.75rem; padding-bottom: 0.4rem; border-bottom: 2px solid var(--ac, #3d5a80); } .calc-related-list { list-style: none; padding: 0; margin: 0 0 0.75rem; display: grid; grid-template-columns: 1fr 1fr; gap: 0.4rem 1.5rem; } .calc-related-list li a { font-size: 0.88rem; color: var(--ac, #3d5a80); text-decoration: none; } .calc-related-list li a:hover { text-decoration: underline; } .calc-browse-all { margin: 0.5rem 0 0; font-size: 0.9rem; font-weight: 600; } .calc-browse-all a { color: var(--ac, #3d5a80); text-decoration: none; } .calc-browse-all a:hover { text-decoration: underline; } @media (max-width: 720px) { .calc-related-list { grid-template-columns: 1fr; } }

Target Heart Rate Zone Calculator

Calculate your target heart rate zones using the Karvonen (Heart Rate Reserve) method or the simple percentage method based on your age and resting heart rate.

Age (years)

Resting Heart Rate (bpm) (optional — for Karvonen method)

Calculation Method

Karvonen (Heart Rate Reserve) — recommended Simple Percentage of Max HR

Calculate

function tarToggleRHR() { var method = document.getElementById("tar-method").value; var rhrGroup = document.getElementById("tar-rhr").closest(".calc-input-group"); rhrGroup.style.opacity = method === "karvonen" ? "1" : "0.4"; }

function tarCalc() { var resultDiv = document.getElementById("tar-result"); resultDiv.style.display = "block";

var age = parseFloat(document.getElementById("tar-age").value); var rhr = parseFloat(document.getElementById("tar-rhr").value); var method = document.getElementById("tar-method").value;

// --- Validation --- if (isNaN(age) || age 100) { resultDiv.innerHTML = '⚠ Please enter a valid age between 10 and 100.'; return; }

if (method === "karvonen") { if (isNaN(rhr) || rhr 120) { resultDiv.innerHTML = '⚠ Please enter a valid resting heart rate between 30 and 120 bpm for the Karvonen method.'; return; } }

// --- Max Heart Rate (Tanaka formula: 208 − 0.7 × age) --- var maxHR = 208 - 0.7 * age;

// --- Zones definition: [name, low%, high%, color] --- var zones = [ ["Zone 1 — Very Light", 0.50, 0.60, "#3498db"], ["Zone 2 — Light", 0.60, 0.70, "#2ecc71"], ["Zone 3 — Moderate", 0.70, 0.80, "#f39c12"], ["Zone 4 — Hard", 0.80, 0.90, "#e67e22"], ["Zone 5 — Maximum", 0.90, 1.00, "#e74c3c"] ];

var zoneDescriptions = [ "Warm-up / recovery. Improves overall health and aids recovery.", "Fat burning zone. Builds aerobic base and improves endurance.", "Aerobic zone. Improves cardiovascular efficiency and stamina.", "Anaerobic threshold. Increases speed and performance.", "VO₂ max zone. Maximum effort — short bursts only." ];

var hrr = method === "karvonen" ? (maxHR - rhr) : null;

// --- Build table --- var rows = ""; zones.forEach(function(z, i) { var low, high; if (method === "karvonen") { low = Math.round(z[1] * hrr + rhr); high = Math.round(z[2] * hrr + rhr); } else { low = Math.round(z[1] * maxHR); high = Math.round(z[2] * maxHR); } // Cap Zone 5 high at maxHR if (i === 4) high = Math.round(maxHR);

rows += '' + '' + z[0] + '' + '' + Math.round(z[1]100) + '% – ' + Math.round(z[2]100) + '%' + '' + low + ' – ' + high + ' bpm' + '' + zoneDescriptions[i] + '' + ''; });

var methodLabel = method === "karvonen"
? "Karvonen (Heart Rate Reserve)"
"Simple Percentage of Max HR";

var rhrLine = method === "karvonen" ? 'Resting Heart Rate: ' + Math.round(rhr) + ' bpm

' + 'Heart Rate Reserve (HRR): ' + Math.round(hrr) + ' bpm

'
"";

resultDiv.innerHTML = '### Results ' + 'Method: ' + methodLabel + '

' + 'Age: ' + Math.round(age) + ' years

' + 'Estimated Max Heart Rate: ' + Math.round(maxHR) + ' bpm

' + rhrLine + '' + '' + '' + 'Zone' + '% of ' + (method === "karvonen" ? "HRR + RHR" : "Max HR") + '' + 'Heart Rate Range' + 'Purpose' + '' + '' + rows + '' + '' + '* Max HR estimated using the Tanaka formula: 208 − 0.7 × age.

'; }

#### Formulas

Maximum Heart Rate (Tanaka, 2001):

Max HR = 208 − 0.7 × Age

Karvonen Method (Heart Rate Reserve):

HRR = Max HR − Resting HR

Target HR = (Intensity% × HRR) + Resting HR

Simple Percentage Method:

Target HR = Intensity% × Max HR

Zones: Zone 1: 50–60% | Zone 2: 60–70% | Zone 3: 70–80% | Zone 4: 80–90% | Zone 5: 90–100%

#### Assumptions & References

More Calculators

Read Next

Study Time Planner ANA › Life Services Authority › National Calculator Authority › Study Time Planner .calc-container { max-width: 640px; margin:...

References