How to Calculate Heart Rate from Ecg Graph

ECG Heart Rate Calculator

Calculate BPM based on R-R interval squares

Small Squares Method (1500 Rule) – Most Accurate Large Squares Method (300 Rule) Standard ECG paper speed is 25mm/sec.
Estimated Heart Rate:

How to Calculate Heart Rate from an ECG Graph

Electrocardiogram (ECG) interpretation requires accurate measurement of the heart rate. Since ECG paper moves at a constant speed, we can use the grid lines to determine the Beats Per Minute (BPM).

1. The 1500 Rule (Small Squares)

This is the most accurate method for regular rhythms. On standard ECG paper (25mm/s), there are 1,500 small squares in one minute.

  • Count the number of small 1mm squares between two consecutive R-waves (the peaks).
  • Divide 1500 by that number.
  • Formula: HR = 1500 / (Number of Small Squares)

2. The 300 Rule (Large Squares)

This method is faster for a quick visual estimate. One large square consists of 5 small squares. There are 300 large squares in one minute.

  • Count the number of large squares (5mm boxes) between two R-waves.
  • Divide 300 by that number.
  • Formula: HR = 300 / (Number of Large Squares)

ECG Grid Measurements at 25mm/s

Feature Measurement
1 Small Square 0.04 Seconds (1mm)
1 Large Square 0.20 Seconds (5mm)
5 Large Squares 1.00 Second (25mm)

Calculation Examples

Example A: If there are 4 large squares between R-waves, the heart rate is 300 / 4 = 75 BPM.

Example B: If there are 15 small squares between R-waves, the heart rate is 1500 / 15 = 100 BPM.

document.getElementById('calcMethod').onchange = function() { var method = document.getElementById('calcMethod').value; var label = document.getElementById('inputLabel'); if (method === 'small') { label.innerHTML = 'Number of Small Squares between R waves'; } else { label.innerHTML = 'Number of Large Squares between R waves'; } }; function calculateHeartRate() { var method = document.getElementById('calcMethod').value; var count = parseFloat(document.getElementById('squareCount').value); var resultDiv = document.getElementById('ecgResult'); var bpmOutput = document.getElementById('bpmOutput'); var interpDiv = document.getElementById('interpretation'); if (isNaN(count) || count <= 0) { alert('Please enter a valid number of squares.'); return; } var bpm = 0; if (method === 'small') { bpm = 1500 / count; } else { bpm = 300 / count; } bpm = Math.round(bpm); bpmOutput.innerHTML = bpm + ' BPM'; var status = ""; var bgColor = ""; var textColor = "#fff"; if (bpm = 60 && bpm <= 100) { status = "Normal Heart Rate"; bgColor = "#4caf50"; } else { status = "Tachycardia (Fast Heart Rate)"; bgColor = "#f44336"; } interpDiv.innerHTML = status; interpDiv.style.backgroundColor = bgColor; interpDiv.style.color = textColor; resultDiv.style.display = 'block'; }

Leave a Comment