Systematic Treatment of Equilibrium

A beaker of sodium carbonate in water contains more dissolved species than most students ever write down. There is Na+\text{Na}^+, CO32−\text{CO}_3^{2-}, HCO3−\text{HCO}_3^-, H2CO3\text{H}_2\text{CO}_3, OH−\text{OH}^-, H3O+\text{H}_3\text{O}^+, and water itself. That is seven species linked by four independent equilibria. Yet the solution has exactly one pH and one composition. Finding that unique answer is not guesswork. It is bookkeeping, done correctly and exhaustively. This matters because real analytical problems routinely involve coupled equilibria. Buffer design, precipitation titrations, complexometric titrations, and polyprotic acid-base chemistry are common examples. Often three, four, or five equilibria act at once. Treating each equilibrium in isolation, as introductory courses often do with a single KaK_a expression, silently discards information. This gives wrong answers whenever a second reaction competes for the same species. The systematic treatment of equilibrium prevents this problem. Enumerate every species, and write every independent equilibrium. Write the mass balances (conservation of atoms) and the charge balance (conservation of charge). Count equations against unknowns, and only then solve. Solve exactly, or by justified approximation. The big picture is this: a chemical system at equilibrium is fully described by simultaneous algebraic equations. This is no different in principle from solving for currents in an electrical network with Kirchhoff's laws. Equilibrium constants supply some equations; conservation laws supply the rest. The number of independent equations must equal the number of unknown concentrations. No more, no fewer. Once that census is complete, the actual algebra is often just substitution. Any needed approximation, such as dominant equilibrium or charge balance simplification, can be justified rather than assumed. This article builds the full machinery. It shows how to enumerate species without omission. It shows how to write mass-balance and charge-balance equations correctly. It shows how to count degrees of freedom. It also shows how to assemble — without yet solving — a complete simultaneous system. This applies to equilibria of increasing complexity. It builds directly on The Equilibrium Constant and Reaction Quotient. It is the scaffold on which Mass and Charge Balance Equations and Solving Equilibrium Problems with Approximations are built.

Key takeaways
  • Every equilibrium problem requires three ingredients: equilibrium-constant expressions, mass balances, and one charge balance.
  • Mass balance (mass-action bookkeeping): the total moles of an atom/group placed in solution equal the sum of moles distributed among all species containing it.
  • Charge balance: the sum of positive charge concentrations equals the sum of negative charge concentrations, each species weighted by its charge magnitude.
  • The number of independent equations must equal the number of chemical unknowns — this is a degrees-of-freedom check, not optional bookkeeping.
  • Water's autoionization (KwK_w) and its balance contributions must be included even when "obviously" negligible — the derivation shows why, not asserts it.
  • Systematic setup separates two distinct skills: assembling the correct equations (this article) and solving them, exactly or approximately (a separate skill).
  • Key idea: a solution's composition is the unique simultaneous solution of all equilibrium-constant expressions plus all independent mass and charge balances — nothing less, nothing more.

Where this lives today

Clinical laboratories computing blood pH and buffer capacity use the exact bicarbonate/carbonic-acid/phosphate simultaneous system — the Henderson–Hasselbalch equation used at the bedside is a simplification of precisely the kind of system built here, valid only because physiological pH sits far from extreme pKaK_a values, a fact verified by the same systematic setup. Environmental chemists modeling ocean acidification solve carbonate-system equations with four to six coupled species (dissolved CO₂, carbonic acid, bicarbonate, carbonate, borate species, water) simultaneously, using software (CO2SYS and similar) that implements exactly the mass-balance/charge-balance/equilibrium-constant scheme described here, generalized to dozens of species for full seawater speciation. Pharmaceutical formulation scientists use systematic equilibrium setups to predict drug solubility and ionization state across the gastrointestinal pH range, where a single active pharmaceutical ingredient may have three or four ionizable groups whose simultaneous protonation states determine bioavailability. Complexometric titration methods (EDTA titrations for water hardness, metal assays) require simultaneous treatment of metal-ligand formation equilibria, competing proton equilibria on the ligand, and any competing hydroxide or auxiliary-complexing-agent equilibria — precisely the multi-equilibrium census demonstrated in the silver-ammonia example. Geochemists modeling mineral solubility and groundwater speciation, and electrochemists designing battery electrolytes with multiple redox-active and acid-base-active species, all rely on the same disciplined enumeration: list every species, write every independent equilibrium, write every mass balance, write the one charge balance, count degrees of freedom, and only then solve — whether by hand with justified approximations or numerically with iterative solvers, the topic that follows directly from this framework.

Ask the tutor: How do I decide, once the system is fully assembled, which terms in the charge balance are actually safe to drop before solving?

The physical picture — thorough prose

Consider dissolving C0C_0 mol of acetic acid in water to make one liter of solution. A beginner's instinct is to write

HOAc⇌H++OAc−,Ka=[H+][OAc−][HOAc]\text{HOAc} \rightleftharpoons \text{H}^+ + \text{OAc}^-, \qquad K_a = \frac{[\text{H}^+][\text{OAc}^-]}{[\text{HOAc}]}

and then assume [H+]≈[OAc−][\text{H}^+] \approx [\text{OAc}^-], solving a quadratic. This works for acetic acid alone, but the assumption [H+]≈[OAc−][\text{H}^+] \approx [\text{OAc}^-] is not an axiom — it is a consequence of the charge balance, valid only because water's own ions are negligible at that particular concentration. The systematic treatment reveals precisely when that shortcut is legitimate and when it silently fails (e.g., extremely dilute acid, where water autoionization is not negligible). The physical picture is a census of every species truly present, followed by a matching census of every independent constraint on those species. Species arise from: (1) whatever solute(s) were dissolved, broken into all their acid/base/conjugate forms; (2) water itself, plus H3O+\text{H}_3\text{O}^+ and OH−\text{OH}^- from its autoionization; (3) any counter-ions from salts, which participate only in charge balance (they are "spectators" chemically but not electrically). Constraints arise from: equilibrium constants (one per independent reaction), mass balances (one per conserved atom-group, i.e., one per distinct "total" you introduced when dissolving reagents), and exactly one charge balance for the whole solution. A powerful way to see why the charge balance is not redundant with mass balance is to recognize that mass balance conserves atoms regardless of what species they are in, while charge balance conserves net electrostatic neutrality of the bulk solution — a completely independent physical fact (solutions are electroneutral because bulk charge separation costs enormous electrostatic energy). These are physically different constraints, and both are needed.

Figure
Species census and equilibrium web for a diprotic system, e.g. carbonic acid in water
Species census: H₂CO₃ dissolved to formal concentration C₀ H₂CO₃ (neutral) HCO₃⁻ charge −1 CO₃²⁻ charge −2 K_a1 K_a2 H₂O solvent H₃O⁺ charge +1 OH⁻ charge −1 K_w = [H₃O⁺][OH⁻] 6 unknowns → need 6 independent equations: K_a1, K_a2, K_w, 1 mass balance, 1 charge balance... plus water not counted as unknown

Notice in the figure that six chemically distinct dissolved unknowns appear: H2CO3\text{H}_2\text{CO}_3, HCO3−\text{HCO}_3^-, CO32−\text{CO}_3^{2-}, H3O+\text{H}_3\text{O}^+, OH−\text{OH}^- — that is five, plus if a counter-ion (say Na+\text{Na}^+ from a Na2CO3\text{Na}_2\text{CO}_3 source) is present, six. The equation count must match exactly.

Figure
Charge balance as an electroneutrality ledger for a solution of NaHCO₃
Charge balance ledger — 0.0500 M NaHCO₃ Positive charge (mol charge/L) [Na⁺] × 1 [H₃O⁺] × 1 sum = total + charge Negative charge (mol charge/L) [HCO₃⁻] × 1 [CO₃²⁻] × 2 [OH⁻] × 1 sum = total − charge =

The core ideas — governing equations

Mass balance for a conserved group introduced at formal (analytical) concentration C0C_0:

C0=∑ini[Speciesi]C_0 = \sum_i n_i [\text{Species}_i]

where:

  • C0C_0 is the total formal concentration of the atom/group as originally weighed in,
  • the sum runs over every species containing that atom/group,
  • nin_i is the number of that atom/group per formula unit of species ii (usually 1, but e.g. 2 for a group appearing twice in one species).

Reading: mass balance says atoms do not disappear — they merely redistribute among all the protonation/complexation states available.

Charge balance (electroneutrality):

∑jzj+[Cationj]=∑kzk−[Anionk]\sum_j z_j^{+} [\text{Cation}_j] = \sum_k z_k^{-} [\text{Anion}_k]

where:

  • zj+z_j^+ and zk−z_k^- are the magnitudes of charge on each cationic/anionic species,
  • every ionic species in solution — including H3O+\text{H}_3\text{O}^+ and OH−\text{OH}^- — must appear,
  • the equation is a single scalar equality, valid regardless of how many equilibria are occurring simultaneously.

Reading: bulk solution has zero net charge; multiply each concentration by its charge magnitude before summing, because a doubly charged ion contributes twice the electrostatic "weight" of a singly charged one at the same molarity.

Equilibrium-constant expressions (one per independent reaction):

Ki=∏m[Speciesm]νi,mK_i = \prod_m [\text{Species}_m]^{\nu_{i,m}}

where:

  • νi,m\nu_{i,m} is the stoichiometric coefficient (signed: positive for products, negative for reactants) of species mm in reaction ii,
  • KiK_i is the thermodynamic (or, at fixed ionic strength, the conditional) equilibrium constant for reaction ii,
  • "independent" means reaction ii cannot be obtained by linear combination of the others already listed.

Degrees-of-freedom rule, the master bookkeeping check:

Nspecies=Nequilibria+Nmass balances+1(charge balance)N_{\text{species}} = N_{\text{equilibria}} + N_{\text{mass balances}} + 1_{\text{(charge balance)}}

where:

  • NspeciesN_{\text{species}} counts every distinct dissolved chemical species (ions and neutrals, including H3O+\text{H}_3\text{O}^+, OH−\text{OH}^-, but not solid water/solvent activity, which is fixed at 1),
  • NequilibriaN_{\text{equilibria}} counts independent equilibrium reactions (including water autoionization),
  • Nmass balancesN_{\text{mass balances}} counts distinct conserved totals introduced by dissolution (one per reagent "family," e.g., one for all carbonate-containing species, one for all sodium-containing species),
  • the "+1" is because there is always exactly one charge balance for the whole solution, never more.

Reading: if the left and right sides of this counting equation do not match, either a species was missed, an equilibrium was double-counted, or a mass balance was forgotten — the algebra cannot proceed correctly until they match.

Derivation AAssembling the simultaneous system for a monoprotic weak acid, done rigorously

Goal. Set up — not yet solve — the complete system of equations describing C0C_0 mol/L of a weak acid HA dissolved in water, keeping water autoionization explicit throughout, so the reader sees exactly where the familiar shortcut [H+]≈[A−][\text{H}^+] \approx [\text{A}^-] comes from and when it is valid.

Step 1 — Enumerate species. Dissolving HA in water can produce: HA (undissociated), A−\text{A}^- (conjugate base), H3O+\text{H}_3\text{O}^+, OH−\text{OH}^-. That is Nspecies=4N_{\text{species}} = 4 (water itself is the solvent, held at activity 1, and is not an "unknown"). No counter-ion exists because HA is a neutral molecular acid, not a salt.

Step 2 — Enumerate independent equilibria. Two independent equilibria exist:

HA+H2O⇌H3O++A−,Ka=[H3O+][A−][HA]\text{HA} + \text{H}_2\text{O} \rightleftharpoons \text{H}_3\text{O}^+ + \text{A}^-, \qquad K_a = \frac{[\text{H}_3\text{O}^+][\text{A}^-]}{[\text{HA}]}
2 H2O⇌H3O++OH−,Kw=[H3O+][OH−]2\,\text{H}_2\text{O} \rightleftharpoons \text{H}_3\text{O}^+ + \text{OH}^-, \qquad K_w = [\text{H}_3\text{O}^+][\text{OH}^-]

These are independent: neither can be written as a multiple or combination of the other, since one involves HA/A⁻ and the other does not. Nequilibria=2N_{\text{equilibria}} = 2.

Step 3 — Write the mass balance. Every HA molecule dissolved ends up as either HA or A⁻; nothing else contains that carbon/oxygen skeleton in appreciable amount:

C0=[HA]+[A−]C_0 = [\text{HA}] + [\text{A}^-]

This is Nmass balance=1N_{\text{mass balance}} = 1 (only one conserved "family" was introduced — the acid itself; water's own conservation is automatically handled by KwK_w plus the charge balance, not by a separate mass balance, since H3O+\text{H}_3\text{O}^+ and OH−\text{OH}^- are not "counted" against a fixed total the way HA is).

Step 4 — Write the charge balance. All charged species are H3O+\text{H}_3\text{O}^+ (+1), A−\text{A}^- (−1), OH−\text{OH}^- (−1):

[H3O+]=[A−]+[OH−][\text{H}_3\text{O}^+] = [\text{A}^-] + [\text{OH}^-]

This is exactly one charge balance, as always.

Step 5 — Verify the degrees-of-freedom count. Nspecies=4N_{\text{species}} = 4. Right-hand side: Nequilibria+Nmass balances+1=2+1+1=4N_{\text{equilibria}} + N_{\text{mass balances}} + 1 = 2 + 1 + 1 = 4. The counts match — the system is exactly determined: four unknowns ([HA],[A−],[H3O+],[OH−][\text{HA}], [\text{A}^-], [\text{H}_3\text{O}^+], [\text{OH}^-]), four independent equations (KaK_a, KwK_w, mass balance, charge balance).

Step 6 — Show where the familiar shortcut comes from. Substitute the mass balance into the charge balance is not what gives [H3O+]≈[A−][\text{H}_3\text{O}^+] \approx [\text{A}^-]; rather, that approximation is the statement that [OH−]≪[A−][\text{OH}^-] \ll [\text{A}^-] in the charge balance — a claim that must be checked numerically (typically valid once C0Ka≫KwC_0 K_a \gg K_w), not assumed from the start. The full system above remains exact regardless; the shortcut is a solving technique layered on top of a correctly assembled system, which is precisely the boundary between this systematic setup and the later approximation methods.

Go deeper · Derivation B · 2 minAssembling the simultaneous system for a diprotic salt: Na₂CO₃ in water
Derivation BAssembling the simultaneous system for a diprotic salt: Na₂CO₃ in water

Goal. Build the complete, exactly-determined system for C0C_0 mol/L of sodium carbonate dissolved in water — a case with a spectator ion, two coupled proton-transfer equilibria, and water autoionization, to show how the species/equation census scales.

Step 1 — Enumerate species. Na+\text{Na}^+, CO32−\text{CO}_3^{2-}, HCO3−\text{HCO}_3^-, H2CO3\text{H}_2\text{CO}_3 (treating dissolved CO2(aq)\text{CO}_2(aq) and H2CO3\text{H}_2\text{CO}_3 together as one formal species, standard analytical convention), H3O+\text{H}_3\text{O}^+, OH−\text{OH}^-. That is Nspecies=6N_{\text{species}} = 6.

Step 2 — Enumerate independent equilibria. Three:

H2CO3+H2O⇌H3O++HCO3−,Ka1=[H3O+][HCO3−][H2CO3]\text{H}_2\text{CO}_3 + \text{H}_2\text{O} \rightleftharpoons \text{H}_3\text{O}^+ + \text{HCO}_3^-, \qquad K_{a1} = \frac{[\text{H}_3\text{O}^+][\text{HCO}_3^-]}{[\text{H}_2\text{CO}_3]}
HCO3−+H2O⇌H3O++CO32−,Ka2=[H3O+][CO32−][HCO3−]\text{HCO}_3^- + \text{H}_2\text{O} \rightleftharpoons \text{H}_3\text{O}^+ + \text{CO}_3^{2-}, \qquad K_{a2} = \frac{[\text{H}_3\text{O}^+][\text{CO}_3^{2-}]}{[\text{HCO}_3^-]}
2 H2O⇌H3O++OH−,Kw=[H3O+][OH−]2\,\text{H}_2\text{O} \rightleftharpoons \text{H}_3\text{O}^+ + \text{OH}^-, \qquad K_w = [\text{H}_3\text{O}^+][\text{OH}^-]

Sodium participates in no proton-transfer equilibrium (it is not hydrolyzed appreciably under these conditions), so it contributes no additional equilibrium expression. Nequilibria=3N_{\text{equilibria}} = 3.

Step 2b — Confirm independence. None of these three can be produced by adding or subtracting the other two — each involves a distinct pair of species not fully covered by the others (this is the same check performed by inspecting whether the reaction stoichiometry vectors are linearly independent; here it is done by inspection since each equilibrium introduces a genuinely new species pair).

Step 3 — Write the mass balances. Two independent totals were introduced upon dissolution — one for sodium, one for the carbonate family:

CNa=[Na+]=2C0C_{\text{Na}} = [\text{Na}^+] = 2C_0
C0=[H2CO3]+[HCO3−]+[CO32−]C_0 = [\text{H}_2\text{CO}_3] + [\text{HCO}_3^-] + [\text{CO}_3^{2-}]

(the factor of 2 arises because Na2CO3\text{Na}_2\text{CO}_3 delivers two sodium ions per formula unit — a stoichiometric bookkeeping detail that must not be dropped). Nmass balances=2N_{\text{mass balances}} = 2.

Step 4 — Write the charge balance. All charged species, weighted by charge magnitude:

[Na+]+[H3O+]=[HCO3−]+2[CO32−]+[OH−][\text{Na}^+] + [\text{H}_3\text{O}^+] = [\text{HCO}_3^-] + 2[\text{CO}_3^{2-}] + [\text{OH}^-]

Note the factor of 2 on carbonate — this is the single most common error in setting up charge balances for polyprotic/polyvalent systems, and it comes directly from zk−=2z_k^- = 2 for CO32−\text{CO}_3^{2-}.

Step 5 — Verify the degrees-of-freedom count. Nspecies=6N_{\text{species}} = 6. Right side: 3 (equilibria)+2 (mass balances)+1 (charge balance)=63\ (\text{equilibria}) + 2\ (\text{mass balances}) + 1\ (\text{charge balance}) = 6. Exactly determined: six unknowns, six independent equations. The system is now fully assembled and — while still algebraically formidable to solve exactly — is guaranteed solvable in principle (numerically, or by justified approximation) because the counting is closed.

Step 6 — Limiting case check. If instead only NaHCO3\text{NaHCO}_3 (not Na2CO3\text{Na}_2\text{CO}_3) were dissolved, the sodium mass balance becomes [Na+]=C0[\text{Na}^+] = C_0 (no factor of 2), and everything else is unchanged — a useful sanity check that the "2" in Step 3 truly comes from stoichiometry of the salt, not from some universal rule about carbonate.

Worked examples

Example 1 (foundational) — full setup for a weak monoprotic acid, no solving. A chemist dissolves 0.0742 M0.0742\ \text{M} chloroacetic acid (ClCH2_2COOH, abbreviated HA, Ka=1.36×10−3K_a = 1.36\times10^{-3}) in water. Set up the complete simultaneous system. Species: HA, A⁻, H₃O⁺, OH⁻ → Nspecies=4N_{\text{species}} = 4. Equilibria (2):

Ka=[H3O+][A−][HA]=1.36×10−3K_a = \frac{[\text{H}_3\text{O}^+][\text{A}^-]}{[\text{HA}]} = 1.36\times10^{-3}
Kw=[H3O+][OH−]=1.00×10−14 (at 25 ∘C)K_w = [\text{H}_3\text{O}^+][\text{OH}^-] = 1.00\times10^{-14} \ (\text{at } 25\ ^\circ\text{C})

Mass balance (1):

0.0742 M=[HA]+[A−]0.0742\ \text{M} = [\text{HA}] + [\text{A}^-]

Charge balance (1):

[H3O+]=[A−]+[OH−][\text{H}_3\text{O}^+] = [\text{A}^-] + [\text{OH}^-]

Degrees-of-freedom check: Nspecies=4N_{\text{species}} = 4; RHS =2+1+1=4= 2 + 1 + 1 = 4. ✓ Exactly determined. This is the complete, exact system — nothing approximated yet. A later approximation step (recognizing Ka=1.36×10−3K_a = 1.36\times10^{-3} is not tiny relative to C0=0.0742C_0 = 0.0742, so the "x≪C0x \ll C_0" shortcut is questionable here, requiring the full quadratic [H3O+]2/(C0−[H3O+])≈Ka[\text{H}_3\text{O}^+]^2/(C_0-[\text{H}_3\text{O}^+]) \approx K_a) belongs to the solving stage, not this setup stage — but note the setup already tells you which equations that quadratic came from and why [OH−][\text{OH}^-] was dropped from the charge balance (because [H3O+][\text{H}_3\text{O}^+] here will be of order KaC0≈(1.36×10−3)(0.0742)≈1.0×10−2 M\sqrt{K_aC_0} \approx \sqrt{(1.36\times10^{-3})(0.0742)} \approx 1.0\times10^{-2}\ \text{M}, some 101010^{10}-fold larger than the [OH−]≈Kw/[H3O+]≈10−12 M[\text{OH}^-] \approx K_w/[\text{H}_3\text{O}^+] \approx 10^{-12}\ \text{M} it would introduce).

Example 2 (applied) — full system for a buffer with an added common ion, EDTA-adjacent case. An analyst prepares a solution that is 0.0500 M0.0500\ \text{M} in NaH2_2PO4_4 and 0.0300 M0.0300\ \text{M} in Na2_2HPO4_4 (a phosphate buffer, relevant to controlling pH during a complexometric titration with EDTA, since many metal–EDTA formation constants are pH-dependent). Set up the complete system, treating phosphoric acid's three dissociations explicitly. Species: H₃PO₄, H₂PO₄⁻, HPO₄²⁻, PO₄³⁻, Na⁺, H₃O⁺, OH⁻ → Nspecies=7N_{\text{species}} = 7. Equilibria (4):

Ka1=[H3O+][H2PO4−][H3PO4]=7.11×10−3K_{a1} = \frac{[\text{H}_3\text{O}^+][\text{H}_2\text{PO}_4^-]}{[\text{H}_3\text{PO}_4]} = 7.11\times10^{-3}
Ka2=[H3O+][HPO42−][H2PO4−]=6.32×10−8K_{a2} = \frac{[\text{H}_3\text{O}^+][\text{HPO}_4^{2-}]}{[\text{H}_2\text{PO}_4^-]} = 6.32\times10^{-8}
Ka3=[H3O+][PO43−][HPO42−]=4.5×10−13K_{a3} = \frac{[\text{H}_3\text{O}^+][\text{PO}_4^{3-}]}{[\text{HPO}_4^{2-}]} = 4.5\times10^{-13}
Kw=[H3O+][OH−]=1.00×10−14K_w = [\text{H}_3\text{O}^+][\text{OH}^-] = 1.00\times10^{-14}

Mass balances (2): Phosphate total is the sum of both salts' contributions, since both sources feed the same conjugate family:

CP=0.0500+0.0300=0.0800 M=[H3PO4]+[H2PO4−]+[HPO42−]+[PO43−]C_{\text{P}} = 0.0500 + 0.0300 = 0.0800\ \text{M} = [\text{H}_3\text{PO}_4] + [\text{H}_2\text{PO}_4^-] + [\text{HPO}_4^{2-}] + [\text{PO}_4^{3-}]

Sodium comes from NaH2PO4\text{NaH}_2\text{PO}_4 (1 Na per formula unit) and Na2HPO4\text{Na}_2\text{HPO}_4 (2 Na per formula unit):

[Na+]=(1)(0.0500)+(2)(0.0300)=0.1100 M[\text{Na}^+] = (1)(0.0500) + (2)(0.0300) = 0.1100\ \text{M}

Charge balance (1):

[Na+]+[H3O+]=[H2PO4−]+2[HPO42−]+3[PO43−]+[OH−][\text{Na}^+] + [\text{H}_3\text{O}^+] = [\text{H}_2\text{PO}_4^-] + 2[\text{HPO}_4^{2-}] + 3[\text{PO}_4^{3-}] + [\text{OH}^-]

Degrees-of-freedom check: Nspecies=7N_{\text{species}} = 7; RHS =4 (equilibria)+2 (mass balances)+1=7= 4\ (\text{equilibria}) + 2\ (\text{mass balances}) + 1 = 7. ✓ This system is now fully posed for exact numerical solution (e.g., by Newton–Raphson on the resulting polynomial in [H3O+][\text{H}_3\text{O}^+]), or for the standard Henderson–Hasselbalch-style approximation once it is verified — from this system, not assumed — that [H3PO4][\text{H}_3\text{PO}_4] and [PO43−][\text{PO}_4^{3-}] are negligible compared to [H2PO4−][\text{H}_2\text{PO}_4^-] and [HPO42−][\text{HPO}_4^{2-}] near pH ≈pKa2=7.20\approx \text{p}K_{a2} = 7.20.

Example 3 (exam/competition level) — mixed-ligand system: silver, ammonia, and chloride. A solution is prepared by mixing AgNO3_3 (CAg=2.00×10−3 MC_{\text{Ag}} = 2.00\times10^{-3}\ \text{M} formal), NH3_3 (CN=0.150 MC_{\text{N}} = 0.150\ \text{M} formal, added as free base), and NaCl (CCl=1.00×10−3 MC_{\text{Cl}} = 1.00\times10^{-3}\ \text{M} formal), forming silver–ammine complexes and possibly AgCl(s). Assume for this setup that all species remain dissolved (no precipitate — this is checked separately via KspK_{sp} comparison, foreshadowing solubility-equilibrium problems). Set up the full system. Species: Ag⁺, Ag(NH₃)⁺, Ag(NH₃)₂⁺, NH₃, NH₄⁺, Cl⁻, Na⁺, H₃O⁺, OH⁻ → Nspecies=9N_{\text{species}} = 9. Equilibria (5): stepwise silver–ammine formation, ammonia protonation, and water autoionization:

β1=[Ag(NH3)+][Ag+][NH3]=2.1×103\beta_1 = \frac{[\text{Ag}(\text{NH}_3)^+]}{[\text{Ag}^+][\text{NH}_3]} = 2.1\times10^{3}
β2=[Ag(NH3)2+][Ag+][NH3]2=1.7×107\beta_2 = \frac{[\text{Ag}(\text{NH}_3)_2^+]}{[\text{Ag}^+][\text{NH}_3]^2} = 1.7\times10^{7}
Kb=[NH4+][OH−][NH3]=1.8×10−5K_b = \frac{[\text{NH}_4^+][\text{OH}^-]}{[\text{NH}_3]} = 1.8\times10^{-5}
Kw=[H3O+][OH−]=1.00×10−14K_w = [\text{H}_3\text{O}^+][\text{OH}^-] = 1.00\times10^{-14}

Chloride is here assumed to form no significant complex with silver under these dilute, ammonia-rich conditions (a claim that would itself be checked quantitatively in a full solubility treatment), so it contributes no equilibrium expression beyond appearing as a free ion — this is a modeling decision stated explicitly, not hidden. That is only 4 independent equilibria listed; a possible fifth (direct reaction of Ag+\text{Ag}^+ with OH−\text{OH}^- to precipitate Ag2O\text{Ag}_2\text{O}/AgOH) is excluded by the problem's stated assumption of no precipitate, which is exactly the kind of assumption a systematic setup forces you to state rather than bury. Mass balances (3):

CAg=2.00×10−3=[Ag+]+[Ag(NH3)+]+[Ag(NH3)2+]C_{\text{Ag}} = 2.00\times10^{-3} = [\text{Ag}^+] + [\text{Ag}(\text{NH}_3)^+] + [\text{Ag}(\text{NH}_3)_2^+]
CN=0.150=[NH3]+[NH4+]+[Ag(NH3)+]+2[Ag(NH3)2+]C_{\text{N}} = 0.150 = [\text{NH}_3] + [\text{NH}_4^+] + [\text{Ag}(\text{NH}_3)^+] + 2[\text{Ag}(\text{NH}_3)_2^+]
CCl=1.00×10−3=[Cl−]C_{\text{Cl}} = 1.00\times10^{-3} = [\text{Cl}^-]

Notice the nitrogen mass balance: ammonia bound in the complexes must be counted in the nitrogen total too, with the correct stoichiometric weight (1 or 2 NH₃ per complex ion) — a subtlety easy to miss if mass balances are written carelessly. Charge balance (1):

[Ag+]+[Ag(NH3)+]+[Ag(NH3)2+]+[NH4+]+[Na+]+[H3O+]=[Cl−]+[NO3−]+[OH−][\text{Ag}^+] + [\text{Ag}(\text{NH}_3)^+] + [\text{Ag}(\text{NH}_3)_2^+] + [\text{NH}_4^+] + [\text{Na}^+] + [\text{H}_3\text{O}^+] = [\text{Cl}^-] + [\text{NO}_3^-] + [\text{OH}^-]

Here [Na+]=1.00×10−3 M[\text{Na}^+] = 1.00\times10^{-3}\ \text{M} (from NaCl) and [NO3−]=2.00×10−3 M[\text{NO}_3^-] = 2.00\times10^{-3}\ \text{M} (from AgNO₃) are fixed spectator concentrations, not unknowns requiring their own equilibrium — but they are still unknowns in the counting sense and must appear as terms determined by separate trivial mass balances ([Na+]=CCl[\text{Na}^+] = C_{\text{Cl}} since NaCl dissolves 1:1, and [NO3−]=CAg[\text{NO}_3^-] = C_{\text{Ag}} since AgNO₃ dissolves 1:1). Full degrees-of-freedom check: including Na⁺ and NO₃⁻ as unknowns, Nspecies=11N_{\text{species}} = 11 (Ag⁺, Ag(NH₃)⁺, Ag(NH₃)₂²⁺-labeled-as-1+, NH₃, NH₄⁺, Cl⁻, Na⁺, NO₃⁻, H₃O⁺, OH⁻ — that's 10; recount: Ag⁺(1), Ag(NH₃)⁺(2), Ag(NH₃)₂⁺(3), NH₃(4), NH₄⁺(5), Cl⁻(6), Na⁺(7), NO₃⁻(8), H₃O⁺(9), OH⁻(10) → Nspecies=10N_{\text{species}}=10). Equations: 4 equilibria + 5 mass balances (CAgC_{\text{Ag}}, CNC_{\text{N}}, CClC_{\text{Cl}}, [Na+]=CCl[\text{Na}^+]=C_{\text{Cl}}, [NO3−]=CAg[\text{NO}_3^-]=C_{\text{Ag}}) + 1 charge balance =4+5+1=10= 4+5+1 = 10. ✓ The count closes exactly once every trivial spectator relation is included as its own mass balance — a common source of "off by one" errors in exam settings, resolved only by disciplined enumeration.

Limiting cases, scope & common traps

SituationWhat the systematic treatment showsCommon shortcut (valid only if justified)
Very dilute weak acid (C0Ka≲10KwC_0 K_a \lesssim 10 K_w)[OH−][\text{OH}^-] term in charge balance is not negligible[H3O+]≈[A−][\text{H}_3\text{O}^+]\approx[\text{A}^-] fails; must keep full charge balance
Polyprotic acid, pH far from any pKaK_aOnly two adjacent protonation states carry significant concentrationSimplify mass balance to two terms, but only after checking distribution
Salt of weak acid + weak base (e.g., NH₄OAc)Two coupled equilibria plus KwK_w; charge balance still required even though "looks neutral"Never skip charge balance just because formula looks like a neutral salt
High ionic strength (I > 0.1 M)Concentration-based KK values become conditional constants; framework unchanged, only constants replacedSubstitute activity coefficients into same equations — same census, same balances
System with only one dissolved species and no complexationReduces to the four-equation weak-acid case exactlyConfirms the general framework collapses correctly to familiar simple case
Precipitation possibleAn additional solid-phase equilibrium (KspK_{sp}) and possibly a new mass-balance term must be added if Q>KspQ > K_{sp}Never assume "stays dissolved" without checking QQ vs. KspK_{sp}

The chemist behind it

The systematic algebraic treatment of multi-equilibrium systems, as taught in modern analytical chemistry, is most closely associated with the work of James N. Butler, whose 1964 text Ionic Equilibrium: A Mathematical Approach formalized the mass-balance/charge-balance/equilibrium-constant framework into the general procedure used in essentially all modern analytical chemistry textbooks (Skoog, Harris, Christian). Butler's contribution was not a new equilibrium constant or a new reaction, but a method — insisting that every species be enumerated, every conservation law written explicitly, and the resulting system solved by systematic iteration (he was an early advocate of numerical, computer-assisted solution of the exact equations rather than case-by-case approximations), decades before this became routine. The deeper conceptual roots go back to Niels Bjerrum, who in the 1910s and 1920s developed stepwise formation constants for polyprotic acids and metal complexes and recognized that overlapping equilibria required simultaneous treatment rather than sequential, isolated calculations — the same insight this article formalizes.

Origins · 1 minJames N. Butler and how this was discovered
JN
James N. Butler
1932– · American physical chemist and electrochemist

Butler worked at the interface of electrochemistry, environmental chemistry, and analytical method development, holding positions at Tyco Laboratories and later Harvard's School of Public Health. His systematic approach to ionic equilibria grew out of practical problems in seawater carbonate chemistry and battery electrochemistry, where dozens of coupled equilibria must be solved simultaneously and no single approximation suffices across the whole range of conditions encountered.

History
- 1923 — Brønsted and Lowry independently define the proton-transfer (acid–base) framework underlying modern equilibrium bookkeeping.
- 1938 — Niels Bjerrum's stepwise formation-constant formalism for metal complexes is widely adopted, requiring simultaneous-equilibria treatment.
- 1954 — Ionic strength and activity-coefficient corrections (Davies equation) are integrated into standard equilibrium calculation practice.
- 1964 — James N. Butler publishes Ionic Equilibrium: A Mathematical Approach, systematizing mass balance, charge balance, and equilibrium constants into one general procedure.
- 1996 — Modern analytical textbooks (Harris, Skoog) standardize the mass-balance/charge-balance pedagogical sequence used in undergraduate curricula worldwide.
Why include water autoionization even in problems where OH⁻ seems obviously negligible?

Water autoionization must be included in the initial system because "negligible" is a conclusion, not an assumption — it can only be verified after estimating the actual [H3O+][\text{H}_3\text{O}^+] or [OH−][\text{OH}^-] magnitude from the full system. In very dilute weak-acid solutions (formal concentration below roughly 10−610^{-6} to 10−710^{-7} M) or in solutions of extremely weak acids/bases, water's autoionization can contribute a significant fraction of the total [H3O+][\text{H}_3\text{O}^+] or [OH−][\text{OH}^-], and omitting KwK_w from the start would make it impossible to even detect this failure. The systematic approach keeps KwK_w in every acid-base system by default and drops its contribution only after the numbers confirm it is safe to do so.

What exactly counts as a separate mass balance versus the same mass balance?

A separate mass balance is required for each chemically distinct "family" of species introduced by dissolution — typically one per element or ionic group that was weighed in as a reagent, tracked independently of any other. Dissolving Na₂CO₃ introduces two families: all sodium-containing species (just Na⁺ itself, since sodium doesn't protonate here) and all carbonate-containing species (H₂CO₃, HCO₃⁻, CO₃²⁻). If a second reagent shares a family with the first — for example, adding NaHCO₃ to the same carbonate solution — the two formal concentrations are added into a single combined mass balance for that family, not written as two separate equations, since both feed the same conserved pool of carbonate-containing species.

Does the systematic treatment change when activity coefficients matter (high ionic strength)?

No — the census of species, the mass balances, and the charge balance are unchanged; only the equilibrium-constant expressions are modified, replacing concentration-based constants with activity-corrected (conditional) constants, i.e., K={P}{Q}/{R}K = \{P\}\{Q\}/\{R\} becomes K=γP[P]γQ[Q]/γR[R]K = \gamma_P[P]\gamma_Q[Q]/\gamma_R[R], requiring activity coefficients from a model such as the Debye–Hückel or Davies equation. The charge balance itself is always written in terms of concentrations (not activities), because electroneutrality is a statement about actual ion counts in the bulk solution, not about their thermodynamic activities. This is why high-ionic-strength problems are harder numerically but not structurally different.

How does this framework handle a precipitate forming partway through a titration?

When a solid phase can form, one additional equilibrium (KspK_{sp} for the relevant solid) is added to the system, but the solid itself is not counted among the dissolved "species" unknowns (its activity is fixed at 1 as long as some solid is present). The mass balance for the precipitating ion must then account for material that has left solution entirely; if xx mol/L of solid has formed, the "total dissolved" mass balance no longer equals the original formal concentration but that value minus xx, with xx itself becoming an additional unknown determined by requiring Q=KspQ = K_{sp} exactly once solid is confirmed present. This bridges directly into solubility equilibrium problems, where the same census-and-balance discipline applies with the solid-liquid equilibrium folded in.

Is the systematic treatment only useful for by-hand calculation, or does it matter for computational chemistry too?

It matters even more for computational work: every equilibrium-speciation solver (MINEQL, PHREEQC, Visual MINTEQ, CO2SYS) is, at its core, a numerical engine for solving exactly the kind of simultaneous mass-balance/charge-balance/equilibrium-constant system built here, often for dozens or hundreds of species in natural waters or industrial process streams. Setting up the problem correctly — the right species list, the right balances — is the user's responsibility regardless of software sophistication; a correctly coded solver applied to an incorrectly assembled system (a missing species, a wrong charge weighting) will converge confidently to the wrong answer. The systematic treatment is therefore the conceptual foundation beneath essentially all modern equilibrium-modeling software.

Why does the diprotic carbonate charge balance carry a factor of 2 on CO₃²⁻ but not on HCO₃⁻?

The charge balance weights every ionic concentration by the magnitude of its charge, because electroneutrality is about total charge, not total ion count. A mole of CO32−\text{CO}_3^{2-} contributes twice as much negative charge as a mole of HCO3−\text{HCO}_3^-, so it must be multiplied by 2 before summing; failing to do this is the most common single error in setting up charge balances for any system containing a doubly (or higher) charged ion, including sulfate, phosphate beyond the first deprotonation, and most transition-metal cations.

What is the practical difference between "setting up" a system and "solving" it?

Setting up the system — enumerating species, writing equilibria, mass balances, and the charge balance, and confirming the degrees-of-freedom count — is purely a bookkeeping and chemical-reasoning exercise that has exactly one correct answer for any given problem statement. Solving the system is a separate algebraic or numerical task: it may involve exact polynomial solution, iterative numerical methods, or justified simplifying approximations (dropping small terms after checking their size), and different valid solving strategies can all be applied to the same correctly assembled system. Keeping these two stages distinct is what prevents an unjustified approximation from silently corrupting the underlying chemistry.

Before this

Where this leads