Calcium Carbonate Scaling / Solubility Calculator
Explore an illustrative calcite saturation curve with temperature, pH, alkalinity, calcium and additional background NaCl. See the corresponding salt recipe and counterions.
Your water conditions
Move a slider or enter a value.
Maximum temperature depends on salinity and operating pressure. The slider stops 0.5 °C below boiling.
Proposed control: adjust dissolved CO₂ at fixed alkalinity. The required CO₂ addition or removal is not calculated in this preview.
Reported as mg/L CaCO₃ equivalent. In this independent-control mode, alkalinity is introduced through NaHCO₃; see the explanation below.
Enter mg/L as Ca. CaCl₂ supplies one Ca²⁺ and two Cl⁻; the corresponding chloride is included in the salt recipe below.
Additional NaCl, on top of chloride from CaCl₂ and sodium from NaHCO₃. It is not total dissolved salts.
Advanced conditions
Atmospheric default: 1.013 bar(a). Explore vacuum or pressurised operation (0.2–5 bar(a)).
Prototype temperature ceiling: 150 °C. The production ceiling must follow validated model data.
Demineralised water + CaCl₂ + NaHCO₃ + additional NaCl.
Set pH through dissolved CO₂ adjustment; calcium and final alkalinity remain the selected targets.
Where does your water sit?
Calcium threshold vs. temperature · calcite (CaCO₃)
Blue curve: calcium at calcite saturation · Dashed grey curve: no additional NaCl · Dark point: your water · Brown line: boiling boundary
Slider maximum: 99.5 °C, just below the illustrative boiling point.
Illustrative estimate only · evaporation and concentration changes are not simulated.What accompanies your calcium and alkalinity?
Stoichiometric salt additions per litre of final solution, before any precipitation. Salt masses below use anhydrous CaCl₂ and pure NaHCO₃.
| Source | Salt amount | Accompanying ion |
|---|---|---|
| CaCl₂ → Ca²⁺ + 2 Cl⁻ | 221.5 mg/L | 141.5 mg/L Cl⁻ |
| NaHCO₃ → Na⁺ + HCO₃⁻ | 251.8 mg/L | 68.9 mg/L Na⁺ |
| Additional NaCl | 2,000.0 mg/L | 786.8 mg/L Na⁺ + 1,213.2 mg/L Cl⁻ |
Total from the default recipe: sodium 855.7 mg/L as Na · chloride 1,354.7 mg/L as Cl.
pH assumption: CO₂ addition or removal changes inorganic carbon and pH without directly changing alkalinity in the ideal carbonate system. This preview does not calculate CO₂ demand or carbonate speciation. Strong-acid/base adjustment would require accounting for changed alkalinity and its counterions.
What is calculated here: the salt masses and their sodium/chloride contributions only. Charge-balanced salt additions are specified, but a full equilibrium and aqueous charge-balance calculation is still required. These added counterions are not yet used in the illustrative saturation curve or boiling estimate.
“As CaCO₃” is a reporting unit—not necessarily the salt added
Alkalinity measures how much acid water can neutralise. Expressing it as mg/L as CaCO₃ puts that acid-neutralising capacity on a common equivalent basis. It does not say how much calcium is present or mean that solid calcium carbonate was added.
Adjust calcium and alkalinity independently
Calcium is supplied as CaCl₂ and alkalinity through NaHCO₃. Their chloride and sodium contributions appear in the recipe table. This lets you explore changes in calcium without automatically changing alkalinity, and vice versa.
Calcium and alkalinity must move together
Each 100 mg/L of CaCO₃ that actually dissolves adds approximately 40 mg/L calcium as Ca and 100 mg/L alkalinity as CaCO₃. Adding 100 mg/L of solid does not guarantee that all of it dissolves.
Add limestone / CaCO₃
A separate mode could take a limestone dose and calculate how much dissolves, linking calcium and alkalinity. That calculation needs a validated model for pH, CO₂ availability and mineral equilibrium; it is not implemented in this preview.
In CO₂-containing water, limestone dissolution can be represented as CaCO₃ + CO₂ + H₂O ⇌ Ca²⁺ + 2 HCO₃⁻. Adding or removing CO₂ alone does not directly change alkalinity in the ideal carbonate system; dissolving or precipitating CaCO₃ does. The current pH slider assumes CO₂ adjustment, but does not calculate the required CO₂ amount.
Background: USGS · Alkalinity and carbonate speciation · USGS · Alkalinity reporting and solution composition
Three takeaways
Relationships to explore · illustrative values, not validated predictions.
A higher pH can favour carbonate scaling
At the same calcium and alkalinity, raising pH can increase the share of carbonate and the tendency toward calcite saturation.
Both sides of the chemistry matter
Increasing calcium or carbonate alkalinity can move a sample closer to saturation. Alkalinity “as CaCO₃” is a reporting unit, not a concentration of dissolved calcium carbonate.
Heating and degassing can promote scale
Heated hard water can form calcium carbonate deposits. CO₂ loss can raise pH and favour precipitation. This preview holds pH and alkalinity fixed during the temperature sweep.
Compare with the Langelier Saturation Index
The Lenntech Langelier Saturation Index calculator also assesses calcium carbonate scaling tendency. It reports the saturation pH (pHs) and LSI = pH − pHs: positive values indicate supersaturation, zero indicates saturation, and negative values indicate undersaturation with respect to calcium carbonate.
What is different? This page plots an illustrative calcium concentration threshold and shows calcium as a percentage of that threshold. LSI instead expresses how far the water pH is above or below its calculated saturation pH. It is not a percentage, a predicted mass of precipitate or a scaling rate, and it is not a direct measure of corrosion.
This page is an educational demonstration, not a validated equilibrium calculation. The LSI formula also has method limits; high-salinity, high-temperature or complex waters need an appropriate geochemical model.
Where does calcium carbonate scaling occur?
It is common in hard water and concentrates containing calcium and carbonate alkalinity.
Heaters & heat exchangers
Heating hard water can produce calcium carbonate deposits on hot surfaces, reducing heat transfer and restricting flow.
Cooling towers & blowdown
Evaporation concentrates dissolved minerals in recirculating water. Calcium, alkalinity, pH and temperature influence carbonate scaling tendency.
RO concentrate & brines
Retained calcium and alkalinity can become concentrated as RO recovers water. Carbonate speciation and pH help determine whether the concentrate approaches calcite saturation.
A salty stream does not necessarily contain much calcium or alkalinity. A full analysis is needed for a real scaling assessment; this interface shows only a simplified synthetic composition.
Background: USGS · Hardness and heated-water deposits · US DOE · Cooling tower management · USBR · Membrane treatment
The calculations above are illustrative and may contain errors or omissions. No guarantee of accuracy or completeness is given; results should be independently verified before use in design, treatment selection or operating decisions.
Methodology & limitations
Understand what the interactive demonstration calculates, how its outputs are produced and what would be needed for a thermodynamic scaling assessment.
1. Scope and inputs
The controls describe a hypothetical synthetic water made from demineralised water, CaCl₂, NaHCO₃ and additional NaCl. Calcium and alkalinity are independent targets. The pH is an entered value at operating temperature; it is not calculated from that recipe.
| Input | Interface range | Meaning |
|---|---|---|
| Temperature, T | 0 °C to the dynamic cap; ceiling 150 °C | Independent hypothetical conditions along the curve. |
| pH, H | 6–10.5 | Assumed CO₂ adjustment at fixed final alkalinity; CO₂ demand is not solved. |
| Alkalinity, A | 10–1,000 mg/L as CaCO₃ | Equivalent acid-neutralising capacity, supplied nominally through NaHCO₃. |
| Calcium, C | 0–2,000 mg/L as Ca | Total calcium target, supplied nominally through anhydrous CaCl₂. |
| Additional NaCl, S | 0–250 g/L | Background salt in addition to the calcium and alkalinity salts; not total salinity. |
| Pressure, P | 0.2–5 bar absolute | Used only by the illustrative boiling function. |
These are interface ranges, not validated operating ranges. Extending a slider range does not establish chemical accuracy at those conditions.
2. Exact functions used by this demonstration
With the numerical inputs in the units above, the plotted calcium threshold L (mg/L as Ca) is:
L = 100 × exp[−0.018 × (T − 25)] × 10^(8 − H)
× (150 / A) × [1 + 0.005 × S / (1 + S / 100)]
Displayed concentration ratio (%) = 100 × C / L
The exponential, pH, alkalinity and NaCl factors are chosen to illustrate responses. They do not solve carbonate speciation, ion pairing or activity coefficients. In particular, the NaCl factor is not a brine solubility correlation, and the temperature factor is not a thermodynamic calcite equilibrium constant.
The ratio is rounded to the nearest whole percent. The status uses the unrounded ratio: below 85% is labelled “Undersaturated”, 85–100% “Approaching saturation”, and above 100% “Supersaturated”. The 85% boundary is an interface warning choice. All three labels refer only to the illustrative threshold; they do not establish a water sample’s actual saturation state.
The grey comparison curve uses S = 0 while retaining the entered pH and alkalinity. This means no additional NaCl; it does not remove the calcium and alkalinity salts from the recipe.
The boiling estimate and temperature cap are:
B (°C) = 100 + 28 × ln(P / 1.01325) + 0.025 × S Tmax (°C) = floor[10 × min(150, B − 0.5)] / 10
Here ln is the natural logarithm and floor rounds down. This is an illustrative pressure/salt response, not a steam-table or electrolyte boiling-point calculation. It omits the contributions of CaCl₂, NaHCO₃ and CO₂, and does not simulate evaporation or changing concentration. The 0.5 °C margin and 150 °C ceiling are interface choices.
3. Salt recipe and accompanying ions
The recipe table uses stoichiometric conversions before any precipitation. It assumes pure anhydrous CaCl₂ and pure NaHCO₃. Commercial hydrated products and product purity would require different dose conversions.
CaCl₂ (mg/L) = C × (40.078 + 2 × 35.45) / 40.078 Cl from CaCl₂ (mg/L) = C × 2 × 35.45 / 40.078 Equivalent weight of CaCO₃ = 100.0869 / 2 = 50.04345 NaHCO₃ (mg/L) = A × 84.00661 / 50.04345 Na from NaHCO₃ (mg/L) = A × 22.98977 / 50.04345 Na from additional NaCl (mg/L) = 1000 × S × 22.98977 / 58.43977 Cl from additional NaCl (mg/L) = 1000 × S × 35.45 / 58.43977
The molar-mass constants are in g/mol; 50.04345 g/equivalent is numerically 50.04345 mg/meq. Sodium and chloride totals sum their respective contributions. Values are displayed to one decimal place. These conversions specify electrically balanced salt additions, but do not solve the final aqueous speciation or charge balance. Their sodium and chloride contributions are not fed back into L or B.
4. Carbonate chemistry and system assumptions
“Alkalinity as CaCO₃” is an equivalent reporting unit, not dissolved CaCO₃ concentration. Adding CO₂ alone does not directly change alkalinity in the ideal carbonate system, while dissolving or precipitating CaCO₃ changes both calcium and alkalinity. Each 100 mg/L of CaCO₃ that actually dissolves adds approximately 40 mg/L calcium and 100 mg/L alkalinity as CaCO₃.
The temperature sweep holds entered pH, alkalinity and total calcium fixed. It compares separate hypothetical conditions, rather than following one water sample through heating, degassing or precipitation. Maintaining those targets in a real preparation may require a different CO₂ adjustment at each temperature. Liquid operating pressure is not CO₂ partial pressure.
5. How a thermodynamic calculation would differ
A calcite equilibrium model evaluates the ion activity product relative to the temperature-dependent solubility product:
SIcalcite = log₁₀[(aCa²⁺ × aCO₃²⁻) / Ksp,calcite(T)]
Activities a describe free ions rather than total analytical concentrations. SI = 0 denotes equilibrium, SI > 0 supersaturation and SI < 0 undersaturation. Even a positive thermodynamic SI does not specify the deposited mass or rate; kinetics, surfaces and residence time also matter.
This page does not currently calculate that SI. An engineering implementation needs a documented thermodynamic database, carbonate speciation, an activity model appropriate to the water and explicit gas-exchange assumptions. Calcite and aragonite should be reported as separate mineral phases. PHREEQC can provide an independent benchmark when composition, database, units, mineral phase and CO₂ boundary conditions are matched.
The Lenntech Langelier Saturation Index calculator instead reports LSI = pH − pHs. LSI is not this page’s concentration percentage and does not predict a scaling rate.
6. Validation status and reproducible check
No laboratory calibration dataset, thermodynamic benchmark or engineering accuracy range is established for the demonstration curves. Reproducing the formulas verifies implementation consistency, not physical accuracy.
At the reset settings (25 °C, pH 8.0, alkalinity 150 mg/L as CaCO₃, calcium 80 mg/L, additional NaCl 2 g/L and pressure 1.013 bar absolute), the current functions give L = 100.9804 mg/L (displayed 101.0), a ratio of 79.2233% (displayed 79%), and a temperature cap of 99.5 °C.
Before engineering use, a replacement model should be checked against independent equilibrium calculations and relevant measurements across its intended temperature and salinity range. Record the database/version, test compositions, tolerances and discrepancies. Agreement on a single default example would not validate the full range.
7. Known limitations and appropriate use
- No carbonate speciation, activity correction, aqueous charge-balance solution or equilibrium precipitation calculation.
- No magnesium, sulfate or other background ions beyond the displayed synthetic recipe.
- No CO₂ demand, gas transfer, antiscalant performance, nucleation, scale growth, precipitation mass, recovery or concentration-factor simulation.
- No validated high-salinity, high-temperature or pressurised-water predictions.
Use the interface to explore its controls and assumptions. Results are not a substitute for full geochemical modelling or pilot testing, particularly in high-recovery or high-temperature systems. The calculations may contain errors or omissions and should be independently verified before design or operating decisions.
8. References and model record
- USGS PHREEQC — Speciation and mineral saturation example: background for a thermodynamic calculation, not validation of the demonstration curve.
- USGS PHREEQC — SOLUTION input: composition, units and alkalinity reporting.
- USGS — Alkalinity and carbonate speciation.
- Bureau of Reclamation — Membrane treatment manual.
Methodology documentation v1.0 · prepared 24 October 2026. Documents the existing demonstration functions; does not introduce a new equilibrium model or change the calculator’s numerical behaviour.