Compare your cardiovascular fitness against population norms
Male
Female
Your Fitness Standing
—
Percentile Rank: You are better than 0% of the population in your age group.
Category: —
What Does Your Resting Heart Rate (RHR) Reveal?
Your resting heart rate is a fundamental indicator of your cardiovascular health and overall aerobic fitness. Generally, a lower resting heart rate indicates more efficient heart function and better cardiovascular fitness. For instance, elite endurance athletes often have RHRs in the 40s or even 30s.
The Resting Heart Rate Percentile Calculator uses data standardized by age and sex to show where you stand compared to the general population. Being in the 90th percentile means your RHR is lower (better) than 90% of people in your demographic.
Resting Heart Rate Norms by Age (General Guide)
Category
Men (18-45)
Women (18-45)
Athlete
49-54 bpm
54-59 bpm
Excellent
55-61 bpm
60-64 bpm
Good
62-65 bpm
65-69 bpm
Average
70-73 bpm
73-76 bpm
Below Average
74-81 bpm
77-82 bpm
Poor
82+ bpm
83+ bpm
How to Measure Your RHR Correctly
To get an accurate result from this calculator, you must measure your pulse under the following conditions:
Time: Ideally first thing in the morning, right after waking up, before getting out of bed.
Position: Lying down or sitting very quietly.
State: You should be calm, not stressed, and should not have consumed caffeine or nicotine in the last hour.
Method: Place two fingers on your radial artery (wrist) or carotid artery (neck). Count the beats for 60 full seconds.
Factors That Influence Heart Rate
If your percentile is lower than expected, consider these temporary factors that can raise heart rate:
Stress and Anxiety: Acute stress triggers the sympathetic nervous system.
Dehydration: When blood volume drops, the heart must beat faster to maintain pressure.
Temperature: Extreme heat or humidity causes the heart to pump more blood to the skin.
Medications: Beta-blockers can lower RHR, while stimulants can raise it.
function calculateRHRPercentile() {
var age = parseInt(document.getElementById("userAge").value);
var gender = document.getElementById("userGender").value;
var bpm = parseInt(document.getElementById("userBPM").value);
var resultBox = document.getElementById("rhrResultBox");
if (isNaN(age) || isNaN(bpm) || age < 1 || bpm 50) ageAdj = 2;
if (age > 70) ageAdj = 4;
var percentile = 0;
var category = "";
var bgColor = "";
var textColor = "#ffffff";
// Scoring Logic (Lower is generally better for percentile rank)
var score = bpm – genderOffset – ageAdj;
if (score < 50) {
percentile = 99;
category = "Elite Athlete";
bgColor = "#1b5e20";
} else if (score < 56) {
percentile = 95;
category = "Excellent";
bgColor = "#2e7d32";
} else if (score < 62) {
percentile = 85;
category = "Great";
bgColor = "#43a047";
} else if (score < 68) {
percentile = 70;
category = "Good";
bgColor = "#66bb6a";
} else if (score < 73) {
percentile = 50;
category = "Average";
bgColor = "#ffa726";
} else if (score < 79) {
percentile = 30;
category = "Below Average";
bgColor = "#fb8c00";
} else if (score < 85) {
percentile = 15;
category = "Poor";
bgColor = "#e53935";
} else {
percentile = 5;
category = "Very Poor";
bgColor = "#b71c1c";
}
// Display Results
document.getElementById("percentileDisplay").innerText = percentile + "th";
document.getElementById("percentileText").innerText = percentile;
document.getElementById("categoryDisplay").innerText = "Category: " + category;
resultBox.style.display = "block";
resultBox.style.backgroundColor = bgColor;
resultBox.style.color = textColor;
document.getElementById("percentileDisplay").style.color = textColor;
// Smooth scroll to result
resultBox.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
}