I'm trying to rescue a neglected fish tank. I've been trying to figure out how much extra hydrochloric acid to add to my water change for my fish tank to soften the water a little and reduce the pH a little, so it peaks at about 7.6 at the end of the day. Though I don't I want the KH to drop below about 3 dKH. Also note that I don't want to change the pH by more than 0.1 per water change.

I would like to know how to measure/calculate/estimate the pH and how to apply that knowledge to find out the resulting balance between pH and carbonate hardness of the fish tank after some of its buffer has been used. See my spreadsheet for my calculations so far.

To make things easier, let us assume that

  • cows are spherical
  • there is only pure water, $\ce{CaCO3}$, and $\ce{HCl}$ being mixed.
  • dissolved oxygen and $\ce{CO2}$ levels equalise with the atmosphere
  • other chemicals in the tank can be used if it is convenient.
  • the label on the pool acid is accurate even after being opened a few times.
  • my measuring is accurate.

All of the info below is for additional context. My main question is: How do I calculate the balance between the $\ce{CaCO3}$ dissolved in water and the resulting KH and pH balance when adding $\ce{HCl}$?

Edit: lets be specific and simplified and start with

  • a 9L bucket of tap water
  • with 3dKH (0.0005349585373 mol/L) $\ce{CaCO3}$
  • and starts with a pH of 7.2 or 0.00000006309573445 mol/L of H+
  • and add 1ml of HCl at 1.7 mol/L

Does that mean that for the bucket of water before adding the acid $${ pKa = 7.2 - log_{10}(\frac{0.0005349585373}{0.00000006309573445}) = 3.271679877 }$$

If so, how can this info be used to predict how much of the $\ce{CaCO3}$ is used when the HCl is added and what the new pH will be in the bucket after equilibrium is reached? Nevermind the significant digit issue.

So far the things I have and can measure are

  • API freshwter master test kit to test for pH, Ammonia, Nitrite, and Nitrate.
  • API KH&GH test kit to measure degrees carbonate and general hardness.
  • pool acid with 370g/L $\ce{HCl}$ on its label ( 10.15 mole/L )
  • Tap water with
    • pH 7.2
    • 3 dKH
    • 4 dGH
  • science products aquarium science chlorine neutralizer
  • Fish Tank
    • Tank volume 55L
    • 18 months old
    • filter is sponge and mini K1 bio media before a 700 L per hour pump going to a spray bar at the top of the tank, that looks a lot like this one
    • substrate is shovel of dirt from back yard covered with aquarium sand
    • some wood pieces that have been in there for about 3 months.
    • planted with java swords and java moss
    • 17 pacific blue eyed fish
    • only using mechanical and biological filter. No charcoal in use.
    • pH 7.8 at the end of the day. Possibly as low as 7.6 in the morning before the grow lights turn on. (Nitrification of ammonia reduces pH, and photosynthesis increases pH)
    • 5 dKH
    • 20 dGH
    • Ammonia less than 0.25 ppm
    • Nitrite less than 0.2 5ppm
    • Nitrate 5 to 20 ppm depending on how I hold the test to the colour chart
  • Water change size is 1 bucket (9L)

I've mixed 50 ml of the pool acid in to 250 ml of tap water to make it non-fuming to be easier to work with, and am calling this "diluted" acid. So far I've only been adding 1 to 2 ml of the diluted acid to the water change, because there are fish in the tank and I want to take it slow. I use a 1 ml glass eye dropper with 0.25 ml markings on it to add the diluted acid to the bucket of water.

Seeing that this amount of added acid is not changing much, I've been trying to figure out how much more I need to add to have the desired effect. After doing some initial calculations in a spreadsheet I see that 2 ml of my diluted acid is not enough to use up the buffer in the 9 L bucket of tap water let alone have much of an effect on the fish tank.

My problem is figuring out the balance of amount of carbonate buffer remaining and the resulting pH level.

this CE question and wiki seems to be most of the info I need, but I seem to be missing some info to fill in the equations.

Update for even more context: For the benefit of those who are concerned about the procedure I am following and for those who want even more detail, this is what I do when the water change includes acid:

  1. Test the tank water for pH and KH morning and evening to determine the current min and max values. Remember fish, bacteria and photosynthesis all affect pH. Also test for ammonia, nitrate, and when in the mood also test nitrites and GH. Though since this is a well established tank I often skip the nitrite test.
  2. start filling the 9L bucket with tap water.
  3. (sometimes) test pH, KH, and GH of water fresh out of the tap. But I'm lucky and my tap water is fairly consistent quality. Though I suppose this means they treat the heck out of it.
  4. while filling the bucket I add science products aquarium science chlorine neutralizer according to the directions on the bottle.
  5. while still filling the bucket I have been adding 1 to 2ml of the diluted (1.7mol/L) HCl with a glass eye dropper with 0.25ml markings with about 5mm between each marking.
  6. (most times) once the bucket is full, I test the bucket water for pH, and KH
  7. I leave the bucket to rest for at least a few hours, or overnight to give it time to reach equilibrium.
  8. Once the bucket has rested, I test the bucket water for pH, KH, and sometimes GH. This is a very important step, that I take extra care to perform correctly.
  9. if the bucket water pH is below 6.2 I would discard that water and start again. I would consider a pH of 6 ok except this is the minimum reading on my test kit, and a pH below 6, even well below 6, is indistinguishable from a pH of 6 with my test kit.
  10. if the fresh water is safe, I siphon enough water and muck out of the tank so 9L can be added (yes this is a 2nd bucket), and tip that into the garden bed.
  11. slowly pour the bucket of fresh water into the tank. This takes at least 3 minutes because if I pour any faster I disturb the sand substrate too much or am in danger of dislodging one of the plants. This is due to the downward flow pattern of pouring. By this time the filter pump has pushed almost 35L through itself (700L per hour), maintaining a good stirring rate in the tank.
  12. test tank water for pH, and KH.
  13. wait a few hours and test pH and KH again.
  14. the following day test pH and KH morning and night

Because this is a fairly labour intensive process I don't add acid every time I do a water change. When not adding acid in the water change I skip nearly all of the steps except the chlorine neutraliser.

  • 1
    $\begingroup$ You really need someone with significant aquarium experience rather than a chemist. Perhaps the Biology section would be a better fit since you don't want to kill the fish or plants. // It isn't clear how you're measuring the pH nor what you want the final pH to be. $\endgroup$
    – MaxW
    Commented Dec 14, 2015 at 5:20
  • $\begingroup$ While I think this is an excellent researched question, I also fear that you might not reach the audience you need here. If you'd like to have your question migrated to maybe Biology, let me know. $\endgroup$ Commented Dec 14, 2015 at 5:33
  • $\begingroup$ Stop! Don't add $\ce{HCl}$ to the aquarium with live fish in it! I don't know whether your jurisdiction prohibits cruel treatment of animals, but... well, please, just don't do that. $\endgroup$ Commented Dec 14, 2015 at 8:16
  • $\begingroup$ @IvanNeretin do you have any info on why I should not add HCl to my water change water? $\endgroup$ Commented Dec 14, 2015 at 11:00
  • 1
    $\begingroup$ @BeowulfNode42 Because it's way too harsh. It's like heating an apartment (with people inside) using a flamethrower. Also, it's because of the nature of typical titration curve (and remember, your cows are not quite spherical, so you don't really know that buffer capacity). You add some acid, nothing changes, you add some more, and more, and then suddenly one extra portion drives it all the way into acidic pH and kills everything inside. $\endgroup$ Commented Dec 14, 2015 at 12:13

3 Answers 3


I think you're removing 9 liters of tank water, and replacing it with 9 liters of unchlorinated tap water.


(1) Remove 9 liters of water from tank into bucket.

(2) add enough HCl to get 9L of water in bucket to the desired pH.

(3) Discard the water in bucket removed from tank.

(4) Fill bucket with tap water & adjust that to desired pH.

(5) Add 5 times amount of acid used in step 2 to bucket of water from (4). (Bucket is 9 liters, but tank is 55. 55-9= 46. 46/9=5.1).

(6) Add water from bucket back to tank 1 liter at a time giving tank a couple of minutes or so to mix.

The first time that you do this it would be prudent to check pH after 3 liters, 6 liters and the whole bucket has been added just to be sure that the tank is acting as predicted.


(A) The fish, plants and gunk at the bottom of the aquarium aren't figured into how much acid to add. So the pH after a couple of hours (a day?) will be probably be less than the the pH change observed in the bucket in step 2.

(B) I'd guess that one the pH gets shifted to the desired point that less acid would maintain that level, and that the acid needed would be fairly constant.

(C) I'm not sure how often you remove 9 liters of water from tank. If you do it once a week, then you might want to spread adding acid over several days. So take 2 liters of water out of tank and add as much acid as used in step 1, then dump that water back into the tank. Do acid addition 5 times over a week, measuring pH each time before and after 10 minutes.

(D) record all data about measurements to develop a record of how your tank behaves. Don't rely on memory.

  • 1
    $\begingroup$ Good idea about testing the tank water throughout the addition of the fresh water with acid. Though I was actually looking for some chemistry equations to fix up my spreadsheet calculations, not fish keeping advice. Since a pH of 7.8 is still within the realms of ok, I am prepared to wait a week or more between acid additions even if the desired results take months, so adding acid between water changes is not required. ps. it is a 55L tank and 55-9=46L that the tank is drained down to during the water change, not 36L. $\endgroup$ Commented Dec 15, 2015 at 2:14
  • $\begingroup$ @BeowulfNode42 - I don't think that you can really use any equations to extrapolate from the current tank pH. I really think you need to titrate the "sample" from the tank (9 liters of water to be discarded) and extrapolate from that. Note (D) was really anticipating that you'd eventually get to the desired pH and that the HCl additions would become fairly constant. In any kind of science experiment a good scientist writes stuff down... // PS - I'll fix tank size. $\endgroup$
    – MaxW
    Commented Dec 15, 2015 at 2:23
  • $\begingroup$ Tank size fixed. // I'm a chemist and don't know anything about aquariums. The chemistry that I outlined is sound. The extra pH checks were thrown in since I'm a nervous Nellie and didn't want to give advice that kills your fish. I'd really think that trying to change pH 0.1 units at a time would be within the tolerance of the fish. How much acid the soil in the tank bottom will neutralize is the big mystery. $\endgroup$
    – MaxW
    Commented Dec 15, 2015 at 2:37
  • $\begingroup$ Re-reading your answer I see that it should provide a way of achieving the desired results, but there are a couple of issues. 1) It still doesn't teach me any of the formulas involved or how to apply them. Which is what my question is about. 2) It also still leaves me guessing, with no idea of a starting point, of how much HCl to add to the bucket of tank water and will leave me testing over and over again. This wouldn't be such an issue if I had a pH meter that provided a continuous readout. $\endgroup$ Commented Dec 15, 2015 at 13:33
  • $\begingroup$ @BeowulfNode42 (1) I'm not sure that any "formulas" apply. I'm not sure what gunk is in the water or at what concentration. (2) To cut down pH tests on bucket of water removed you could add 1 ml acid and test, then 2 ml and test, then 4 ml and test, and so on. If you change the pH in the bucket by 0.1 pH units, then 5 times as much acid should give about a 0.1 pH change in tank. If you change the pH in the bucket by 0.2 pH units, then 2.5 times as much acid should give about a 0.1 pH change in tank. (pH change isn't really linear, but for such a small change it should almost be...) $\endgroup$
    – MaxW
    Commented Dec 15, 2015 at 17:06

If you need to check the pH of your aquarium, you can use pH test paper. Its results can be seen immediately, which is convenient for you to carry out the next step. Sincerely recommend this pH test paper 0-14https://www.hawachlab.com/ph-test-strips/universal-ph-test-strips/


You are seriously over-thinking it. Get some liquid indicator ( methyl blue ?). Measure the pH. Likely no correction will be needed. Natural waters generally have buffering. When I was a boy in college I calculated how much nitric I needed for my 50 gal ; put in 10 times the amount and hardly changed p H ( Lake Michigan water). Only time pH can be a problem is with rain/distilled water . I did accidently kill fish with rain water . Otherwise fairly successful with aquariums for 70 years.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.