Electrocardiograms (ECGs) provide a visual representation of the heart's electrical activity. Determining the heart rate is the first step in clinical rhythm analysis. The method you choose depends on whether the heart rhythm is regular or irregular.
1. The 1500 Rule (Most Accurate for Regular Rhythms)
Standard ECG paper moves at a speed of 25 mm/sec. This means there are 1,500 small squares (1mm each) in one minute of recording. To calculate the heart rate, count the number of small squares between two consecutive R-waves (the R-R interval) and divide 1,500 by that number.
Formula: 1500 / Number of Small Squares = Heart Rate (BPM)
2. The 300 Rule (Large Square Method)
A faster way to estimate heart rate is using the large squares (5mm). There are 300 large squares in one minute. Count the number of large squares between consecutive R-waves.
Formula: 300 / Number of Large Squares = Heart Rate (BPM)
3. The 6-Second Method (Best for Irregular Rhythms)
If the heart rate is irregular (like in Atrial Fibrillation), the R-R interval varies, making the previous methods inaccurate. Instead, look at a 6-second strip (usually 30 large squares) and count the number of QRS complexes (R-peaks) within that timeframe. Multiply that number by 10 to find the beats per minute.
Formula: Number of QRS complexes in 6 seconds × 10 = Heart Rate (BPM)
Reference Table for Heart Rate Interpretation
Heart Rate Range
Classification
Below 60 BPM
Bradycardia (Slow)
60 – 100 BPM
Normal Sinus Rhythm
Above 100 BPM
Tachycardia (Fast)
Example Calculations
Example 1: You count 15 small squares between two R-waves. (1500 / 15) = 100 BPM.
Example 2: You count 4 large squares between two R-waves. (300 / 4) = 75 BPM.
Example 3: In an irregular rhythm, you count 8 QRS complexes in a 6-second strip. (8 x 10) = 80 BPM.
function updateInputs() {
var method = document.getElementById("calcMethod").value;
var label = document.getElementById("inputLabel");
var input = document.getElementById("ecgInputValue");
if (method === "1500") {
label.innerText = "Number of Small Squares (between R-R)";
input.placeholder = "e.g. 20";
} else if (method === "300") {
label.innerText = "Number of Large Squares (between R-R)";
input.placeholder = "e.g. 4";
} else if (method === "6sec") {
label.innerText = "Number of QRS Complexes (in 6 seconds)";
input.placeholder = "e.g. 7";
}
document.getElementById("ecgResultBox").style.display = "none";
}
function calculateHeartRate() {
var method = document.getElementById("calcMethod").value;
var inputVal = parseFloat(document.getElementById("ecgInputValue").value);
var result = 0;
var interpretation = "";
if (!inputVal || inputVal <= 0) {
alert("Please enter a valid positive number.");
return;
}
if (method === "1500") {
result = 1500 / inputVal;
} else if (method === "300") {
result = 300 / inputVal;
} else if (method === "6sec") {
result = inputVal * 10;
}
var finalBpm = Math.round(result);
document.getElementById("bpmResult").innerText = finalBpm;
if (finalBpm = 60 && finalBpm <= 100) {
interpretation = "Interpretation: Normal Heart Rate";
} else {
interpretation = "Interpretation: Tachycardia (Rapid heart rate)";
}
document.getElementById("interpretation").innerText = interpretation;
document.getElementById("ecgResultBox").style.display = "block";
}