{
  "id": "ecg-heart-rate",
  "version": "5f40643e8e62",
  "status": "published",
  "name": "ECG Heart Rate Calculator",
  "question": "What is the ECG heart rate?",
  "summary": "Works out the heart rate from an ECG with the 300 rule (large squares), the 1500 rule (small squares), or a count of R-R intervals on a rhythm strip, at a paper speed of 25 or 50 mm/s.",
  "category": "health",
  "subcategory": "clinical",
  "url": "https://www.acalculator.org/health/ecg-heart-rate-calculator",
  "markdown": "https://www.acalculator.org/health/ecg-heart-rate-calculator.md",
  "kind": "function",
  "method": "Rate = 60 ÷ R-R interval in seconds. At 25 mm/s a large square is 0.2 s and a small square 0.04 s, so rate = 300 ÷ large squares = 1500 ÷ small squares (600 and 3000 at 50 mm/s). On a strip, rate = R-R intervals × 60 ÷ seconds. Rounded once to a whole number.",
  "assumptions": [
    "The square rules need a regular rhythm; for an irregular rhythm, count R-R intervals on a strip.",
    "The rate is worked from the exact typed counts and rounded once to a whole number, halves up; the reading uses the shown rate.",
    "The bradycardia and tachycardia cut-offs (under 60, over 100) are adult values; the BMJ article gives under 50 for sleep, and children have faster resting rates."
  ],
  "inputs": {
    "$schema": "https://json-schema.org/draft/2020-12/schema",
    "type": "object",
    "properties": {
      "method": {
        "title": "Method",
        "description": "Count large squares or small squares between two R waves, or R-R intervals on a strip.",
        "type": "string",
        "enum": [
          "large",
          "small",
          "strip"
        ]
      },
      "speed": {
        "title": "Paper speed",
        "description": "The ECG paper speed: 25 mm/s is the standard; some countries use 50 mm/s.",
        "type": "string",
        "enum": [
          "25",
          "50"
        ]
      },
      "large": {
        "title": "Large squares between R waves",
        "description": "Large (5 mm) squares between two consecutive R waves, 1 to 30; parts of a square are fine.",
        "type": "number",
        "minimum": 1,
        "maximum": 30
      },
      "small": {
        "title": "Small squares between R waves",
        "description": "Small (1 mm) squares between two consecutive R waves, 5 to 150.",
        "type": "number",
        "minimum": 5,
        "maximum": 150
      },
      "n": {
        "title": "R-R intervals on the strip",
        "description": "The number of spaces between QRS complexes on the strip, 1 to 100 (not the number of complexes).",
        "type": "integer",
        "minimum": 1,
        "maximum": 100
      },
      "s": {
        "title": "Strip length (seconds)",
        "description": "How long the strip lasts, 1 to 60 seconds: 10 for a standard rhythm strip, or 6.",
        "type": "number",
        "minimum": 1,
        "maximum": 60
      }
    }
  },
  "outputs": {
    "rate": {
      "label": "Heart rate (beats/min)",
      "description": "The heart rate in beats per minute, to a whole number.",
      "format": "number"
    },
    "rr": {
      "label": "R-R interval (ms)",
      "description": "The time between the two R waves, in milliseconds, to a whole number.",
      "format": "number"
    },
    "reading": {
      "label": "Reading",
      "description": "Bradycardia under 60, tachycardia over 100 beats per minute (BMJ 2002).",
      "format": "text"
    }
  },
  "defaultAnswer": {
    "inputs": {
      "method": "large",
      "speed": "25",
      "large": 4,
      "small": 20,
      "n": 12,
      "s": 10
    },
    "outputs": {
      "rate": 75,
      "rr": 800,
      "reading": "60 to 100"
    },
    "text": "The heart rate is 75 beats per minute: 60 to 100."
  },
  "examples": [
    {
      "given": {
        "method": "large",
        "speed": "25",
        "large": 4
      },
      "expect": {
        "rate": 75,
        "rr": 800,
        "reading": "60 to 100"
      },
      "source": "Meek and Morris 2002 (BMJ): 300 ÷ 4 large squares = 75 beats/min; 4 × 0.2 s = 800 ms (hand calculation)"
    },
    {
      "given": {
        "method": "large",
        "speed": "25",
        "large": 2
      },
      "expect": {
        "rate": 150,
        "rr": 400,
        "reading": "Tachycardia (over 100)"
      },
      "source": "Meek and Morris 2002 (BMJ), figure: an R-R interval of two large squares gives 300 ÷ 2 = 150 beats/min"
    },
    {
      "given": {
        "method": "strip",
        "n": 21,
        "s": 10
      },
      "expect": {
        "rate": 126,
        "reading": "Tachycardia (over 100)"
      },
      "source": "Meek and Morris 2002 (BMJ), figure: 21 intervals on a 10-second strip give 6 × 21 = 126 beats/min"
    },
    {
      "given": {
        "method": "small",
        "speed": "25",
        "small": 22
      },
      "expect": {
        "rate": 68,
        "rr": 880,
        "reading": "60 to 100"
      },
      "source": "Meek and Morris 2002 (BMJ): 1500 ÷ small squares; 22 × 0.04 s = 880 ms (hand calculation in content.mdx)"
    },
    {
      "given": {
        "method": "large",
        "speed": "50",
        "large": 10
      },
      "expect": {
        "rate": 60,
        "rr": 1000,
        "reading": "60 to 100"
      },
      "source": "Meek and Morris 2002 (BMJ): at 50 mm/s, 600 ÷ 10 large squares = 60 beats/min (hand calculation)"
    },
    {
      "given": {
        "method": "small",
        "speed": "50",
        "small": 40
      },
      "expect": {
        "rate": 75,
        "rr": 800,
        "reading": "60 to 100"
      },
      "source": "Meek and Morris 2002 (BMJ): at 50 mm/s, 3000 ÷ 40 small squares = 75 beats/min (hand calculation)"
    },
    {
      "given": {
        "method": "strip",
        "n": 7,
        "s": 6
      },
      "expect": {
        "rate": 70,
        "reading": "60 to 100"
      },
      "source": "The BMJ strip count on a 6-second strip: 7 × 60 ÷ 6 = 70 beats/min (hand calculation in content.mdx)"
    },
    {
      "given": {
        "method": "large",
        "speed": "25",
        "large": 8
      },
      "expect": {
        "rate": 38,
        "rr": 1600,
        "reading": "Bradycardia (under 60)"
      },
      "source": "Meek and Morris 2002 (BMJ): bradycardia is under 60 beats/min (hand calculation in content.mdx)"
    },
    {
      "given": {
        "method": "large",
        "speed": "25",
        "large": 3
      },
      "expect": {
        "rate": 100,
        "rr": 600,
        "reading": "60 to 100"
      },
      "source": "Meek and Morris 2002 (BMJ): tachycardia is over 100, so 300 ÷ 3 = 100 is not (hand calculation)"
    }
  ],
  "sources": [
    "Meek S, Morris F. ABC of clinical electrocardiography: Introduction. I—Leads, rate, rhythm, and cardiac axis. BMJ. 2002;324(7334):415-418 (25 mm/s paper, 0.2 s and 0.04 s squares; 300, 1500, 600, and 3000 rules; R-R intervals in 10 seconds × 6; worked examples of 150 and 126 beats per minute; tachycardia over 100, bradycardia under 60). https://doi.org/10.1136/bmj.324.7334.415 (full text: https://pmc.ncbi.nlm.nih.gov/articles/PMC1122339/, retrieved 2026-10-18)",
    "Goodacre S, McLeod K. ABC of clinical electrocardiography: Paediatric electrocardiography. BMJ. 2002;324(7350):1382-1385 (the resting heart rate falls from about 140 beats per minute at birth to adult values by 10 years; a rate over 100 may be normal in children). https://pmc.ncbi.nlm.nih.gov/articles/PMC1123332/ (retrieved 2026-10-18)"
  ],
  "related": [
    "qtc",
    "max-heart-rate"
  ],
  "changelog": [
    {
      "date": "2026-10-19",
      "note": "Published after this site's editorial review against the cited sources (no clinician review); the page notices say so."
    }
  ]
}
