How to read an arterial blood gas, with or without a calculator

Where ABGs stop being scary
For me it happened on a step-down unit, third overnight in a row, somewhere around 4am. I'd been staring at gases all night and finally something flipped. I stopped reading the values one by one and started seeing them as a small story about the patient. The numbers on their own don't actually tell you anything. The relationship between them does.
An ABG measures three things that matter for acid-base: pH, PaCO₂, and bicarbonate. It throws in a few oxygenation numbers too — PaO₂, SaO₂, base excess — but those answer a different question. Whether you punch the values into a calculator or work them out by hand, the job is the same. Identify the disorder. Decide if the body has compensated. Decide if the compensation makes sense. The math is the easy part.
This is for the people who actually have to read these. Nursing students. Med students. Junior residents. If you're a patient holding a printed lab report, a calculator can give you a label, but the label without a real conversation with your doctor isn't going to mean very much. Numbers always have to be read against the person in the bed.
The numbers and what they actually mean

Normal adult ABG values, with the units that textbooks somehow keep forgetting to print:
pH 7.35 to 7.45. PaCO₂ 35 to 45 mmHg. HCO₃⁻ 22 to 26 mEq/L. PaO₂ 80 to 100 mmHg on room air. Base excess −2 to +2 mEq/L. SaO₂ 95% or above on room air.
The first three are the acid-base story. PaO₂ and SaO₂ tell you whether the lungs are actually moving oxygen, which is a separate problem from the acid-base picture and gets confused constantly.
A pH under 7.35 is acidemia. Over 7.45 is alkalemia. The body works hard to stay in that narrow window because most of your enzymes only function near 7.4, and a pH outside roughly 6.8 to 7.8 is genuinely incompatible with life.
PaCO₂ is the lung's contribution. Think of it as an acid — CO₂ plus water makes carbonic acid, so more CO₂ means a more acidic blood. Your lungs control this minute to minute by adjusting how fast and how deep you breathe.
HCO₃⁻ is the kidney's contribution. It's a base. The kidneys move it slowly, over hours to days, by deciding how much to keep and how much to dump. More bicarbonate means more base in the system. Less means less.
How those three values move relative to each other is the entire game.
The four-step read I still use
There's a systematic approach almost everyone learns and almost everyone keeps using, even after years. It works on simple gases and on the messy mixed disorders that show up in the ICU at three in the morning.
Step one. Look at the pH. Acidemic, alkalemic, or normal.
Step two. Look at PaCO₂ and HCO₃⁻ and decide which one is driving the pH.
Low pH with high PaCO₂ is respiratory acidosis. The lungs aren't moving enough CO₂. Low pH with low HCO₃⁻ is metabolic acidosis — too much acid, too little base, or the kidneys can't excrete acid properly. High pH with low PaCO₂ is respiratory alkalosis, usually from hyperventilating. High pH with high HCO₃⁻ is metabolic alkalosis, classically from vomiting, diuretics, or someone overdoing the bicarb.
Step three. Check whether the body has started compensating. The system that isn't causing the problem will try to bend the pH back toward 7.4. Kidneys hold onto bicarb when CO₂ runs high. Lungs blow off CO₂ when bicarb runs low. Compensation never fully fixes the pH on its own — that takes treating the cause — but it pulls things in the right direction.
Step four. Decide if the compensation makes sense. This is the step the bedside mnemonics gloss over, and it's where actual interpretation lives.
Expected compensation, the part most students skip

These are worth memorising. They're the difference between someone who can label the disorder and someone who can actually interpret the gas.
For metabolic acidosis, expected PaCO₂ ≈ 1.5 × HCO₃⁻ + 8, plus or minus 2. That's Winters' formula. Measured PaCO₂ above the expected range means there's a respiratory acidosis layered on top. Below the range means a respiratory alkalosis is also in play.
For metabolic alkalosis, expected PaCO₂ ≈ HCO₃⁻ + 15. Same logic — higher than expected means concurrent respiratory acidosis, lower means concurrent respiratory alkalosis.
For acute respiratory acidosis, HCO₃⁻ rises about 1 mEq/L per 10 mmHg of CO₂ above 40. For chronic, it's closer to 3 to 4 per 10. For acute respiratory alkalosis, HCO₃⁻ falls about 2 per 10 below 40. For chronic, around 4 to 5 per 10.
A decent ABG calculator runs all of these in the background and tells you whether what you're seeing fits a single disorder or hints at a mixed one. If your calculator just labels the disorder and stops, it's missing the most clinically useful step.
ROME, tic-tac-toe, and what works at the bedside
ROME — Respiratory Opposite, Metabolic Equal — is usually the first mnemonic students pick up. If pH and PaCO₂ move in opposite directions, the primary disorder is respiratory. If they move together, it's metabolic. Quick, useful for a gut check. Doesn't tell you anything about compensation or whether you're looking at one disorder or three.
The tic-tac-toe method (you'll also hear it called the Stewart approach in some textbooks) is more thorough. You sketch a small grid, mark each value as acid, normal, or base, and read off the disorder from where things land. Most experienced clinicians I've watched stop drawing the grid pretty quickly because they've seen the patterns enough times. For a student, the visual scaffolding genuinely helps.
The four-step approach above is what gets used in practice. It's slower than ROME but it doesn't fail on the messy cases.
The anion gap and why it catches things you'd miss
The anion gap is the calculation that catches metabolic acidoses you wouldn't otherwise see. It's the difference between the cations and anions you can measure on a basic panel, and it exists because there are unmeasured anions floating around — proteins, phosphates, sulfates — that don't show up on the standard chemistry.
Standard formula: AG = Na⁺ − (Cl⁻ + HCO₃⁻). Normal is 8 to 12 mEq/L on most labs (some use 3 to 11 if they include potassium).
A high-anion-gap metabolic acidosis (HAGMA) means there's an extra acid in the blood that the panel doesn't measure directly. The acid eats bicarbonate and gets replaced by an unmeasured anion, so the gap opens up. The classic mnemonic is MUDPILES: Methanol, Uremia, DKA, Propylene glycol, Iron or Isoniazid, Lactic acidosis, Ethylene glycol, Salicylates.
A normal-anion-gap metabolic acidosis (NAGMA) means bicarb has been lost and replaced by chloride one for one, leaving the gap unchanged. Usually diarrhea, renal tubular acidosis, or a pancreatic fistula.
The distinction matters because the treatments are completely different. HAGMA from DKA needs insulin and fluids. NAGMA from severe diarrhea needs volume and bicarbonate replacement. Same low bicarb on the gas, very different plan.
Base excess, plainly
Base excess is how much acid or base you'd need to add to a litre of blood to bring it back to a normal pH at a normal CO₂. Positive means there's more bicarbonate than expected. Negative means there's less.
It's a fast metabolic summary. If pH is off but base excess is normal, the disorder is purely respiratory. Significantly negative base excess points to a metabolic acidosis component. Significantly positive points to a metabolic alkalosis component. Trauma and surgical teams lean on it because it gives a quick read of whether the metabolic side is contributing without having to think about it.
One thing — the line you sometimes see in patient-facing articles, that negative base excess means the body has "burned through" its bicarbonate fighting an attack, isn't really how it works. Bicarbonate doesn't get used up in a struggle. It drops because something is producing acid that titrates it, or the gut or kidneys are losing it, or the kidneys aren't making enough new bicarb. The number tells you the size of the problem. The patient tells you the cause.
Oxygenation is a separate question

ABGs measure two different things that get mashed together: gas exchange and acid-base. PaO₂ and SaO₂ are about gas exchange. pH, PaCO₂, and HCO₃⁻ are about acid-base.
A patient can have a perfectly normal acid-base picture and dreadful oxygenation, or vice versa. A long-standing COPD patient with a respiratory acidosis might still hold a reasonable PaO₂ because they've been compensating for years. Someone with severe pneumonia might have a critically low PaO₂ and a near-normal pH because they're hyperventilating to make up for it.
For oxygenation, the numbers I keep at the front of my head: PaO₂ under 60 mmHg is hypoxemia. Under 40 is severe.
The A-a gradient (alveolar-arterial gradient) tells you whether the issue is in the lungs themselves or whether it's a ventilation problem. Normal is 5 to 15 in young adults and creeps up with age. A wide A-a gradient with a low PaO₂ means there's a lung problem — pneumonia, ARDS, PE, V/Q mismatch. A normal gradient with a low PaO₂ usually means the patient isn't breathing enough or isn't getting enough inspired oxygen.
Most calculators handle the A-a gradient automatically when you enter FiO₂. The full formula is A-a = (FiO₂ × (atmospheric pressure − water vapour pressure)) − (PaCO₂ / 0.8) − PaO₂. At sea level on room air it simplifies to roughly 150 − (PaCO₂ / 0.8) − PaO₂.
Arterial vs venous — when a VBG is enough

ABGs come from an artery, usually the radial. Venous gases come from a vein and look similar but not identical.
Venous pH runs about 0.03 to 0.04 lower than arterial. Venous PaCO₂ runs 4 to 8 mmHg higher. Venous bicarbonate is essentially the same as arterial. Venous PaO₂ is much lower (35 to 45 mmHg) and shouldn't be used to assess oxygenation.
That means if you've got a VBG and you only need acid-base information, you can mentally correct — add about 0.03 to the pH, subtract about 6 from the CO₂, leave the bicarb alone. The oxygen number from a VBG is not interpretable as an arterial value, full stop.
Arterial sticks hurt more and carry more risk — hematomas, occasionally arterial spasm or thrombosis. For a stable patient where you only need acid-base, a VBG is reasonable. For respiratory failure, ARDS, or anyone where the oxygenation actually matters, it has to be arterial.
What the calculator can and can't do

A good ABG calculator takes pH, PaCO₂, and HCO₃⁻, plus optionally Na⁺, Cl⁻, FiO₂, and a few other inputs, and tells you the primary acid-base disorder, whether compensation is present and appropriate, the anion gap if you provided electrolytes, the A-a gradient if you provided FiO₂, and whether there's a mixed disorder.
What it can't do is tell you what's wrong with the patient. A respiratory acidosis with appropriate compensation could be chronic COPD, an opioid overdose, a neuromuscular disease, or a dozen other things. The calculator gives you the label. The history, exam, other labs, and clinical context are what tell you what to actually do about it.
A worked example from a real shift
Patient: 64 with known COPD, three days of worsening shortness of breath. ABG: pH 7.31, PaCO₂ 65, HCO₃⁻ 32, PaO₂ 58 on 2 L nasal cannula.
Step one. pH 7.31 — acidemic.
Step two. PaCO₂ is high at 65, HCO₃⁻ is high at 32. Acidemia with a high CO₂ means the primary problem is respiratory acidosis. The high bicarbonate isn't a primary metabolic alkalosis — it's the kidney pulling its weight in compensation.
Step three. Acute or chronic? CO₂ is 25 above 40. If this were acute, you'd expect HCO₃⁻ to rise about 1 per 10, so roughly 26 or 27. If chronic, more like 3 to 4 per 10, so roughly 31 to 34. Measured 32 fits the chronic pattern, which lines up with a known COPD patient who has probably been at this baseline for a while.
Step four. PaO₂ of 58 on supplemental oxygen is hypoxemia. On 2 L nasal cannula (call it ~28% FiO₂), the A-a gradient is going to be wide, which fits the underlying lung disease.
Read: chronic respiratory acidosis with appropriate metabolic compensation, plus hypoxemia. Treatment is going to be about whatever's driving the acute worsening — bronchodilators, possibly antibiotics, possibly steroids, possibly noninvasive ventilation if the CO₂ keeps climbing. The calculator gets you to the label. Everything past that is clinical reasoning.
The mistakes I keep watching people make
Calling something a mixed disorder when it's just compensation. A respiratory acidosis with a raised bicarb is a respiratory acidosis with normal compensation. The mixed disorder is when the compensation doesn't match what's expected.
Forgetting to calculate the anion gap on every metabolic acidosis. HAGMA and NAGMA have different causes and different treatments. Skipping the gap is guessing.
Treating a low pH without working out why it's low. Bicarbonate boluses are sometimes appropriate for severe acidemia, but they're a holding action. The actual treatment is whatever's making the patient acidotic in the first place.
Treating the gas instead of the patient. If the numbers look ugly but the person in the bed is calm, talking, and at their long-standing baseline, you usually don't need to do anything urgent. Stable chronic abnormalities aren't the same problem as acute decompensation.
Drawing an ABG when a VBG would have answered the question. Arterial sticks hurt. Don't reach for one out of habit.
A short routine when the gas comes back
Look at it in this order, every time.
pH. Where does the patient sit on the 7.35 to 7.45 range.
PaCO₂. Is this driving the pH or trying to compensate.
HCO₃⁻. Same question for the metabolic side.
Anion gap. Calculate it on every metabolic acidosis.
PaO₂ and SaO₂. Is the patient oxygenating, given the FiO₂ they're on.
Compensation check. Does what you see line up with a single primary disorder. If not, look for a mixed one.
Clinical correlation. What was this gas supposed to answer. Does the result fit the person in front of you. If not, repeat it before you act on it.
That's the whole routine. The calculator handles the arithmetic. You handle everything else.

Hannah Brooks