{
  "slug": "shock-index",
  "title": "Shock Index Calculator",
  "heading": "Shock Index Calculator",
  "category": "fitness-health",
  "url": "https://www.revenuelab.fyi/toolbox/shock-index",
  "summary": "Screen for occult hemodynamic compromise from heart rate and systolic BP.",
  "description": "Shock index is heart rate divided by systolic blood pressure, and it flags hemodynamic compromise earlier than either vital sign alone because compensatory tachycardia can mask a falling blood pressure in early shock, especially hemorrhagic shock in trauma and postpartum hemorrhage. A normal shock index is roughly 0.5 to 0.7; values at or above 0.9-1.0 correlate with higher transfusion needs, ICU admission, and mortality in trauma and sepsis literature. It is a rapid triage screen, not a diagnosis, and it performs worse in patients on beta-blockers (blunted tachycardic response) or with baseline hypertension (higher \"normal\" pressure masking relative hypotension). Age-adjusted and modified shock index (using mean arterial pressure instead of systolic) variants exist and can be more sensitive in elderly patients, where a shock index of even 0.7-0.8 may already represent significant compromise relative to their baseline. Use it to trigger closer monitoring or workup, not to rule out shock on a normal value alone. This tool is for education and workflow support only — not medical advice. Always verify results with a clinician and use clinical judgment alongside your institution's protocols.",
  "formula": "Shock Index = heart rate (bpm) ÷ systolic blood pressure (mmHg).",
  "dateModified": "2026-09-30",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=shock-index",
  "inputs": [
    {
      "id": "hr",
      "label": "Heart rate",
      "kind": "number",
      "hint": null,
      "default": 110,
      "unit": "bpm",
      "min": 20,
      "max": 220
    },
    {
      "id": "sbp",
      "label": "Systolic blood pressure",
      "kind": "number",
      "hint": null,
      "default": 95,
      "unit": "mmHg",
      "min": 40,
      "max": 250
    },
    {
      "id": "age",
      "label": "Age",
      "kind": "number",
      "hint": null,
      "default": 45,
      "unit": "years",
      "min": 1,
      "max": 110
    }
  ],
  "outputs": [
    {
      "id": "si",
      "label": "Shock index",
      "format": "decimal",
      "hint": null,
      "primary": true
    },
    {
      "id": "ageIndex",
      "label": "Age-adjusted shock index (age × SI)",
      "format": "decimal",
      "hint": null,
      "primary": false
    },
    {
      "id": "risk",
      "label": "Screening interpretation",
      "format": "raw",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "Heart rate: 110 bpm",
      "Systolic blood pressure: 95 mmHg",
      "Age: 45 years"
    ],
    "outputs": [
      "Shock index: 1.16",
      "Age-adjusted shock index (age × SI): 52.1",
      "Screening interpretation: High — reassess urgently"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter heart rate (bpm).",
      "Enter systolic blood pressure (mmHg).",
      "Enter age (years).",
      "Read your shock index on the right — it updates as you type.",
      "Hit Share to keep the scenario or send it to someone."
    ]
  },
  "scenarios": [
    {
      "name": "Conservative",
      "description": "Lower-end numbers — what if things land soft?",
      "values": {
        "hr": 66,
        "sbp": 57,
        "age": 45
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "hr": 110,
        "sbp": 95,
        "age": 45
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "hr": 176,
        "sbp": 152,
        "age": 45
      }
    }
  ],
  "limitations": [
    "Population formulas describe averages; individual bodies vary, especially at the extremes of height, age, or muscle mass.",
    "Results do not account for medical conditions, medication, or pregnancy.",
    "Use this as a directional reference, not a diagnosis — talk to a clinician before acting on it."
  ],
  "faq": [
    {
      "q": "What shock index warrants action?",
      "a": "A shock index at or above 0.9-1.0 has repeatedly been associated with higher transfusion requirements and mortality in trauma and obstetric hemorrhage studies. Treat that threshold as a trigger for reassessment, additional access, labs, and closer monitoring rather than waiting for overt hypotension to develop."
    },
    {
      "q": "Why does it work better than blood pressure alone?",
      "a": "Young, otherwise healthy patients compensate for blood loss with vasoconstriction and tachycardia, which can keep systolic blood pressure deceptively normal until 30% or more of blood volume is lost. Because shock index incorporates heart rate, it captures that compensatory tachycardia and flags trouble sooner."
    },
    {
      "q": "Does it work in elderly or beta-blocked patients?",
      "a": "Less reliably. Beta-blockers blunt the tachycardic response, so a beta-blocked patient in shock may show a falsely reassuring shock index. In elderly patients, age-adjusted shock index (age × SI) has better predictive performance because it accounts for reduced physiologic reserve at any given index value."
    },
    {
      "q": "Can shock index be used in sepsis, not just trauma?",
      "a": "Yes, it has been studied in sepsis and postpartum hemorrhage as well, generally with the same threshold logic: rising or elevated shock index correlates with worse outcomes and should prompt fluid resuscitation review, lactate measurement, and closer hemodynamic monitoring."
    }
  ],
  "related": [
    "https://www.revenuelab.fyi/toolbox/qtc-interval",
    "https://www.revenuelab.fyi/toolbox/curb-65-score",
    "https://www.revenuelab.fyi/toolbox/glasgow-coma-scale"
  ],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — Shock Index Calculator (https://www.revenuelab.fyi/toolbox/shock-index)"
}