Enter your age to determine your Maximum Heart Rate (MHR) and ideal training zones.
Maximum Heart Rate (MHR)
0 BPM
Zone
Intensity
Target Range
How to Calculate Heart Rate BPM Manually
Heart rate is measured in Beats Per Minute (BPM). While digital heart rate monitors and smartwatches are popular, knowing how to calculate your heart rate manually is a vital skill for monitoring health and fitness levels accurately without equipment.
To calculate BPM manually, follow this simple formula logic:
Find your pulse: Use your index and middle fingers to find the pulse on your wrist (radial artery) or the side of your neck (carotid artery).
Count the beats: Watch a clock and count how many beats you feel within a specific time interval (usually 10, 15, or 30 seconds).
Multiply to get 60 seconds:
If you counted for 10 seconds, multiply the count by 6.
If you counted for 15 seconds, multiply the count by 4.
If you counted for 30 seconds, multiply the count by 2.
Example: If you count 18 beats in 15 seconds, your calculation is 18 × 4 = 72 BPM.
What is a Normal Resting Heart Rate?
For most adults, a normal resting heart rate ranges between 60 and 100 BPM. However, many factors can influence this number:
Fitness Level: Athletes often have lower resting heart rates (sometimes 40-60 BPM) because their heart muscle is more efficient.
Age: Heart rate behavior changes as we age.
Stress & Caffeine: Anxiety, stress, and stimulants can temporarily spike your BPM.
Medications: Beta-blockers may lower BPM, while thyroid medications might raise it.
Understanding Target Heart Rate Zones
To maximize the benefits of cardiovascular exercise, it helps to train within specific "zones" based on your Maximum Heart Rate (MHR). The standard formula to estimate MHR is 220 minus your age.
Moderate Intensity (50-70% of MHR): Ideal for warm-ups and fat burning.
Vigorous Intensity (70-85% of MHR): Best for improving cardiovascular endurance and aerobic capacity.
Maximum Effort (85-100% of MHR): For short intervals (HIIT) and athletic performance training.
function calculateBPM() {
// 1. Get input values
var pulseInput = document.getElementById('pulseCount');
var durationSelect = document.getElementById('countDuration');
var resultBox = document.getElementById('bpmResult');
var outputValue = document.getElementById('bpmOutput');
var categoryText = document.getElementById('bpmCategory');
var beats = parseFloat(pulseInput.value);
var multiplier = parseFloat(durationSelect.value);
// 2. Validate input
if (isNaN(beats) || beats < 0) {
alert("Please enter a valid number of heartbeats.");
return;
}
// 3. Calculate BPM
var bpm = Math.round(beats * multiplier);
// 4. Determine basic category (Resting assumption)
var category = "";
if (bpm = 60 && bpm <= 100) {
category = "Normal Resting Heart Rate";
} else {
category = "Elevated (Tachycardia) – Normal during exercise";
}
// 5. Display Result
outputValue.innerHTML = bpm + " BPM";
categoryText.innerHTML = category;
resultBox.style.display = "block";
}
function calculateZones() {
// 1. Get input
var ageInput = document.getElementById('userAge');
var resultBox = document.getElementById('zoneResult');
var mhrOutput = document.getElementById('mhrOutput');
var tableBody = document.getElementById('zoneTableBody');
var age = parseFloat(ageInput.value);
// 2. Validate
if (isNaN(age) || age 120) {
alert("Please enter a valid age.");
return;
}
// 3. Calculate Max Heart Rate
var mhr = 220 – age;
// 4. Calculate Zones
// Zone 1: 50-60%
var z1_low = Math.round(mhr * 0.50);
var z1_high = Math.round(mhr * 0.60);
// Zone 2: 60-70%
var z2_low = Math.round(mhr * 0.60);
var z2_high = Math.round(mhr * 0.70);
// Zone 3: 70-80%
var z3_low = Math.round(mhr * 0.70);
var z3_high = Math.round(mhr * 0.80);
// Zone 4: 80-90%
var z4_low = Math.round(mhr * 0.80);
var z4_high = Math.round(mhr * 0.90);
// Zone 5: 90-100%
var z5_low = Math.round(mhr * 0.90);
var z5_high = mhr;
// 5. Render Results
mhrOutput.innerHTML = mhr + " BPM";
var htmlContent = `