Aquaponics water chemistry: balancing pH for fish and plants
Fish want pH 7-8. Plants want pH 5.5-6.5. The system settles at whatever compromise the biology lands on. How to manage the drift.
Aquaponics water chemistry is a three-way negotiation. The fish want pH 7.0-8.0, ammonia near zero, and stable hardness. The plants want pH 5.5-6.5 for optimal nutrient uptake. The nitrifying bacteria that convert ammonia to nitrate (the whole point of the system) work best at pH 7.0-8.0 and slow significantly below 6.0.
The working compromise for most systems is pH 6.8-7.2. The fish tolerate the low end better than the plants tolerate the high end, and the bacteria function adequately in this range. Iron absorption drops above pH 7.0, which is why supplemental chelated iron is standard in aquaponics even when the system is otherwise nutrient-complete.
Why pH drifts down
Nitrification is an acid-producing process. When bacteria convert ammonia to nitrite and then to nitrate, they release hydrogen ions. Over time, this pushes pH down. In a system with good biological filtration and a healthy fish load, pH will drift downward by 0.1-0.3 per week unless buffered.
Fish respiration adds CO2, which forms carbonic acid. Plant roots excrete organic acids as part of normal metabolism. Decomposing fish waste and uneaten feed produce additional acids. All of these push pH downward.
If left unchecked, pH will eventually drop below 6.0, at which point the nitrifying bacteria slow dramatically. Ammonia processing stalls, ammonia spikes, and fish die. This is the acid crash and it's the most common system failure in mature aquaponics setups.
Buffering the pH
KH (carbonate hardness) is the buffer that prevents the acid crash. Bicarbonate ions absorb the hydrogen ions produced by nitrification and hold pH stable. As KH is consumed, buffering capacity drops and pH begins to slide.
Target KH: 4-8 dGH. Below 4, pH is unstable and can crash overnight. Above 8, pH sits too high for good plant nutrient absorption.
Buffer sources:
Potassium bicarbonate (KHCO3) is the preferred buffer for aquaponics. It raises KH without adding sodium, and the potassium is a plant nutrient. Dissolve a small measured amount in a bucket of system water, add it slowly, then re-test KH and repeat until you reach the target. Raise KH gradually over several days rather than in one large addition, since rapid pH changes stress fish.
Calcium carbonate (CaCO3), in the form of crushed coral, oyster shell, or agricultural lime, dissolves slowly and provides a continuous buffer. Place a mesh bag of crushed coral in the sump or filter. It dissolves faster at low pH and slower at high pH, which is a self-regulating feedback loop. Downside: it raises GH (calcium) along with KH, which can push GH above the range for some plants.
Sodium bicarbonate (baking soda) works as a pH buffer but adds sodium, which is toxic to plants at elevated concentrations and doesn't benefit them at any concentration. Use it only in emergencies when the pH is crashing and you have nothing else.
Potassium hydroxide (KOH) and calcium hydroxide (Ca(OH)2, hydrated lime) raise pH directly without raising KH. They're useful for a quick pH correction but don't add buffering capacity. The pH will drift back down unless KH is also addressed.
Iron supplementation
Iron is the nutrient most commonly deficient in aquaponics. Fish waste provides nitrogen, phosphorus, potassium (from feed), calcium, and most trace elements. Iron is present in fish waste but at concentrations too low for fruiting crops, and above pH 6.5 even the iron that's present precipitates out of solution.
Chelated iron (Fe-DTPA, stable to pH 7.0; or Fe-EDDHA, stable to pH 9.0) is the standard supplement. Maintain iron at around two milligrams per litre, the target the FAO small-scale aquaponics manual recommends. Fe-EDDHA is more expensive but stays available in the pH 6.8-7.2 range where aquaponics operates; Fe-DTPA begins losing effectiveness above pH 7.0.
Iron deficiency symptoms: new leaves emerge pale yellow or white (iron is immobile in the plant). In a mature system with green older leaves and yellow new growth, iron is almost certainly the limiting factor.
Potassium and calcium
After iron, potassium and calcium are the nutrients most likely to limit plant growth in an aquaponics system. Fish feed provides nitrogen and phosphorus abundantly (fish waste is largely a nitrogen-and-phosphorus delivery system), but potassium and calcium depend on the feed formulation and the water source.
If using potassium bicarbonate as the pH buffer (recommended above), potassium supplementation is partially handled by the buffering routine. For additional potassium, potassium sulfate (K2SO4) is plant-safe and doesn't affect pH.
Calcium comes from the water source (hard water provides it naturally) or from calcium carbonate buffers (crushed coral). If GH is below 4 dGH and calcium deficiency symptoms appear (blossom end rot in tomatoes, tip burn in lettuce), add calcium chloride (CaCl2) at 1-2 grams per 100 liters.
Testing schedule
Weekly pH test (more often in a new system or after adding fish). Weekly ammonia and nitrite, which should both read zero in a cycled system; any sustained detectable reading means the biofilter is underperforming. KH every 1-2 weeks. Iron every 2-4 weeks if supplementing.
Nitrate in aquaponics behaves differently from an aquarium. In an aquarium, high nitrate is a problem you solve with water changes. In aquaponics, the plants consume the nitrate instead. If nitrate keeps climbing into the high tens of ppm, the system has more fish waste than the plants can absorb, so add more plants or cut back feeding. If nitrate sits near zero, the plants are nitrogen-starved, so add more fish or feed more.
The fish-to-plant ratio calculator and system sizing calculator use these relationships to help balance the fish and plant loads.
The compromise zone
Aquaponics water chemistry is a series of compromises because the three biological components (fish, bacteria, plants) have different optimal ranges for pH, temperature, and nutrient concentrations.
pH 6.8-7.0 is the narrowest compromise zone. Fish prefer 7.0-8.0. Plants prefer 5.5-6.5 (nutrient availability peaks in this range). Nitrifying bacteria work across a wide range but slow below 6.0. The 6.8-7.0 range gives all three acceptable conditions without fully optimizing any.
Iron availability drops sharply above pH 7.0, which is why iron deficiency is the most common nutrient problem in aquaponics. At the compromise pH, you're right at the threshold where iron starts precipitating out of solution. Chelated iron supplements compensate for this.
Calcium and potassium aren't supplied by fish waste in adequate amounts for heavy-feeding plants. Using calcium hydroxide and potassium hydroxide to manage pH (which drifts downward from nitrification) simultaneously supplements these nutrients. This turns a maintenance chore (pH adjustment) into a nutrient delivery method.
Understanding these compromises helps you diagnose problems. If plants show iron deficiency, the pH may have drifted above 7.2. If fish are stressed, the pH may have crashed below 6.0. If both fish and plants are struggling, look at ammonia and dissolved oxygen rather than pH.
The system sizing calculator helps you plan a system with appropriate biofilter capacity for your target pH stability.