KH in Koi Ponds: Why It Drops and How to Keep It Stable
This is one of the most common calls I get. Somebody's pH has crashed, or it is bouncing around and they cannot figure out why, and a few minutes into the conversation I ask what their KH is running. More often than not the answer is that they have never tested it, or that the test is sitting in their kit but they were never sure what the number was actually telling them.
That is not a knock on anybody. KH is the least intuitive of the common water tests, and it is the only one that gives you no warning at all while it declines. Ammonia shows up on a test. Algae you can see from the deck. A sick fish looks like a sick fish. A KH reserve quietly running out looks like nothing whatsoever, right up until the day it looks like a disaster.
So let's go through what it actually is, why your filter uses it up, and how to stay ahead of it.
What KH actually measures
In pond keeping we use KH as shorthand for carbonate alkalinity. In plain terms, it is your water's ability to soak up acid without the pH moving. Most of that capacity comes from bicarbonate and carbonate dissolved in the water.
Here is the distinction that usually makes it click for people:
pH tells you where your water is sitting right now. KH tells you how much abuse it can take before it moves.
Those are two completely different questions, and a good answer to one tells you nothing about the other. It is why somebody can tell me their pH has been rock solid for weeks and still be a few days out from a crash. The pH really was fine. The reserve holding it there was almost gone.
KH usually gets reported in ppm, or mg/L as calcium carbonate. At pond concentrations those are the same number, so do not overthink it. Some test kits report degrees instead, where 1 dKH works out to about 17.9 ppm.
Why your filter uses it up
Almost all the nitrogen going into your pond arrives as protein in the food. Your fish excrete a portion of it as ammonia, and whatever food does not get eaten breaks down and releases more.
Your biofilter converts that ammonia to nitrate, which is the whole point of having one. What does not get mentioned nearly enough is that it produces acid while it does it:
NH₄⁺ + 2O₂ → NO₃⁻ + 2H⁺ + H₂O
Two hydrogen ions, which is to say acid, for every ammonium ion converted.
That acid immediately runs into your KH, which neutralizes it. That is the system working correctly. It is also the moment your reserve gets spent.
The number behind it is well established. It takes roughly 7.14 mg of alkalinity for every 1 mg of ammonia nitrogen that gets fully converted. That figure is fixed by the chemistry, and this is where I want to head off a conclusion that sounds reasonable but is wrong.
Better media, a bigger biofilter, more aeration. All of those help your system convert ammonia more reliably. None of them change what that conversion costs you in alkalinity. So if you are looking at two ponds and one seems to be using less KH, that filter is almost certainly not saving you anything. It is failing to convert ammonia, and you would be seeing that on an ammonia test instead.
The thing driving KH consumption is how much nitrogen you are putting into the pond. Not how good your filter is.
Where it goes, and what brings it back
When bicarbonate neutralizes that acid it turns into carbon dioxide and water. The CO₂ either gasses off through your waterfall or gets used by your plants and algae, but either way the alkalinity that did the work is gone.
Does that mean KH only ever goes down? No, and I want to be careful here, because I have seen this oversimplified plenty of times. Several things genuinely put alkalinity back:
- Your replacement water, if it carries decent alkalinity of its own.
- Limestone, oyster shell, coral, and some concrete surfaces, which release carbonate slowly as they dissolve.
- Denitrification in the low oxygen pockets of your system, which hands back part of what nitrification consumed.
In most recirculating koi ponds though, those inputs do not keep up with a pond that is being fed properly. The net result is a slow slide between water changes and buffer additions. That is why this needs managing instead of assuming.
What it looks like when the reserve gets thin
With plenty of KH in the water, your pond's daily acid load barely moves the pH at all. As the reserve shrinks, that same daily load starts producing a bigger and bigger swing.
There is an early warning in that, and it is worth knowing about because it shows up before anything else does. Your pond already cycles pH every single day. Plants and algae pull CO₂ out of the water during daylight and push pH up, respiration puts it back overnight and pH comes down. A pond with a healthy reserve absorbs that quietly and you never notice.
As KH falls, the gap between your morning reading and your afternoon reading gets wider. That widening swing usually turns up well before the average pH goes anywhere interesting. If you always test at the same time of day, which most of us do, you will miss it completely.
Low alkalinity hits the biofilter too. Nitrifying bacteria need workable pH, oxygen, and inorganic carbon to do their job, and as alkalinity and pH drop their conversion of ammonia and nitrite gets less dependable.
Is there a specific number where that happens? Not really, and be suspicious of anyone who gives you one. It depends on temperature, pH, dissolved oxygen, how your filter is built, how hard you are feeding, and how much fish you are carrying. The goal is keeping enough in reserve that your pond never gets close enough for you to find out where its number is.
How fast is your pond going through it?
Since ammonia production comes from feeding, and alkalinity use comes from ammonia, you can get a reasonable estimate of how fast your pond is working through its reserve from what you feed and how much water you have.
KH drawdown calculator
An estimate of how quickly your buffer is being used, and what it takes to hold it where it is.
A water change does not automatically add alkalinity. It pulls your pond toward whatever the KH of your replacement water is. If your source is softer than your pond, changing water will actually lower your KH. Test it once so you know which way it cuts.
Nitrification uses
Water changes add
Net change per day
To hold it where it is
of sodium bicarbonate, daily
To bring KH back up to 120 ppm
A one time correction. Split it over two or three days instead of dumping it in, and read the safety note further down before you do it.
How this gets calculated. Feed weight times protein percentage times 0.16 gives you the nitrogen you fed. About 75% of that is assumed to reach the water as ammonia nitrogen, which then gets multiplied by 7.14 for the alkalinity demand. That 75% is an estimate and published figures run from roughly 0.5 to 0.8 depending on species, food digestibility, and how much solid waste you pull out before it breaks down. I went with the high end so this errs toward telling you to buffer more rather than less. It also only counts nitrification, so it ignores anything denitrification or your rockwork gives back. Use it to plan, then let your test kit settle the argument.
What to aim for
These are practical working ranges for a koi pond that is being fed, not biological cliff edges where something switches off.
| KH reading | Status | What it means |
|---|---|---|
| 100 to 150 ppm | Preferred | A comfortable reserve for most koi ponds running active biofiltration. |
| 80 to 99 ppm | Monitor | Still workable, but worth rechecking soon if it has been trending down. |
| 50 to 79 ppm | Low | Not much left. Check pH, ammonia and nitrite, then start a measured correction. |
| Below 50 ppm | Very low | Real risk of pH instability and unreliable nitrification. Correct carefully and keep watching your water. |
Broader aquaculture guidance tends to cite something like 75 to 200 ppm as workable. For a koi pond specifically, holding 100 to 150 gives you a useful cushion without pushing alkalinity higher than it needs to be.
Test weekly any time you are feeding regularly, and test again after anything big changes. A jump in feeding, heavy rain, a large water change, or a big buffer addition are all worth a follow up reading.
You will see KH fall fastest in warm weather, but not because warm water is somehow harder on alkalinity. Per unit of ammonia the chemistry is identical. It is that your fish are eating more and your filter is processing a much bigger nitrogen load.
What raises KH, and what does not
There is one rule here that sorts out most of the confusion, so I will put it up front. It is the carbonate that raises KH, not the calcium. Once that clicks, the products sort themselves out.
Sodium bicarbonate, or baking soda
Cheap, predictable, and what most koi keepers reach for. It raises KH without touching your GH. For a rough reference, 1 pound of pure sodium bicarbonate in 1,000 gallons will raise KH by about 71 ppm. Adjust for your actual volume and retest afterward, because your real pond volume is probably not the number you think it is.
It is more forgiving than the stronger stuff, but do not read that as pH neutral. If your pH has already dropped, baking soda can pull it up a long way. Measure your dose instead of eyeballing it.
Dedicated pond buffers
These are usually bicarbonate or carbonate blends with the dosing already worked out per pond volume, which makes them convenient. Just check the label actually says it raises KH or alkalinity. Packaging confuses KH and GH constantly.
Oyster shell, coral and limestone
All calcium carbonate, so these raise both KH and calcium hardness as they dissolve. The catch is that they dissolve slowly, and slower still once your water is already sitting neutral or alkaline. Putting them somewhere with real flow through them helps. Think of these as a backstop that keeps you topped off, not as something that will rescue a pond that is already low.
Calcium chloride
Raises calcium hardness, which is part of GH. It brings no carbonate or bicarbonate with it, so it does nothing at all for your KH.
This is where you will hear people say calcium does not raise KH. I understand where that comes from, but stated that broadly it is misleading, because calcium carbonate raises both. It is the other half of the compound that decides what you get.
Water changes
These only raise KH if your source water is higher in alkalinity than your pond is. If your water is soft, changing water pulls your KH down. Test your tap before you count on it as part of the plan.
Correcting a low reading without making it worse
Please read this one before you dose
If your pH has already fallen and you have ammonia showing on a test, do not make a big fast pH correction. Raising pH shifts more of your total ammonia into the un-ionized form, which is the form that actually hurts your fish. It is completely possible to turn a survivable ammonia reading into a lethal one while you are trying to fix your KH.
Test KH, pH, ammonia and nitrite before you do anything significant. If ammonia is present, stop or cut back feeding, keep your aeration cranked, deal with the ammonia first, and bring KH up in stages while retesting in between.
When you do dose, dissolve it in a bucket of pond water and pour it somewhere with good circulation rather than dumping it in one spot. And keep in mind that continuously dosing sodium bicarbonate keeps adding sodium to a closed system. It supports your water changes. It does not replace them.
The short version
KH is your pond's ability to absorb acid. Feeding creates a nitrogen load, your filter converts it, and alkalinity gets spent doing the conversion.
A pH test tells you how your pond is doing today. A KH test tells you how much protection you have left. Only one of those gives you any advance notice, and it is the one most people are not testing.
For most filtered koi ponds, holding KH somewhere around 100 to 150 ppm and checking it weekly through the feeding season is plenty. Use the calculator above to plan ahead, then let your own test results tell you how often your pond really needs you.
If you are working through a KH problem and want a second set of eyes on it, reach out. You can call me at 206-350-7580 or email [email protected].