Analyze your cardiovascular health based on age, weight, and heart rate.
Male
Female
Analysis Results
Your Target Training Zones (Karvonen Formula)
Intensity Zone
Target Heart Rate
What is Resting Heart Rate (RHR)?
Your resting heart rate is the number of times your heart beats per minute (BPM) while you are at rest. It is a vital indicator of your overall cardiovascular fitness and heart health. A lower RHR generally implies more efficient heart function and better cardiovascular fitness.
How Age and Weight Influence Your Heart Rate
While age is the primary factor in determining your Maximum Heart Rate, your weight and fitness level significantly impact your Resting Heart Rate.
Age: As you age, your maximum heart rate naturally declines. However, your resting heart rate should remain relatively stable if you maintain your fitness.
Weight: Carrying excess body weight forces the heart to work harder to pump blood to the body, which can elevate your RHR. Losing weight through aerobic exercise often leads to a decrease in RHR.
Heart Rate Chart by Age (Resting)
Age Range
Athlete
Excellent
Average
Poor
18-25
49-54
56-61
70-73
82+
36-45
50-56
57-62
71-75
83+
56-65
51-56
57-61
72-75
82+
Example Calculation
If you are a 40-year-old male weighing 80kg with a resting heart rate of 70 BPM:
For the most accurate results, measure your heart rate first thing in the morning, before you get out of bed or consume caffeine. Place two fingers on your wrist (radial pulse) or neck (carotid pulse), count the beats for 60 seconds, or count for 15 seconds and multiply by 4.
function calculateRHR() {
var age = parseFloat(document.getElementById('age').value);
var gender = document.getElementById('gender').value;
var weight = parseFloat(document.getElementById('weight').value);
var rhr = parseFloat(document.getElementById('measured_rhr').value);
var resultDiv = document.getElementById('rhr-result');
var statusBadge = document.getElementById('status-badge');
var summaryText = document.getElementById('summary-text');
var zoneBody = document.getElementById('zone-body');
if (isNaN(age) || isNaN(weight) || isNaN(rhr)) {
alert("Please enter valid numbers for age, weight, and heart rate.");
return;
}
// Logic for RHR Status
var status = "";
var color = "";
if (rhr < 50) {
status = "Athlete Level";
color = "#27ae60";
} else if (rhr <= 61) {
status = "Excellent";
color = "#2ecc71";
} else if (rhr <= 69) {
status = "Good / Above Average";
color = "#3498db";
} else if (rhr <= 74) {
status = "Average";
color = "#f1c40f";
} else if (rhr <= 81) {
status = "Below Average";
color = "#e67e22";
} else {
status = "Poor / High";
color = "#e74c3c";
}
// Karvonen Formula for Zones
var maxHR = 220 – age;
var hrr = maxHR – rhr;
var zones = [
{ name: "Recovery (50-60%)", low: 0.50, high: 0.60 },
{ name: "Fat Burn (60-70%)", low: 0.60, high: 0.70 },
{ name: "Aerobic (70-80%)", low: 0.70, high: 0.80 },
{ name: "Anaerobic (80-90%)", low: 0.80, high: 0.90 },
{ name: "Red Line (90-100%)", low: 0.90, high: 1.00 }
];
statusBadge.innerText = status;
statusBadge.style.backgroundColor = color;
summaryText.innerHTML = "Your Maximum Heart Rate is approximately " + maxHR + " BPM. Your Heart Rate Reserve (HRR) is " + hrr + " BPM. " +
(weight > 100 ? "Note: Elevated weight may increase your resting heart rate; regular cardiovascular activity can help lower it over time." : "");
var zoneHtml = "";
for (var i = 0; i < zones.length; i++) {
var lowVal = Math.round((hrr * zones[i].low) + rhr);
var highVal = Math.round((hrr * zones[i].high) + rhr);
zoneHtml += "