12.3: The Henderson–Hasselbalch Equation
- Page ID
- 34564
\( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)
\( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)
\( \newcommand{\id}{\mathrm{id}}\) \( \newcommand{\Span}{\mathrm{span}}\)
( \newcommand{\kernel}{\mathrm{null}\,}\) \( \newcommand{\range}{\mathrm{range}\,}\)
\( \newcommand{\RealPart}{\mathrm{Re}}\) \( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)
\( \newcommand{\Argument}{\mathrm{Arg}}\) \( \newcommand{\norm}[1]{\| #1 \|}\)
\( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)
\( \newcommand{\Span}{\mathrm{span}}\)
\( \newcommand{\id}{\mathrm{id}}\)
\( \newcommand{\Span}{\mathrm{span}}\)
\( \newcommand{\kernel}{\mathrm{null}\,}\)
\( \newcommand{\range}{\mathrm{range}\,}\)
\( \newcommand{\RealPart}{\mathrm{Re}}\)
\( \newcommand{\ImaginaryPart}{\mathrm{Im}}\)
\( \newcommand{\Argument}{\mathrm{Arg}}\)
\( \newcommand{\norm}[1]{\| #1 \|}\)
\( \newcommand{\inner}[2]{\langle #1, #2 \rangle}\)
\( \newcommand{\Span}{\mathrm{span}}\) \( \newcommand{\AA}{\unicode[.8,0]{x212B}}\)
\( \newcommand{\vectorA}[1]{\vec{#1}} % arrow\)
\( \newcommand{\vectorAt}[1]{\vec{\text{#1}}} % arrow\)
\( \newcommand{\vectorB}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)
\( \newcommand{\vectorC}[1]{\textbf{#1}} \)
\( \newcommand{\vectorD}[1]{\overrightarrow{#1}} \)
\( \newcommand{\vectorDt}[1]{\overrightarrow{\text{#1}}} \)
\( \newcommand{\vectE}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash{\mathbf {#1}}}} \)
\( \newcommand{\vecs}[1]{\overset { \scriptstyle \rightharpoonup} {\mathbf{#1}} } \)
\( \newcommand{\vecd}[1]{\overset{-\!-\!\rightharpoonup}{\vphantom{a}\smash {#1}}} \)
\(\newcommand{\avec}{\mathbf a}\) \(\newcommand{\bvec}{\mathbf b}\) \(\newcommand{\cvec}{\mathbf c}\) \(\newcommand{\dvec}{\mathbf d}\) \(\newcommand{\dtil}{\widetilde{\mathbf d}}\) \(\newcommand{\evec}{\mathbf e}\) \(\newcommand{\fvec}{\mathbf f}\) \(\newcommand{\nvec}{\mathbf n}\) \(\newcommand{\pvec}{\mathbf p}\) \(\newcommand{\qvec}{\mathbf q}\) \(\newcommand{\svec}{\mathbf s}\) \(\newcommand{\tvec}{\mathbf t}\) \(\newcommand{\uvec}{\mathbf u}\) \(\newcommand{\vvec}{\mathbf v}\) \(\newcommand{\wvec}{\mathbf w}\) \(\newcommand{\xvec}{\mathbf x}\) \(\newcommand{\yvec}{\mathbf y}\) \(\newcommand{\zvec}{\mathbf z}\) \(\newcommand{\rvec}{\mathbf r}\) \(\newcommand{\mvec}{\mathbf m}\) \(\newcommand{\zerovec}{\mathbf 0}\) \(\newcommand{\onevec}{\mathbf 1}\) \(\newcommand{\real}{\mathbb R}\) \(\newcommand{\twovec}[2]{\left[\begin{array}{r}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\ctwovec}[2]{\left[\begin{array}{c}#1 \\ #2 \end{array}\right]}\) \(\newcommand{\threevec}[3]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\cthreevec}[3]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \end{array}\right]}\) \(\newcommand{\fourvec}[4]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\cfourvec}[4]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \end{array}\right]}\) \(\newcommand{\fivevec}[5]{\left[\begin{array}{r}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\cfivevec}[5]{\left[\begin{array}{c}#1 \\ #2 \\ #3 \\ #4 \\ #5 \\ \end{array}\right]}\) \(\newcommand{\mattwo}[4]{\left[\begin{array}{rr}#1 \amp #2 \\ #3 \amp #4 \\ \end{array}\right]}\) \(\newcommand{\laspan}[1]{\text{Span}\{#1\}}\) \(\newcommand{\bcal}{\cal B}\) \(\newcommand{\ccal}{\cal C}\) \(\newcommand{\scal}{\cal S}\) \(\newcommand{\wcal}{\cal W}\) \(\newcommand{\ecal}{\cal E}\) \(\newcommand{\coords}[2]{\left\{#1\right\}_{#2}}\) \(\newcommand{\gray}[1]{\color{gray}{#1}}\) \(\newcommand{\lgray}[1]{\color{lightgray}{#1}}\) \(\newcommand{\rank}{\operatorname{rank}}\) \(\newcommand{\row}{\text{Row}}\) \(\newcommand{\col}{\text{Col}}\) \(\renewcommand{\row}{\text{Row}}\) \(\newcommand{\nul}{\text{Nul}}\) \(\newcommand{\var}{\text{Var}}\) \(\newcommand{\corr}{\text{corr}}\) \(\newcommand{\len}[1]{\left|#1\right|}\) \(\newcommand{\bbar}{\overline{\bvec}}\) \(\newcommand{\bhat}{\widehat{\bvec}}\) \(\newcommand{\bperp}{\bvec^\perp}\) \(\newcommand{\xhat}{\widehat{\xvec}}\) \(\newcommand{\vhat}{\widehat{\vvec}}\) \(\newcommand{\uhat}{\widehat{\uvec}}\) \(\newcommand{\what}{\widehat{\wvec}}\) \(\newcommand{\Sighat}{\widehat{\Sigma}}\) \(\newcommand{\lt}{<}\) \(\newcommand{\gt}{>}\) \(\newcommand{\amp}{&}\) \(\definecolor{fillinmathshade}{gray}{0.9}\)What we will see is how the balance of bicarbonate and hydrogen ions determines pH, and how both of these ions can be influenced by the kidneys and lungs to keep pH constant.
First, we will take the central and most important part of the infamous equation, discarding the more innocuous ends.
\[H_2CO_3 \leftrightarrow H^+ + HCO_3- \nonumber \]
This central portion describes the dissociation of carbonic acid into hydrogen and bicarbonate ions. But because carbonic acid is a weak acid, this dissociation is incomplete—some carbonic acid staying whole, some dissociating into the ions. The level of dissociation is described by the dissociation constant (K’), which really is the ratio of the concentrations of dissociated components to carbonic acid (equation 12.3.2).
\[K' = \frac{{H}^{+} \cdot {HCO}_{3}-}{H_2CO_3} \nonumber \]
Because we are interested in calculating the pH, however, we are more interested in the amount of hydrogen ions, so rearranging this equation for hydrogen ion concentration we see the hydrogen ion concentration is the dissociation constant, multiplied by the ratio of carbonic acid and bicarbonate (equation 12.3.3).
\[H^+ = K' \cdot \frac{H_2CO_3}{HCO_3-} \nonumber \]
This equation theoretically would allow us to now determine hydrogen concentration and therefore pH, but there are some practical problems for us, the first of which is that the instability of carbonic acid means we cannot measure its concentration. So we have to use a proxy measure. The amount of carbonic acid is determined by the amount of carbon dioxide, as can be seen in the equation that is so familiar to you—the greater the amount of CO2, the more carbonic acid.
\[CO_2 + H_2O \leftrightarrow H_2CO_3 \leftrightarrow H^+ + HCO_3- \nonumber \]
So after accounting for the dissociation constant of carbonic acid and CO2 and water, we can simply replace carbonic acid concentration with concentration of CO2 (equation 12.3.5).
\[H^+ = K' \cdot \frac{CO_2}{HCO_3-} \nonumber \]
We then bump into our next practical problem: our equation now has CO2 concentration in it, but clinically we do not measure CO2 as a concentration (as in mmols), but as a partial pressure. So our next and nearly final step is to convert CO2 concentration to CO2 partial pressure, and we do this by multiplying the partial pressure (our measured value) by the solubility coefficient of carbon dioxide, which happens to be 0.03 mmol/mmHg. Our equation thus now can be completed using our adjusted PCO2 (equation 12.3.6).
\[H^+ = K' \cdot \frac{0.03 \cdot PCO_2}{HCO_3-} \nonumber \]
Our equation as it is now allows us to calculate hydrogen ion concentration, but we need pH, so we have to make a conversion. Because pH is the negative logarithm of hydrogen concentration, we express everything in the negative log form. And because the negative log of the dissociation constant is referred to as pK, then we can simplify our equation one more step (equation 12.3.7).
\[pH = pK - log \frac{0.03 \cdot PCO_2}{HCO_3-} \nonumber \]
To make our equation simple to use, we now get rid of the negative log, and so get the following (equation 12.3.8):
\[pH = pK + log \frac{HCO_3-}{0.03 \cdot PCO_2} \nonumber \]
We know that the pK of the bicarbonate system happens to be 6.1, so substituting this into the equation we end up with the Henderson–Hasselbalch equation (equation 12.3.9).
Let us put this in context.
First, the equation shows that if CO2 rises then pH falls, and because CO2 is under the influence of alveolar ventilation, this explains how the alveolar ventilation can now control pH. It also shows that if bicarbonate increases then pH increases, and equally if bicarbonate falls then pH falls. Because the bicarbonate concentration can be modified either way by the kidneys, the equation also shows how the kidneys can modify pH (equation 12.3.9).
Role of kidneys (numerator)
Role of lungs (denominator)
\[pH = 6.1 + log \frac{HCO_3-}{0.03 \cdot PCO_2} \nonumber \]
The involvement of these two major physiological systems in this equation make the bicarbonate system a very powerful buffer, particularly when considering that there is an unlimited source of CO2 and therefore bicarbonate supplied by the metabolism.
But more importantly it shows that pH is actually determined by the ratio of bicarbonate and CO2 and that both are equally important. This fact is critical to appreciate as it forms the basis of understanding the compensation mechanisms we dealt with earlier. This is why I put you through this derivation. So for example, if a rise in CO2 (such as in lung disease) is accompanied by an equal rise in bicarbonate (generated by the kidney), then the ratio between the two remains the same and therefore pH remains the same. Likewise, if during a fall in CO2 the kidneys excrete bicarbonate, then pH can be kept constant. So before we finish, let us show you that the equation actually works by plugging in some numbers.
Example #1: Let us start with normal values, a PCO2 of 40 mmHg and a bicarbonate of 24, and plug these into the equation. This comes to 6.1 plus the log of 20, which is 6.1 plus 1.3, or 7.4 (i.e., normal arterial pH).
\[pH = 6.1 + log \frac{24}{(0.03 \cdot 40)} = 6.1 + log(20) = 6.1 + 1.3 = 7.4 \nonumber \]
Example #2: Now let us look at a case of acute lung failure that has caused a rise in arterial PCO2, but has not persisted long enough for the kidney to respond and compensate. PCO2 has risen to 50 mmHg, and bicarbonate has not changed. Our calculation now goes to 6.1 plus the log of 16, which is 6.1 plus 1.2, and pH has fallen to 7.3.
\[pH = 6.1 + log \frac{24}{(0.03 \cdot 50)} = 6.1 + log(16) = 6.1 + 1.2 = 7.3 \nonumber \]
We now have three numbers that can give a meaningful clinical interpretation. The low pH indicates the patient is in acidosis. The raised PCO2 suggests that this is respiratory acidosis, and the unchanged bicarbonate suggests no metabolic compensation has taken place.
Example #3: Now let us return to our patient thirty-six hours later when we have given the kidney a chance to respond. The patient’s PCO2 remains at 50 because of the persistent lung problem, but the kidney has raised the bicarbonate to 30. Now our equation becomes 6.1 plus the log of 20, or 6.1 plus 1.3, and pH is 7.4—apparently normal.
\[pH = 6.1 + log \frac{30}{(0.03 \cdot 50)} = 6.1 + log(20) = 6.1 + 1.3 = 7.4 \nonumber \]
But when we look at all three numbers we see that the patient is far from normal: the pH is okay only because the kidneys have raised bicarbonate to match the raised CO2 and keep the ratio the same. So we now have a respiratory acidosis with metabolic compensation.
Summary
So although it has been a long journey through this chapter you should now be able to interpret blood gas values to determine whether a patient is in acidosis or alkalosis and whether or not compensation is present. I strongly recommend writing the Henderson–Hasselbalch equation as a formula in Excel so that you can plug in CO2 and bicarbonate values and see what happens to pH. By repeatedly interpreting blood gas values and pH, determining the status of a patient will rapidly become second nature.