{
  "slug": "winters-formula",
  "title": "Winter's Formula Calculator",
  "heading": "Winter's Formula for Respiratory Compensation",
  "category": "fitness-health",
  "url": "https://www.revenuelab.fyi/toolbox/winters-formula",
  "summary": "Check whether pCO2 appropriately compensates a metabolic acidosis.",
  "description": "Winter's formula predicts the expected pCO2 for a given degree of metabolic acidosis, letting you check whether a patient's respiratory system is compensating appropriately or whether a second, independent acid-base disorder is also present. If the measured pCO2 matches the predicted range, the respiratory response is appropriate and there is a single primary metabolic acidosis. If measured pCO2 is lower than predicted, there is an additional primary respiratory alkalosis (the patient is hyperventilating beyond what compensation alone would explain — classic in sepsis, salicylate toxicity, or pain/anxiety). If measured pCO2 is higher than predicted, there is an additional primary respiratory acidosis (the patient cannot compensate adequately, from fatigue, sedation, opioids, or an intrinsic lung/neuromuscular process) — this is a dangerous combination because there's no more respiratory buffering left. Winter's formula only applies to metabolic acidosis; different expected-compensation formulas exist for the other three primary acid-base disorders. 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": "Expected pCO2 = 1.5 × HCO3 + 8 ± 2 (mmHg).",
  "dateModified": "2026-09-30",
  "run_url": "https://www.revenuelab.fyi/api/public/calc?tool=winters-formula",
  "inputs": [
    {
      "id": "hco3",
      "label": "Bicarbonate (HCO3)",
      "kind": "number",
      "hint": null,
      "default": 12,
      "unit": "mEq/L",
      "min": 2,
      "max": 40
    },
    {
      "id": "measuredPco2",
      "label": "Measured pCO2",
      "kind": "number",
      "hint": null,
      "default": 26,
      "unit": "mmHg",
      "min": 5,
      "max": 100
    }
  ],
  "outputs": [
    {
      "id": "expected",
      "label": "Expected pCO2",
      "format": "decimal",
      "hint": null,
      "primary": true
    },
    {
      "id": "range",
      "label": "Expected range (±2)",
      "format": "raw",
      "hint": null,
      "primary": false
    },
    {
      "id": "finding",
      "label": "Compensation assessment",
      "format": "raw",
      "hint": null,
      "primary": false
    }
  ],
  "worked_example": {
    "inputs": [
      "Bicarbonate (HCO3): 12 mEq/L",
      "Measured pCO2: 26 mmHg"
    ],
    "outputs": [
      "Expected pCO2: 26",
      "Expected range (±2): 24.0–28.0",
      "Compensation assessment: Appropriate respiratory compensation"
    ]
  },
  "how_to": {
    "title": "How to use this",
    "steps": [
      "Enter bicarbonate (hco3) (mEq/L).",
      "Enter measured pco2 (mmHg).",
      "Read your expected pco2 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": {
        "hco3": 7,
        "measuredPco2": 16
      }
    },
    {
      "name": "Typical",
      "description": "Defaults — the most common real-world setup.",
      "values": {
        "hco3": 12,
        "measuredPco2": 26
      }
    },
    {
      "name": "Ambitious",
      "description": "Higher-end numbers — what if things really pop?",
      "values": {
        "hco3": 19,
        "measuredPco2": 42
      }
    }
  ],
  "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 if measured pCO2 falls within the expected range?",
      "a": "Then the respiratory system is compensating exactly as predicted for a single, simple metabolic acidosis, and you don't need to look for a second acid-base process based on this test alone. Continue treating the underlying cause of the metabolic acidosis."
    },
    {
      "q": "What does it mean if the pCO2 is lower than predicted?",
      "a": "It means the patient is hyperventilating beyond what compensation for the metabolic acidosis alone would explain, indicating an additional primary respiratory alkalosis. Common causes include sepsis, pain, anxiety, pregnancy, and salicylate toxicity, which classically causes both a primary respiratory alkalosis and an anion gap metabolic acidosis simultaneously."
    },
    {
      "q": "Why is a higher-than-predicted pCO2 particularly concerning?",
      "a": "It means the patient cannot mount adequate respiratory compensation for their metabolic acidosis — there's a concurrent primary respiratory acidosis on top of the metabolic one, so both systems are failing to protect pH. This combination causes a much more severe acidemia than either disorder alone and often signals respiratory fatigue, sedation, or a separate lung process requiring urgent attention."
    },
    {
      "q": "Does Winter's formula apply to other acid-base disorders?",
      "a": "No — it's specific to compensation for metabolic acidosis. Metabolic alkalosis, respiratory acidosis, and respiratory alkalosis each have their own separate expected-compensation formulas and time courses (acute versus chronic respiratory disorders compensate differently), so don't apply Winter's formula outside its intended use."
    }
  ],
  "related": [
    "https://www.revenuelab.fyi/toolbox/abg-interpretation",
    "https://www.revenuelab.fyi/toolbox/delta-gap-ratio",
    "https://www.revenuelab.fyi/toolbox/osmolar-gap"
  ],
  "license": "CC-BY-4.0",
  "citation": "RevenueLab — Winter's Formula Calculator (https://www.revenuelab.fyi/toolbox/winters-formula)"
}