Pond Water Chemistry
KH — carbonate hardness, and what most US test kits label total alkalinity — is the measurement that decides whether your pond's pH holds steady or falls out from under the fish overnight. It is not general hardness, it cannot be read off a pH pen, and the pond consumes a little of it every single day. What follows is what KH actually measures, the numbers worth holding, how to raise it without causing a second problem, and why the parameter that matters most is the one that gets checked least.
This is the single most common error in pond water advice, and correcting it is the reason this page exists. KH and GH are both called "hardness", they are both reported in degrees, and they do completely different jobs. Only one of them protects your fish from a bad morning.
| Comparison | KH — carbonate hardness (alkalinity) | GH — general hardness |
|---|---|---|
| What it measures | Bicarbonate and carbonate ions dissolved in the water | Dissolved calcium and magnesium |
| Its job | Neutralizes acid as fast as the pond produces it — the water's buffering capacity | Supplies minerals the fish use for osmoregulation and skeletal health |
| Does it affect pH | Yes. It is the thing holding pH where it is | No. GH provides no pH buffering at all |
| What happens when it is too low | pH loses its anchor, becomes unstable, then collapses suddenly | A slow mineral shortfall — a husbandry issue, not an overnight emergency |
Practical consequence: a municipal water report that calls your supply "hard" is telling you about GH, and tells you nothing reliable about the buffer in your pond today. Well water, softened water and rainwater top-ups can all land you with adequate mineral content and almost no carbonate reserve. The only way to know your KH is to measure KH.
A koi pond generates acid continuously, from three sources that never stop. Fish respiration puts CO2 into the water, which forms carbonic acid. Decaying food, leaves and mulm produce organic acids. And nitrification in the filter — the process converting ammonia to nitrite to nitrate, the process you spent months establishing — consumes alkalinity as it runs. A well-stocked, well-filtered pond burns through buffer faster than a neglected one.
While any buffer remains, pH barely moves. That is what a buffer is for. It is also what makes KH dangerous to ignore: a stable pH reading week after week is not evidence that the water is fine. It is evidence that there is still something left in the tank.
Keepers call the event a pH crash, and it has a specific timing. Through the day, plants and algae consume CO2 and pH drifts up. After dark they stop photosynthesizing and start respiring, CO2 climbs, and pH drifts back down. With normal KH that daily swing is a fraction of a point and nothing notices. With the buffer exhausted there is nothing damping it, and a pond that read 8.2 at last light can read under 6.0 by the morning feed. Ponds that have been drawing down their reserve for years without replacement are often described as having old pond syndrome — the same failure, arrived at slowly.
The part worth internalizing: pH is a lagging indicator. It gives no warning, because by design it does not move until the protection is gone. By the time pH tells you there is a problem, the problem has already happened. KH is the leading indicator, and it declines gradually and predictably — if anyone is looking.
In a stocked, fed pond the biofilter is usually the largest single consumer of alkalinity. Nitrification is an acid-producing process: as the bacteria convert ammonia to nitrate they release hydrogen ions, and the pond's carbonate buffer is what neutralizes them. The standard engineering figure is roughly 7 mg/L of alkalinity, measured as calcium carbonate, destroyed for every 1 mg/L of ammonia nitrogen oxidized, which is about 0.4 dKH. Measurements in real submerged filters sit close to it, generally between 7.0 and 7.2. One detail is worth knowing: essentially all of that acid comes from the first step, ammonia to nitrite. A filter stalled at nitrite is still spending alkalinity at the full rate.
The consequence is the opposite of what people expect. The better the filter works, and the more you feed, the faster KH falls. A pond losing KH steadily is not a pond with a fault; it is a pond whose filter is doing its job. The alkalinity is being used up, and something has to put it back, whether that is your source water, carbonate media, or you.
If it is allowed to run out, one cause gives you two problems. pH loses its buffer and begins to move with the day's CO2, which is the crash most keepers have heard of. Less widely known is that the nitrifying bacteria draw their carbon from bicarbonate and slow down markedly in a low-alkalinity, low-pH pond, so ammonia can start to accumulate at the same moment pH turns unstable. That is the reason to think of KH as the filter's consumable rather than as a pH setting. It is used up in normal operation and it needs replacing on a schedule, like anything else that gets used up.
Because the cost is close to fixed per unit of ammonia processed, the rate at which KH declines tracks how hard the filter is working, and so how much the pond is being fed. A pond that used to lose a degree of KH over a month and now loses one in a week is telling you the load has risen. That is genuinely useful, and it is worth writing down alongside the reading.
It is not a measurement of filter activity, though, and the confounders are real. Every water change and every top-up adds fresh alkalinity from your source water and hides part of the decline; rain does the reverse and dilutes it. Crushed coral, oyster shell and limestone dissolve faster as pH drops, so a pond with carbonate media partly corrects itself and flattens the curve at exactly the point the load is highest. Some ammonia also leaves by cheaper routes: in a heavily fed pond, heterotrophic bacteria take part of it directly into their own biomass at about half the alkalinity cost, and anoxic zones in settled sludge give some alkalinity back through denitrification. Read the trend as a direction, not as a number.
| KH | What it means |
|---|---|
| Under 55 ppm (under 3 dKH) | Critical. The pond has essentially no protection left and a crash can happen on any night. Correct immediately and test daily. |
| 55-90 ppm (3-5 dKH) | Too thin. Below 5 dKH, pH can become unstable within 24 hours. Treat this as a working reading, not a resting place. |
| 105-180 ppm (6-10 dKH) | Optimal for koi. Enough reserve to absorb a heavy feeding week, a rain event or a filter hiccup without pH moving. |
| 195-250 ppm (11-14 dKH) | Harmless. Higher than needed, and the pond will sit toward the alkaline end, but koi are comfortable here. |
| Over 250 ppm (over 14 dKH) | High, but usually unproblematic. Worth understanding where it comes from rather than rushing to correct it. |
Units: 1 dKH equals 17.9 ppm CaCO3. US pond and pool kits print ppm or mg/L as CaCO3 and usually call it total alkalinity; aquarium-side kits print dKH, and most drop kits are built so one drop equals one dKH. It is the same measurement on two scales — the only real hazard is comparing a dKH target against a ppm reading and being off by roughly eighteen-fold.
The most reliable single reading available to a pond keeper. You add reagent drop by drop until the sample changes color, and the drop count is your KH. It is repeatable, it works at the low end where it matters, and it is the reference every other method should be checked against. Keep one on hand and use it.
Convenient, and too imprecise for this particular parameter. Strips read by color pad, and telling 2 dKH from 5 dKH on a pad is exactly where they are least trustworthy — which is exactly the difference between a pond that is fine and a pond that will crash this week. A strip is fine for a rough weekly glance at several parameters. It is not the tool you want when the number is falling.
Most simple digital meters do not measure KH at all. A pH pen reports pH, which is the number that stays reassuringly flat while the buffer beneath it disappears. Knowing what a device does not measure is as useful as knowing what it does.
How H2Koi reports KH. H2Koi does not run a titration, and we would rather say so plainly than let the number imply something it is not. KH is a continuously derived value — computed from the sonde's measurements and reported across a 0-20 dKH range. Its value is direction and rate: whether the buffer is holding, drifting or falling, and how fast, which is precisely what a weekly snapshot cannot show. Treat it as continuous early warning on the parameter that moves first. H2Koi does not report GH — general hardness is not in its parameter list, and no reading on the page should be read as one. It does not detect disease or parasites.
Plain baking soda — sodium bicarbonate, nothing else on the label. Not baking powder: baking powder also contains acidifiers and anti-caking agents, and none of it belongs in a pond.
The rule of thumb is about 3 g per 100 litres, roughly 4 oz per 1,000 gallons, for about 1 dKH — that is 17.9 ppm. Dissolve the dose fully in a bucket of pond water and pour it in near the return where flow will distribute it. Never broadcast dry powder across the surface.
Published rules of thumb vary, and pond volume estimates are almost always generous. Treat any figure as a starting point and re-check the pond after dosing.
Raise by no more than 1-2 dKH per day, and re-measure before the next step. Fish that have been living in thin, low-buffer water are acclimated to it, and a correction applied all at once becomes its own shock. Getting there slowly and confirming each step is not caution for its own sake — it is the method.
The dosing numbers on this page are the common rule of thumb in koi husbandry. They are widely used, they are a reasonable place to begin, and they are not a prescription for your pond. Every pond is different: the volume is almost always estimated rather than known, and your source water, the alkalinity already in the pond, dissolved CO2, stocking density and how hard the filter is working all change what a given dose actually does.
So calculate from your own pond rather than copying a figure, start lower than you think you need, measure, and adjust from what you measure. If the pond is already in trouble, with fish behaving abnormally or a parameter moving fast, talk to a koi health specialist or an aquatic veterinarian before you dose.
Crushed shell, oyster grit or coral gravel in a filter chamber, or bagged in good flow, dissolves faster as pH falls and slower as pH rises. That makes it self-regulating: it replaces the habit of dosing rather than the habit of testing. It works gradually, so it is a way to hold a good KH, not a way to rescue a bad one.
Water changes raise KH only if the fill water is harder than the pond. If your source is soft, softened, or you top up with collected rainwater, a change dilutes what little buffer you have and makes the situation worse. Test your tap directly before assuming it helps.
Rarely necessary. High KH in a koi pond is generally a non-event, and the effort is usually better spent elsewhere. If you do have a specific reason, the method is dilution: partial changes with softer water — reverse osmosis or collected rainwater — done in stages with a test between each one.
Do not dose acid to bring KH down. Acid lowers KH by consuming the buffer, which is the exact reserve standing between your pond and a pH crash. You would be spending the safety margin to move a number that was probably not causing any harm.
| Situation | What to do |
|---|---|
| KH under 55 ppm (3 dKH), pH still reading normal | The buffer is nearly gone and pH is about to stop being reassuring. Start bicarbonate now, 1-2 dKH per day, and test daily until you are back above 105 ppm. |
| KH near zero and pH has already fallen | Treat as an emergency. Raise KH — do not chase pH directly. Stop feeding, increase aeration and surface movement, and bring the buffer up in measured steps rather than one large dose. |
| KH falling week over week, still inside range | Consumption is outrunning replacement. Find the load — leaf litter, uneaten food, heavy stocking, a hard-working filter — and set up shell grit or coral so the pond tops itself up. |
| KH looks fine but pH swings noticeably day to night | Confirm the KH with a drop test rather than a strip, since a swing at adequate KH usually means the reading is optimistic or the CO2 load is unusually high. Add overnight aeration either way. |
| KH over 250 ppm (14 dKH) | Usually leave it alone. The pond simply resists pH change strongly and will sit alkaline, which koi tolerate well. Dilute in stages with softer water only if you have a specific reason. |
Weekly testing is the universal advice, and it is good advice. It also means that of the 168 hours in a week, roughly 167 pass with nobody watching the water.
KH is the parameter where that gap costs the most, because everything about its failure mode is quiet. It falls without a symptom. The fish behave normally. pH — the number most keepers actually check — stays flat by definition until the moment it does not. And the event itself lands overnight, in the middle of the gap between two Sunday-morning tests.
A KH figure trending down over ten days is information that a weekly snapshot can produce only by luck. That is the gap H2Koi is built to cover: continuous early warning on the parameter that moves first, so you watch it moving instead of being told after the fact.
KH is carbonate hardness — the bicarbonate and carbonate dissolved in your water, which most US test kits label total alkalinity. It is the pond's acid-buffering capacity: the reserve that neutralizes acid as fast as the pond makes it, so pH stays put. It is not a measure of how hard the water feels, and it is not the same thing as GH.
Hold 105-180 ppm CaCO3, which is 6-10 dKH. Below 90 ppm (5 dKH) pH can become unstable within 24 hours. Below 55 ppm (3 dKH) is critical. From 195-250 ppm (11-14 dKH) is harmless, and above 250 ppm (14 dKH) is high but usually not a problem worth correcting.
KH is carbonate and bicarbonate — the buffer that holds pH steady. GH is dissolved calcium and magnesium, which matters for the fish but does no buffering whatsoever. Water can carry plenty of GH and almost no KH, which is how ponds on genuinely hard water still crash. Confusing the two is the most common mistake in pond advice. For the record, H2Koi reports KH and does not report GH at all.
The working rule of thumb is about 3 g per 100 litres — roughly 4 oz per 1,000 gallons — for about 1 dKH, or 17.9 ppm. Use plain sodium bicarbonate, never baking powder, which contains acidifiers and anti-caking agents. Dissolve it in a bucket of pond water before it goes in, raise no more than 1-2 dKH per day, and re-test before the next dose. Volume estimates are usually optimistic, so let the kit tell you where you ended up.
Almost always because KH ran out. Fish respiration, decaying food and leaves, and nitrification in the filter consume buffer continuously. pH holds steady while any reserve remains, so it reads normal right up to the end. Once the reserve is gone, pH follows CO2 — and CO2 peaks overnight, when plants and algae stop photosynthesizing and start respiring. A pH crash is a KH failure that finally became visible.
Weekly as a baseline, and daily while you are correcting a low reading, after heavy rain, after a large water change, and through leaf fall. Use a drop test rather than strips: strips are least reliable at the low end of the scale, which is exactly the range where the answer changes what you do. Weekly testing still leaves about 167 hours a week unobserved, which is the case for continuous monitoring.
It can be high, but it is rarely a problem. Above 250 ppm (14 dKH) the water simply resists pH change strongly and tends to sit at the alkaline end of the range, which koi handle well. If you have a specific reason to bring it down, dilute in stages with reverse osmosis water or collected rainwater. Do not use acid — it lowers KH by destroying the buffer you would otherwise be maintaining.
H2Koi monitors pond water continuously and reports which way the numbers are moving, so your weekly drop test confirms what you already know instead of being the first time you find out.
Those readings are watched by a person, not only by software: when a trend turns, we contact the owner rather than waiting for them to open an app and find it. That human attention is the point of the service, not the dashboard.
See how H2Koi works