Ksp and solubility calculator
Ksp from solubility, solubility from Ksp, the common ion effect and the precipitation test.
Enter the ion concentrations, not the salt: 0.10 M Na₂CO₃ gives 0.10 M carbonate, 0.10 M CaCl₂ gives 0.10 M calcium and 0.20 M chloride.
What Ksp and solubility mean
When a slightly soluble ionic solid such as CaF₂ or AgCl dissolves, an equilibrium is set up between the solid and its ions: CaF₂(s) ⇌ Ca²⁺(aq) + 2F⁻(aq). The solubility product Ksp is the equilibrium constant for that reaction, written without the solid: Ksp = [Ca²⁺][F⁻]² (OpenStax Chemistry 2e, section 15.1). The molar solubility s is how many moles of the salt dissolve per liter of saturated solution. The two are linked by the formula of the salt, so each can be calculated from the other, and Ksp also tells you at which ion concentrations a solid starts to appear.
The formulas
For a salt AₓB_y that gives x cations and y anions per formula unit, [A] = x·s and [B] = y·s, so Ksp = (x·s)ˣ(y·s)ʸ = xˣ·yʸ·sˣ⁺ʸ and s = (Ksp ÷ (xˣ·yʸ))^(1/(x+y)). With a common ion already present at concentration c, the equilibrium is (c + x·s)ˣ(y·s)ʸ = Ksp, solved exactly here by bisection rather than by assuming s is small. To compare with a given solution, compute Q = [A]ˣ[B]ʸ from the actual concentrations: Q above Ksp means precipitation, Q equal to Ksp is saturation, and Q below Ksp means the solid would dissolve. Grams per liter is s × the molar mass of the formula unit.
Worked example: does silver chloride precipitate?
| Step | Value |
|---|---|
| Mix equal volumes of 2.0 × 10⁻⁴ M AgNO₃ and 2.0 × 10⁻⁴ M NaCl: each ion is halved | [Ag⁺] = [Cl⁻] = 1 × 10⁻⁴ M |
| Reaction quotient Q = [Ag⁺][Cl⁻] | 1 × 10⁻⁸ |
| Ksp of AgCl in the reference table (25 °C) | 1.8 × 10⁻¹⁰ |
| Q ÷ Ksp | 56: precipitates |
| Solid formed until Q = Ksp | 8.7 × 10⁻⁵ mol per liter |
| Ions left in solution | 1.3 × 10⁻⁵ M each |
OpenStax Example 15.8 works the same mixture with Ksp = 1.6 × 10⁻¹⁰ and also finds Q = 1.0 × 10⁻⁸, far above Ksp, so the conclusion does not depend on which table you use. Where the two values are within a factor of a few of Q, it can.
Common mistakes
The classic one is ranking solubilities by Ksp alone. That works only for salts with the same x and y: AgCl has Ksp 1.8 × 10⁻¹⁰ and dissolves to 1.3 × 10⁻⁵ M, while Ag₂CrO₄ has the smaller Ksp 2.6 × 10⁻¹² yet dissolves to 8.6 × 10⁻⁵ M, because it gives three ions per formula unit, so Ksp = 4s³ instead of s². Another is forgetting the factors: in Ca(OH)₂ the hydroxide concentration is 2s, so Ksp = 4s³, not s³. A third is typing the concentration of the salt where the ion is needed; for CaCl₂ at 0.10 M the chloride is 0.20 M. And for a precipitation test, remember that mixing dilutes both solutions before Q is formed.
Limits of this method
Ksp describes the dissolution reaction alone. Real solubility can be quite different when the anion reacts with water or acid: OpenStax section 15.3 shows that the solubility of salts of carbonate, fluoride, hydroxide, sulfide and phosphate rises with acidity, and that complex formation raises it further (aluminum hydroxide dissolves in strong base as Al(OH)₄⁻). The calculator also treats the ions as ideal, an assumption that gets worse as the total concentration of ions rises. Ksp depends on temperature (the reference table is for 25 °C) and published values differ between sources, sometimes by orders of magnitude. The reference values are log K constants for 25 °C from the USGS PHREEQC database (file minteq.v4.dat, data inherited from the EPA MINTEQA2 model); for the hydroxides Ksp = 10^(log K − n × 13.997), where 13.997 is the pKw of the same database. Salts with three kinds of ions need x and y entered by hand.
Reference table: Ksp and molar solubility at 25 °C
| Salt | Ksp | Solubility in pure water |
|---|---|---|
| AgCl — Silver chloride | 1.8 × 10⁻¹⁰ | 1.3 × 10⁻⁵ mol/L |
| AgBr — Silver bromide | 5 × 10⁻¹³ | 7.1 × 10⁻⁷ mol/L |
| AgI — Silver iodide | 8.3 × 10⁻¹⁷ | 9.1 × 10⁻⁹ mol/L |
| PbCl2 — Lead(II) chloride | 1.7 × 10⁻⁵ | 0.016 mol/L |
| PbI2 — Lead(II) iodide | 7.9 × 10⁻⁹ | 0.0013 mol/L |
| PbF2 — Lead(II) fluoride | 3.6 × 10⁻⁸ | 0.0021 mol/L |
| CaF2 — Calcium fluoride (fluorite) | 3.2 × 10⁻¹¹ | 2 × 10⁻⁴ mol/L |
| BaSO4 — Barium sulfate (barite) | 1 × 10⁻¹⁰ | 1 × 10⁻⁵ mol/L |
| SrSO4 — Strontium sulfate (celestite) | 2.4 × 10⁻⁷ | 4.9 × 10⁻⁴ mol/L |
| PbSO4 — Lead(II) sulfate (anglesite) | 1.6 × 10⁻⁸ | 1.3 × 10⁻⁴ mol/L |
| Ag2SO4 — Silver sulfate | 1.5 × 10⁻⁵ | 0.016 mol/L |
| CaSO4·2H2O — Calcium sulfate dihydrate (gypsum) | 2.5 × 10⁻⁵ | 0.005 mol/L |
| CaCO3 — Calcium carbonate (calcite) | 3.3 × 10⁻⁹ | 5.8 × 10⁻⁵ mol/L |
| BaCO3 — Barium carbonate (witherite) | 2.7 × 10⁻⁹ | 5.2 × 10⁻⁵ mol/L |
| SrCO3 — Strontium carbonate (strontianite) | 5.4 × 10⁻¹⁰ | 2.3 × 10⁻⁵ mol/L |
| PbCO3 — Lead(II) carbonate (cerussite) | 7.4 × 10⁻¹⁴ | 2.7 × 10⁻⁷ mol/L |
| ZnCO3 — Zinc carbonate (smithsonite) | 1 × 10⁻¹⁰ | 1 × 10⁻⁵ mol/L |
| Ag2CO3 — Silver carbonate | 8.1 × 10⁻¹² | 1.3 × 10⁻⁴ mol/L |
| Ag2CrO4 — Silver chromate | 2.6 × 10⁻¹² | 8.6 × 10⁻⁵ mol/L |
| PbCrO4 — Lead(II) chromate | 2.5 × 10⁻¹³ | 5 × 10⁻⁷ mol/L |
| BaCrO4 — Barium chromate | 2.1 × 10⁻¹⁰ | 1.5 × 10⁻⁵ mol/L |
| Mg(OH)2 — Magnesium hydroxide (brucite) | 7.1 × 10⁻¹² | 1.2 × 10⁻⁴ mol/L |
| Ca(OH)2 — Calcium hydroxide (portlandite) | 6.5 × 10⁻⁶ | 0.012 mol/L |
| Cu(OH)2 — Copper(II) hydroxide | 4.8 × 10⁻²⁰ | 2.3 × 10⁻⁷ mol/L |
| Ni(OH)2 — Nickel(II) hydroxide | 6.3 × 10⁻¹⁶ | 5.4 × 10⁻⁶ mol/L |
| Cd(OH)2 — Cadmium hydroxide | 4.5 × 10⁻¹⁵ | 1 × 10⁻⁵ mol/L |
| Pb(OH)2 — Lead(II) hydroxide | 1.4 × 10⁻²⁰ | 1.5 × 10⁻⁷ mol/L |
| Fe(OH)3 — Iron(III) hydroxide (ferrihydrite) | 1.6 × 10⁻³⁹ | 8.8 × 10⁻¹¹ mol/L |
| Al(OH)3 — Aluminum hydroxide (gibbsite) | 2 × 10⁻³⁴ | 1.6 × 10⁻⁹ mol/L |
Values are the PHREEQC database constants described above, shown to two significant digits; a textbook may print a different value for the same salt.
How do I calculate Ksp from solubility?
Write the dissolution equation, find the ion concentrations from the molar solubility s (moles of salt that dissolve per liter), and put them into the Ksp expression. For a salt that gives x cations and y anions, Ksp = (x·s)ˣ(y·s)ʸ = xˣ·yʸ·sˣ⁺ʸ. OpenStax Example 15.2: in a saturated solution of CaF₂, [Ca²⁺] = 2.15 × 10⁻⁴ M, so [F⁻] = 4.30 × 10⁻⁴ M and Ksp = (2.15 × 10⁻⁴)(4.30 × 10⁻⁴)² = 3.98 × 10⁻¹¹. If the solubility is given in grams, divide by the molar mass first: 4.6 × 10⁻⁶ g/L of PbCrO₄ (323.2 g/mol) is 1.4 × 10⁻⁸ M and gives Ksp = 2.03 × 10⁻¹⁶ (Example 15.5 prints 2.0 × 10⁻¹⁶).
How do I find the molar solubility from Ksp?
Solve Ksp = xˣ·yʸ·sˣ⁺ʸ for s: s = (Ksp ÷ (xˣ·yʸ))^(1/(x+y)). For Ca(OH)₂ (x = 1, y = 2), Ksp = 4s³. With the Ksp of 1.3 × 10⁻⁶ used in OpenStax Example 15.4, s = 0.00688 M (the book prints 6.9 × 10⁻³ M). With the table value on this page, 6.5 × 10⁻⁶, it is 0.0117 M, because Ksp tables disagree. Remember the stoichiometric factors: in this example [OH⁻] = 2s, not s.
What is the common ion effect on solubility?
A salt is less soluble in a solution that already contains one of its ions, because the product of the ion concentrations is fixed by Ksp. With the table Ksp of AgCl, 1.8 × 10⁻¹⁰, the solubility in pure water is 1.33 × 10⁻⁵ M. In 0.10 M chloride (for example from NaCl) it falls to 1.78 × 10⁻⁹ M, about 7,500 times less. For a small Ksp like this one, the quick answer s ≈ Ksp ÷ [Cl⁻] matches the exact root; the calculator shows both and checks the 5% rule from OpenStax.
How do I tell if a precipitate will form when two solutions are mixed?
Dilute each ion for the combined volume (c × V₁ ÷ (V₁ + V₂)), compute the reaction quotient Q from the new concentrations, and compare it with Ksp: above Ksp the solution is supersaturated and the solid comes out; below, it stays dissolved (OpenStax Examples 15.7 and 15.8). Seawater with 0.0537 M Mg²⁺ made 0.0010 M in hydroxide has Q = 5.37 × 10⁻⁸, which is 6,000 times the Ksp of 8.9 × 10⁻¹² used in that example, so Mg(OH)₂ precipitates. Equal volumes of 2.0 × 10⁻⁴ M AgNO₃ and NaCl give Q = 1.0 × 10⁻⁸, far above the Ksp of AgCl.
Why do different tables give different Ksp values?
Ksp values come from solubility measurements and thermodynamic data of different dates and conditions, and tables copy one another with corrections. For barium sulfate this page’s database gives 1.05 × 10⁻¹⁰, a CRC-based table 1.08 × 10⁻¹⁰, and OpenStax Chemistry 2e Appendix J prints 2.3 × 10⁻⁸, a difference of more than two orders of magnitude; lead chromate varies from 2 × 10⁻¹⁶ (OpenStax Appendix J) to 3 × 10⁻¹³ (CRC-based). The reference table in this calculator uses the values for 25 °C from the USGS PHREEQC database. Use the number your course or lab gives you; type it in the Ksp field.
Does pH change the solubility of a salt?
Yes, for salts whose anion is a base. OpenStax section 15.3 notes that solubility rises as acidity rises for salts of carbonate, fluoride, hydroxide, sulfide and similar anions: CaCO₃(s) + H₃O⁺ ⇌ Ca²⁺ + HCO₃⁻ + H₂O has K = Ksp ÷ Ka2 = 180, far larger than Ksp itself. The same is true for hydroxides, which dissolve in acid. This calculator uses Ksp alone, so for those salts it gives the solubility in pure water or in a solution where the anion is not consumed by an acid-base reaction.
Sources: OpenStax Chemistry 2e, section 15.1 “Precipitation and Dissolution” (Examples 15.1 to 15.13) and 15.3 “Coupled Equilibria”; reference constants from the USGS PHREEQC thermodynamic database minteq.v4.dat (Parkhurst and Appelo, USGS; github.com/usgs-coupled/phreeqc3), read October 27, 2026, compared with a CRC-based table (periodni.com). Related: ICE table calculator, molarity calculator, equilibrium constant calculator and molar mass calculator.