On this page
- Problems for children
- The carbonate system, solved, because it is the one piece of chemistry that decides most of a tank.
- The ammonia equilibrium is the single most useful piece of chemistry a fishkeeper can carry.
- Air and water hold almost the same amount of carbon dioxide. The difference is transport, not concentration.
- Units, done properly, because half the disagreements in this hobby are two people using different ones.
- A water conditioner is a reducing agent in a bottle, and chloramine is a different problem from chlorine.
Problems for children
This page continues
The minor species have a page of their own.

The carbonate system
The carbonate system, solved, because it is the one piece of chemistry that decides most of a tank.
Hardness, carbonate hardness, pH and the behavior of every limestone rock in the tank are not four subjects. They are one system with four equilibria in it, and once you write the four down the answers fall out.
Four reactions. Carbon dioxide dissolves and hydrates. Carbonic acid gives up a proton. Bicarbonate gives up a second one. And calcite, the mineral that limestone is mostly made of, dissolves into calcium and carbonate.
H2CO3* ↔ H+ + HCO3- K1, log K1 = -6.35
HCO3- ↔ H+ + CO32- K2, log K2 = -10.33
CaCO3(s) ↔ Ca2+ + CO32- Ksp, log Ksp = -8.48 Constants at 25 degrees12. H2CO3* is the conventional shorthand for dissolved CO2 plus true carbonic acid together, because the two cannot be told apart by a pH meter.
That is four equations and five unknowns, so one more relation is needed. It is the charge balance. Take pure water, put calcite in it, and let carbon dioxide in. The only ions present in any quantity are calcium and bicarbonate, and the solution must be electrically neutral, so one calcium ion must be balanced by two bicarbonate ions.
Now substitute. Write h for the hydrogen ion concentration.
[CO32-] = K2[HCO3-] / h = K1K2[CO2] / h2
[Ca2+] = Ksp / [CO32-] = Ksp h2 / (K1K2[CO2])
put those two into 2[Ca2+] = [HCO3-]:
2 Ksp h2 / (K1K2[CO2]) = K1[CO2] / h
h3 = K12 K2 [CO2]2 / (2 Ksp) One closed equation, one unknown. Everything else follows from h.3
And now read what that says. Since h goes as the two thirds power of the CO2 concentration, and calcium goes as h2 divided by CO2, calcium goes as CO2 to the power four thirds divided by CO2. That is the cube root.3
Two consequences, both counterintuitive. Twenty percent more atmospheric CO2 buys only six percent more hardness, because the cube root of 1.2 is 1.063.3 That is why the ceiling barely moved when this site corrected its atmospheric assumption from 350 to 420 ppm. But going from air equilibrium at 0.63 mg/L to an injected 30 mg/L is a factor of 48, and the cube root of 48 is 3.633, so injection really does roughly quadruple the ceiling. Small changes do almost nothing and large ones do a lot, which is exactly the wrong intuition to have.
The worked example, 420 ppm, 25 C. Our own arithmetic3
| Dissolved CO2 | pH | Calcium | General hardness | Carbonate hardness | Moves with the atmosphere? |
|---|---|---|---|---|---|
| 0.63 mg/L, air equilibrium at 420 ppm45 | 8.23 | 19.4 mg/L3 | 2.7 dGH3 | 2.7 dKH3 | Yes. Recompute it when the atmosphere changes |
| 10 mg/L, injected | 7.43 | 49 mg/L3 | 6.8 dGH3 | 6.8 dKH3 | No. Fixed by the regulator, not by the air |
| 20 mg/L, injected | 7.23 | 61 mg/L3 | 8.6 dGH3 | 8.6 dKH3 | No |
| 30 mg/L, injected | 7.13 | 70 mg/L3 | 9.9 dGH3 | 9.9 dKH3 | No |
The validation
A model nobody has checked is a guess with decimal places.
So check it against a published measurement. Water-Supply Paper 2254 gives, at page 92, calcite solubility as a function of CO2 partial pressure. At 0.0003 atmospheres, the CO2 content of air as that paper states it, the Frear and Johnston laboratory data give about 20 mg/L of calcium for water in contact with air, and Garrels and Christ calculated 16 mg/L from thermodynamic data.1
Re-solve our equation at the same 0.0003 atmospheres and it returns 17.2 mg/L.3 That is between the two published values, and it is below the experimental one, which is the direction a model that ignores activity corrections is supposed to be wrong in. Real ions in real water are less effective than their concentrations suggest, which makes a real solution dissolve slightly more calcite than the ideal calculation predicts.
Read that as the error bar. The second digit on 19.4 mg/L is not real. The first one is.
What it means for a rock
An uninjected limestone tank cannot pass about 3 dGH.
Calcite does not dissolve until the water gives up. It dissolves until the solution is saturated, and the saturation point is set by carbon dioxide. With no injection that point is 2.7 dGH and 2.7 dKH.3
Which turns an absolute warning into a conditional one. Most Yerevan tap water is already harder than the ceiling: the districts run 2.9 to 10.9 dGH depending on where you live6. In water that is already above 2.7 dGH a limestone rock in an uninjected tank has nowhere to go, and is close to chemically invisible. Turn the CO2 on and the same rock has a ceiling near 9.9 dGH3, which is a different animal entirely. The stone did not change. The carbon dioxide did.
The rock-by-rock table is on the materials page.
Why GH and KH come out equal
They are equal here because the charge balance forced them to be.
In the table above dGH and dKH match to the decimal, and that is not a coincidence or a rounding artefact. It is 2[Ca2+] = [HCO3-] restated in hobby units: one calcium ion carries two charges, one bicarbonate ion carries one, so the two hardnesses are the same number by construction.
In a real tank they separate, and the gap tells you something. Gypsum raises GH without KH because sulfate is not carbonate. Sodium bicarbonate raises KH without GH. Nitrification eats KH and leaves GH alone. Yerevan's supply is bicarbonate dominated, 61 to 77 percent of the anions with sulphate rarely above 11 or 12 percent6, which is why GH and KH track each other closely here and would not in a gypsum region.

The ammonia equilibrium
The ammonia equilibrium is the single most useful piece of chemistry a fishkeeper can carry.
A test kit reports total ammonia nitrogen. It gives you one number. That number is the sum of two chemically different things, one of which is roughly a hundred times more toxic than the other, and the split between them is not a property of the tank but of pH and temperature.78
pKa = 0.09018 + 2729.92 / (273.2 + T) T in degrees Celsius
fNH3 = 1 / (1 + 10(pKa - pH)) Emerson, Russo, Lund and Thurston, 19757, as printed at page 8 of the current EPA freshwater ammonia criteria9. The second line is the Henderson-Hasselbalch equation with nothing hidden in it. fNH3 is the fraction of the total that is free ammonia; the rest is ammonium.
Two rules of thumb fall straight out of it, and they are worth memorising instead of the table. The ratio of free ammonia to ammonium rises roughly tenfold for each pH unit and roughly twofold for each few degrees of warming.9 pH is the dominant term by a long way. Temperature is the one people forget.
| pH | 20 C | 25 C | 28 C | Total ammonia that reaches 0.05 mg/L free NH3-N at 25 C8 |
|---|---|---|---|---|
| 6.5 | 0.13 %3 | 0.18 %3 | 0.22 %3 | 28 mg/L3 |
| 7.0 | 0.40 %3 | 0.57 %3 | 0.70 %3 | 8.8 mg/L3 |
| 7.5 | 1.24 %3 | 1.77 %3 | 2.17 %3 | 2.8 mg/L3 |
| 8.0 | 3.82 %3 | 5.38 %3 | 6.56 %3 | 0.93 mg/L3 |
| 8.5 | 11.2 %3 | 15.3 %3 | 18.2 %3 | 0.33 mg/L3 |
| 9.0 | 28.4 %3 | 36.3 %3 | 41.2 %3 | 0.14 mg/L3 |
Read the last column, because it is the whole point. The threshold at which free ammonia begins to damage gill tissue is often given as 0.05 mg/L.8 At pH 7 and 25 degrees you need 8.8 mg/L of total ammonia to get there3. At pH 8.5 you need 0.33 mg/L3, a figure a hobby test kit can barely resolve from zero. The same reading on the same kit is a nuisance in one tank and a lethal event in another, and nothing on the bottle tells you which.
Now join it to section one, because that is where this page earns its keep. Our carbonate calculation says an uninjected tank sitting on limestone drifts to pH 8.23. At pH 8.2 and 25 degrees the free fraction is about 8.3 percent3, roughly fifteen times what it is at pH 73. A CO2 injected tank on the same rock sits at pH 7.13, where the free fraction is under one percent. The commonest advice about cycling accidents is given without either number attached.
The regulatory numbers, for scale. The current EPA freshwater criteria at pH 7 and 20 degrees are 17 mg total ammonia nitrogen per liter as a one hour average and 1.9 mg/L as a thirty day rolling average, and the chronic figure across the whole temperature range is set by freshwater mussels rather than by fish.9 Those are criteria for a river, not targets for a tank, and they are quoted here only to show that regulators normalise for pH and temperature as a matter of course while the hobby does not.
Adding a buffer to a tank that is reading ammonia does not dilute anything. It converts ammonium, which is comparatively harmless, into free ammonia, which is not. Going from pH 7.0 to pH 8.0 at 25 degrees multiplies the free fraction by 9.5 with the total unchanged.3
Nothing was added and nothing was measured differently. At pH 8, going from 20 to 28 degrees raises the free fraction from 3.82 to 6.56 percent3, a 72 percent rise in toxic ammonia, while warm water simultaneously holds less oxygen and the fish need more of it.
Oxidising ammonium to nitrate releases two protons per nitrogen, which is why the process eats carbonate hardness. About 7.1 mg of alkalinity as calcium carbonate is destroyed per mg of ammonium nitrogen oxidised.10 The arithmetic that follows from that is on the water changes page.
The net reaction is right, the textbook cast list is not. Nitrospira rather than Nitrobacter oxidises nitrite in freshwater aquaria11, and single organisms that run the whole path from ammonia to nitrate exist12. The biology is on the cycling page. Only the stoichiometry belongs here.
A plant changes the sign. A plant taking that nitrogen back up as nitrate consumes roughly one proton for charge balance, so a well planted tank pays about half the alkalinity cost of an unplanted one. The halving is standard plant physiology and we have not tied it to a single citation.

Carbon dioxide and Henry’s law
Air and water hold almost the same amount of carbon dioxide. The difference is transport, not concentration.
The standard hobby comparison runs: air is 420 parts per million and tank water holds 0.6 milligrams per liter, therefore a leaf in air has hundreds of times more carbon available. The conclusion is right and the reason is wrong, and the wrong reason leads people to believe that injecting CO2 closes the gap. It does not, because the gap was never a concentration gap.
The comparison is invalid at the first step. It puts a mixing ratio next to a mass concentration. Convert both to the same unit and the illusion disappears.
H(T) = HΘ exp(2400 (1/T - 1/298.15)) HΘ = 3.3 × 10-4 mol m-3 Pa-1
Air side, ideal gas law: cair = pCO2 / (R T)
Partial pressure: pCO2 = Pstation × (ppm × 10-6) Solubility constant and its temperature coefficient from Sander's compilation4. T is absolute temperature, R is 8.314 J per mol per kelvin. Note that both sides carry the same pCO2, which is why the ratio between them does not depend on the mixing ratio at all.
| Condition | CO2 in the air | CO2 dissolved at equilibrium | Same, as mass | Ratio air to water |
|---|---|---|---|---|
| Sea level, 1013 hPa, 20 C | 17.5 µmol/L3 | 16.1 µmol/L3 | 0.71 mg/L3 | 1.083 |
| Sea level, 1013 hPa, 25 C | 17.2 µmol/L3 | 14.0 µmol/L3 | 0.62 mg/L3 | 1.223 |
| Yerevan, 887 hPa, 20 C3 | 15.3 µmol/L3 | 14.1 µmol/L3 | 0.62 mg/L3 | 1.083 |
| Yerevan, 887 hPa, 25 C3 | 15.0 µmol/L3 | 12.3 µmol/L3 | 0.54 mg/L3 | 1.223 |
The ratio is between 1.08 and 1.22.3 Not a hundred. Not ten. Water at equilibrium with air holds 82 to 92 percent as much carbon dioxide per liter as the air above it does, and the number depends only on temperature, because station pressure cancels out of the ratio. This site printed the large-gap version once and corrected it, and the correction is the point of the section.
So why is a submerged leaf carbon starved and an aerial leaf not? Because getting the molecule to the leaf is a different problem from having it in the fluid.
D(CO2 in water) ≈ 1.9 × 10-9 m2/s13
ratio ≈ 10,000 Four orders of magnitude. Not a difference in how much there is; a difference in how fast it arrives.
The consequence is the diffusive boundary layer, the still film of water clinging to a submerged leaf. It has been measured at 90 percent of the total resistance to carbon fixation in four submerged freshwater macrophytes, and across fourteen submerged species underwater photosynthesis rose on average threefold when carbon supply went from ambient to saturating.14 A leaf in air has a boundary layer too, but in air it is a minor resistance and the stomata dominate, and stomata are under the plant's own control.
The correct statement, then. A leaf in air is not carbon limited and a submerged leaf is, and the cause is the diffusion coefficient, not the concentration.
Which tells you exactly what injection buys. Going from 0.6 to 25 mg/L is a roughly fortyfold rise in the concentration gradient driving diffusion across that boundary layer, and that is why injected CO2 transforms a planted tank. It does not make a submerged leaf equal to an aerial one, because the aerial leaf still has four orders of magnitude more transport. It moves a long way and it does not close the gap.
The Yerevan correction
At 887 hPa every gas is scarcer, including this one.
Yerevan's station pressure is about 887 hPa in Arabkir and nearer 906 on the Agro plain. At 887 hPa the partial pressure of CO2 is 12.5 percent below sea level, so a Yerevan tank at air equilibrium holds about 0.54 mg/L of free CO2 at 25 degrees rather than 0.62.3
That is a small penalty and it is not nothing. It runs the same way as the altitude correction to dissolved oxygen, and the submerged plant here is slightly more carbon limited than the textbook says. An emersed leaf loses the same 12.5 percent and does not care, because it was never limited by supply.
Where the atmospheric number comes from
420 is a rounded present-day figure and it will date.
The global annual mean was 425.62 ppm for 2025, with monthly global means around 427 to 428 through the first half of 2026.5 This page solves at 420 because that is the value the carbonate table on the water page was built on and the two must agree.
It matters less than it looks. Solved from 420 ppm straight through Henry's law the dissolved figure is 0.618 mg/L and calcium comes out at 19.3 mg/L; at 425.6 ppm it is 0.626 mg/L and still 19.3 mg/L.3 That is the cube root again. The table in section one uses the rounded 0.63 mg/L input and prints 19.4, a difference of half a percent that is far inside the error from ignoring activity corrections.3 The right way to publish a number that will drift is to publish the equation next to it.
Two constants that are not the same
Equilibrium is not the same as saturation, and neither is the same as what a drop test reads.
Henry's law gives the concentration a water surface is heading towards, not the one it has. A tank with surface agitation approaches it quickly; a still tank with a lid does not. And a drop checker does not measure CO2 at all: it measures the pH of a reference solution of known KH, and infers CO2 through the same K1 relation in section one.
Which is why a drop checker on a tank with a non-carbonate acid in it reads wrong. Tannins, peat and phosphate buffers all lower pH without adding carbon dioxide, and the inference cannot tell the difference.
Units
Units, done properly, because half the disagreements in this hobby are two people using different ones.
There is no unit in aquarium chemistry that is used consistently. Hardness is reported in at least four. Nitrate is reported in two that differ by a factor of four and a half. Everything is called ppm. Below, every conversion is a formula rather than a table entry, so you can apply it to a number this page does not list.
1 dH ≡ 10 mg/L CaO
= 10 / 56.077 = 0.17833 mmol/L of divalent metal
= 0.17833 × 100.087 = 17.85 mg/L as CaCO3
= 0.17833 × 2 = 0.3567 meq/L
= 0.17833 × 61.017 = 10.88 mg/L as HCO3-, for KH Our own arithmetic from the definition3, and it reconciles two rounded figures used elsewhere on this site. 17.8 and 0.357 are not exactly consistent with each other: 17.8 divided by 50.04 is 0.3557, not 0.357. The exact pair is 17.85 and 0.3567. The discrepancy is 0.3 percent and matters to nobody, but it is the kind of thing that should be said rather than papered over.
M(NO3-) = 62.005 g/mol M(N) = 14.007 g/mol
62.005 / 14.007 = 4.42715
mg/L as NO3- = mg/L as NO3-N × 4.43
mg/L as NO3-N = mg/L as NO3- / 4.43 Almost every aquarium test kit reads the nitrate ion Almost every toxicology paper reports nitrate nitrogen The 2 mg/L of nitrate nitrogen recommended for freshwater animals15 is 8.9 mg/L on a hobby kit3, and someone reading 9 and thinking they are four times over the limit has made a unit error, not a discovery.
In fresh water at ordinary temperature the density is close enough to 1 kg/L that
1 ppm by mass = 1 mg/L. Test kits mean this.
In a gas, ppm is a mole fraction. 420 ppm CO2 is 420 molecules in a million.
A gas ppm and a liquid mg/L are not the same kind of quantity at all. This is the error that produces the "hundreds of times more CO2 in air" claim taken apart in section three.
| Unit | As CaCO3 | meq/L | In dH | Who uses it |
|---|---|---|---|---|
| 1 German degree, dH, dGH or dKH | 17.85 mg/L3 | 0.3573 | 1 | Almost every hobby kit sold in Europe |
| 1 mg/L as CaCO3, often written 1 ppm | 1 mg/L | 0.0203 | 0.0563 | Hydrology, water utilities, USGS16 |
| 1 meq/L, the Soviet mg-eq/L | 50.04 mg/L3 | 1 | 2.8043 | Armenian and Russian laboratory reports, including6 |
| 1 mg/L bicarbonate, for carbonate hardness | 0.820 mg/L3 | 0.01643 | 0.04593 | Bottled water labels, which print HCO3- and never KH |
| USGS classification16 | soft 0 to 60, moderately hard 61 to 120, hard 121 to 180, very hard above 18016 | — | soft below 3.4, very hard above 10.13 | The only classification with an institution behind it |
One worked conversion, all the way through, because this is where the units become real. A bottled Armenian spring water label prints bicarbonate at 106.75 mg/L, calcium 22.54 mg/L, magnesium 6.69 mg/L, and hardness 1.67 in the Soviet unit.6 Three independent routes to the same answer:
From the label's hardness. 1.67 mg-eq/L × 2.804 = 4.68 dGH3
From calcium and magnesium. 22.54 / 7.14 plus 6.69 / 4.34 = 4.70 dGH3. The divisors are the mass of one degree's worth of each metal: 0.17833 mmol/L times 40.078 is 7.15 mg/L of calcium, and times 24.305 is 4.33 mg/L of magnesium.
From bicarbonate, for KH. 106.75 / 10.88 = 9.8 which is wrong, and the error is instructive. Bicarbonate carries one charge, so the correct divisor is 21.8 mg/L per degree, giving 4.9 dKH3.
The check. GH 4.7 and KH 4.9 on the same water3. They agree because this water is bicarbonate dominated, which is the section one point arriving from the other direction.
Watch step three. The equation in the middle of that worked example is deliberately wrong, and it is the commonest hardness arithmetic error there is. One German degree of general hardness is 0.3567 meq/L of divalent metal, which is 0.17833 mmol/L. One German degree of carbonate hardness is the same 0.3567 meq/L, but bicarbonate is monovalent, so it is 0.3567 mmol/L of it, which is 21.8 mg/L rather than 10.88. Milliequivalents are the unit that never lies. Convert to meq/L first and you cannot make this mistake.
Dechlorination
A water conditioner is a reducing agent in a bottle, and chloramine is a different problem from chlorine.
The bottle says "instantly removes chlorine and chloramine, detoxifies heavy metals, protects the slime coat". Three of those four claims are chemistry and one is marketing. Here is the chemistry.
Free chlorine in tap water is not Cl2. Chlorine gas hydrolyses on contact with water, and what is actually present at drinking water pH is hypochlorous acid and hypochlorite, in a ratio set by an acid dissociation just like the ammonia one in section two.
HOCl ↔ H+ + OCl- pKa ≈ 7.5 So around neutral pH the two forms are present in similar amounts, and "free chlorine" on a water report is the sum of them. Both equations are balanced by us rather than quoted3, and the pKa is a standard textbook value we did not trace to a primary measurement, so it is marked as such.
With chlorine in excess, thiosulfate is oxidised all the way to sulfate:
S2O32- + 4 HOCl + H2O → 2 SO42- + 4 Cl- + 6 H+
With thiosulfate in excess, it stops at tetrathionate:
2 S2O32- + HOCl → S4O62- + Cl- + OH- Balanced by us from the standard half reactions, not measured3. Count the atoms and the charges; both equations close. Which of the two dominates depends on dose, and that is the honest answer to "how much do I add".
Read what the first equation produces. Chloride, sulfate, and six protons per thiosulfate ion. Dechlorination is an acidifying reaction and nobody mentions it. At the doses a fishkeeper uses on a bucket of buffered tap water the pH movement is negligible, but the direction is not a matter of opinion, and in genuinely unbuffered soft water an enthusiastic overdose is not free.
Now chloramine, which is where it stops being simple. Chloramines are most commonly formed when ammonia is added to chlorine, and utilities use them because they persist further into the distribution network than free chlorine does. They have been in use since the 1930s and more than a fifth of Americans drink chloraminated water.17
NH3 + HOCl → NH2Cl + H2O17
What a reducing conditioner does to it:
NH2Cl + reductant + H2O → NH4+ + Cl- + oxidised reductant The chlorine is dealt with. The nitrogen is not. It is released as ammonium into a tank, and section two decides whether that matters, because the same milligram per liter carries roughly fifteen times as much free ammonia at pH 8.2 as it does at pH 7.3
That is the whole chloramine problem in one line. Breaking a chloramine bond does not destroy nitrogen, it liberates it. A product that only reduces chlorine leaves you a small ammonia dose. Products that claim to also bind the ammonia are making a second, separate claim, and we have not found independent published verification of any aquarium ammonia binder's performance, only manufacturer literature.
And a caution on completeness. Dechlorination of a real water is not guaranteed to be complete just because the free chlorine residual reads zero, and thiosulfate, sulfite and ascorbate do not perform identically.1819 Both of those are wastewater papers at wastewater loads, they are cited here for the existence of the effect rather than for a number, and neither full text has been read by us.
You cannot answer the dosing question without it, and we have not found a published free chlorine or chloramine residual for the Yerevan supply. What is published is that ammonium and nitrite were not detected in any Yerevan district sample.6 That is a useful negative: it is not consistent with heavy chloramination, and it is not proof of its absence either.
Works for free chlorine, which is volatile and decays. It does not work for chloramine, which is used precisely because it persists.17 If your utility chloraminates, the bucket-overnight habit is doing nothing and you will not find out until something dies.
Chemically this means a complexing agent, usually EDTA or a related chelator, which binds copper and other metals into a form that does not cross a gill. It is a real mechanism, it is the same one in section six, and how much protection it gives depends on hardness, alkalinity and dissolved organic carbon, all of which compete for the same metal.20
We could find no published, independent test of any slime coat protectant claim. It is not chemistry in the sense the rest of this page uses the word, and it should be read as marketing until somebody publishes an assay.
- Hem, J.D. (1985). Study and Interpretation of the Chemical Characteristics of Natural Water, 3rd edition. US Geological Survey Water-Supply Paper 2254. Public domain. The carbonate equilibrium constants, the hardness unit conversions, and page 92 figure 18, which is the validation used here: at a CO2 partial pressure of 0.0003 atmospheres Hem reports the Frear and Johnston (1929) laboratory data as giving about 20 mg/L of calcium for water in contact with air, and Garrels and Christ (1964, p. 83) as calculating 16 mg/L from thermodynamic data. Full text PDF
- Morin, G. Understanding the General Chemistry of the Planted Aquarium. Seachem Laboratories. The aquarium-facing statement of the same equilibrium constants, and the point that an alkalinity measurement does not identify any one compound. PDF
- Our own arithmetic. Not a published source. Every calculated figure on this page, with its inputs.
One, the carbonate system. The four equilibria and the charge balance
2[Ca2+] = [HCO3-]combined intoh3 = K12 K2 [CO2]2 / (2 Ksp)and solved at 25 degrees with log K1 -6.35, log K2 -10.33 and log Ksp(calcite) -8.48, from 1 and 2. Activity corrections are ignored and equilibrium is assumed perfect, so every calcium figure is a slight underestimate. The uninjected row is solved at 420 ppm of atmospheric CO2, which is 0.63 mg/L dissolved at 25 degrees by Henry's law from 4, and returns pH 8.18, 19.4 mg/L calcium, 0.967 meq/L bicarbonate and 2.72 dGH, printed as pH 8.2, 19.4 mg/L and 2.7 dGH. The three injected rows are set at a fixed dissolved concentration of 10, 20 and 30 mg/L and therefore do not move when the atmosphere does. The same figures are published on the water page and were recomputed independently here; they agree to the printed digit. The validation: re-solved at 0.0003 atmospheres, the CO2 content of air that 1 used, our model gives 17.2 mg/L of calcium, between the 16 mg/L Garrels and Christ calculated and the roughly 20 mg/L the Frear and Johnston experiments gave, both as reported in 1 page 92. Sitting below the experimental value is the expected direction of error for a model that ignores activity corrections. Two, the ammonia table.pKa = 0.09018 + 2729.92/(273.2 + T)andf = 1/(1 + 10(pKa - pH)), both from 7 as printed in 9, evaluated at 20, 25 and 28 degrees. Ionic strength is not corrected for, which shifts pKa slightly in hard water. Three, Henry's law.H(T) = HΘ exp(2400 (1/T - 1/298.15))withHΘ = 3.3 × 10-4 mol m-3 Pa-1from 4, and the air-side concentration from the ideal gas law, at 1013 hPa and at Yerevan's 887 hPa station pressure. The 887 hPa figure is the Arabkir station value used across this site; the Agro plain runs nearer 906 hPa. The ratios of 1.08 and 1.22 and the 0.55 to 0.63 mg/L dissolved figures follow from that. Four, the unit conversions. 1 German degree is 10 mg/L of CaO, which is 0.17833 mmol/L, which is 17.85 mg/L as CaCO3 and 0.3567 meq/L and 21.8 mg/L as bicarbonate. Nitrate ion to nitrate nitrogen is 62.005 divided by 14.007, which is 4.427, rounded to 4.43 following 15. Five, the dechlorination equations. These are balanced by us from the standard half reactions and are stated as balanced equations, not as measured yields. What actually happens in a bucket depends on dose, pH and contact time, and 18 and 19 are the reason we do not claim a yield. Six, the Yerevan district figures are converted from the mg-equivalent per litre unit the source prints, at 1 mg-eq/L = 2.804 dGH, from 6. The carbonate hardness estimate for Yerevan is inference from the published bicarbonate fraction, not a measurement; nobody publishes a KH figure for Yerevan tap water. calculated, repeatable, unverified by a third party - Sander, R. (2015). Compilation of Henry's law constants (version 4.0) for water as solvent. Atmospheric Chemistry and Physics 15(8): 4399 to 4981. Open access. The solubility constant for CO2 and its temperature dependence used in every Henry's law figure here. DOI 10.5194/acp-15-4399-2015 open access
- NOAA Global Monitoring Laboratory. Trends in Atmospheric Carbon Dioxide, global mean. The 425.62 ppm global annual mean for 2025 and the 427 to 428 ppm monthly means through the first half of 2026. gml.noaa.gov
- Shahinyan, H.V. (2005). On the hydrogeochemical characteristics of some drinking waters supplying the city of Yerevan. Proceedings of the National Academy of Sciences of Armenia, Earth Sciences LVIII(1): 41 to 45. Sampling 2002 to 2004, roughly eight or nine samples per point. Open access. Tap water hardness, dissolved solids and pH by Yerevan district; the finding that bicarbonate is 61 to 77 percent of the anions and sulphate rarely above 11 or 12 percent; and the finding that copper, zinc, lead, cadmium, iron and arsenic were at or below detection in almost all samples. PDF at arar.sci.am
- Emerson, K., Russo, R.C., Lund, R.E. and Thurston, R.V. (1975). Aqueous ammonia equilibrium calculations: effect of pH and temperature. Journal of the Fisheries Research Board of Canada 32(12): 2379 to 2383. The pKa temperature relation used for every ammonia figure on this page. DOI 10.1139/f75-274
- Francis-Floyd, R., Watson, C., Petty, D. and Pouder, D.B. Ammonia in Aquatic Systems. University of Florida IFAS Extension, FA031. The roughly hundredfold toxicity difference between NH3 and NH4+, and the 0.05 mg/L free ammonia tissue damage threshold. ask.ifas.ufl.edu/publication/FA031
- US Environmental Protection Agency (2013). Aquatic Life Ambient Water Quality Criteria for Ammonia - Freshwater. EPA 822-R-18-002. Public domain. Page 8 prints the relation as
pKa = 0.09018 + (2729.92/(273.2 + T)), attributed to Emerson and colleagues, and page xii gives the 2013 criteria: at pH 7 and 20 degrees the acute magnitude is 17 mg total ammonia nitrogen per litre as a one hour average and the chronic magnitude is 1.9 mg/L as a thirty day rolling average. epa.gov/wqc/aquatic-life-criteria-ammonia - Walstad, D. (2017, reissued 2023). Nitrogen Uptake by Aquatic Plants. Open access, with its own reference list to the primary literature. The nitrification stoichiometry and the 7.1 mg of alkalinity as calcium carbonate destroyed per mg of ammonium nitrogen oxidised. PDF
- Hovanec, T.A., Taylor, L.T., Blakis, A. and DeLong, E.F. (1998). Nitrospira-like bacteria associated with nitrite oxidation in freshwater aquaria. Applied and Environmental Microbiology 64(1): 258 to 264. DOI 10.1128/aem.64.1.258-264.1998 open access
- van Kessel, M.A.H.J., Speth, D.R., Albertsen, M., Nielsen, P.H., Op den Camp, H.J.M. and others (2015). Complete nitrification by a single microorganism. Nature 528: 555 to 559. Comammox, and why the two step equation is a description of a net reaction rather than of two organisms. DOI 10.1038/nature16459
- Jahne, B., Heinz, G. and Dietrich, W. (1987). Measurement of the diffusion coefficients of sparingly soluble gases in water. Journal of Geophysical Research: Oceans 92(C10): 10767 to 10776. The measured diffusion coefficient of CO2 in water behind the four orders of magnitude. DOI 10.1029/JC092iC10p10767
- Pedersen, O., Colmer, T.D. and Sand-Jensen, K. (2013). Underwater photosynthesis of submerged plants: recent advances and methods. Frontiers in Plant Science 4: 140. Open access. The diffusive boundary layer, the 90 percent of total resistance figure, and the average threefold rise in underwater photosynthesis from ambient to saturating carbon. DOI 10.3389/fpls.2013.00140 open access
- Camargo, J.A., Alonso, A. and Salamanca, A. (2005). Nitrate toxicity to aquatic animals: a review with new data for freshwater invertebrates. Chemosphere 58(9): 1255 to 1267. The 2 mg of nitrate nitrogen per litre recommendation, and the 4.43 factor between nitrate nitrogen and the nitrate ion. DOI 10.1016/j.chemosphere.2004.10.044
- Hardness of Water. USGS Water Science School. The soft to very hard classification, all expressed as calcium carbonate. usgs.gov
- Chloramines in Drinking Water. US Environmental Protection Agency. The statement that chloramines are most commonly formed when ammonia is added to chlorine, that they are used because they persist further into the distribution network, and that they have been in use since the 1930s. epa.gov/dwreginfo/chloramines-drinking-water
- Helz, G.R. and Nweke, A.C. (1995). Incompleteness of wastewater dechlorination. Environmental Science and Technology 29(4): 1018 to 1022. Cited for the existence of the problem, that a dechlorination dose calculated on free chlorine does not necessarily clear everything chlorine has already made. Verified through Crossref; full text not read, and flagged for checking. DOI 10.1021/es00004a023
- MacCrehan, W.A., Bedner, M. and Helz, G.R. (2005). Making chlorine greener: performance of alternative dechlorination agents in wastewater. Chemosphere 60(3): 381 to 388. Cited for the fact that thiosulfate, sulfite and ascorbate are the practical dechlorination agents and that they do not perform identically. Verified through Crossref; full text not read, and flagged for checking. DOI 10.1016/j.chemosphere.2004.11.075
- Di Toro, D.M., Allen, H.E., Bergman, H.L., Meyer, J.S., Paquin, P.R. and Santore, R.C. (2001). Biotic ligand model of the acute toxicity of metals. 1. Technical basis. Environmental Toxicology and Chemistry 20(10): 2383 to 2396. Why a copper concentration on its own does not predict copper toxicity: hardness, alkalinity and dissolved organic carbon all change how much of it reaches the gill. DOI 10.1002/etc.5620201034
Continue
Where to go next.
Phosphate, iron, copper and tannins
Phosphate, iron, copper, tannins, and the one reaction that runs whether or not you do anything.
Materials and water
The same carbonate system applied to a real tank and a real tap, by Yerevan district.
Nitrification, decomposition and roots
What consumes the alkalinity, and why the textbook names for it are wrong.
Physics
Gas transfer, altitude and the carbon dioxide question from the physics side.