Aquariums · Calculator

Water change

How much water to swap to bring nitrate, TDS, or any dilutable parameter down to a target value.

Water change to hit a target Volume in L
Nitrate ppm, TDS, salinity, whatever you're diluting.
Tap, RO, well, whatever you'll refill with. Most tap is 0 for nitrate but worth checking.
Change fraction -- percent
Volume to remove -- L
Notes --
Works for anything that dilutes linearly (nitrate, TDS, salinity, most ions). Doesn't work for pH, because pH is buffered by KH and won't move proportionally to a water swap.

The math

Replacing fraction f of your water with source water gives:

C_after = C_before * (1 - f) + C_source * f

Rearranged for f:

f = (C_before - C_target) / (C_before - C_source)

That's the whole calculator. Plug in current, target, and source values to find the swap fraction.

When the math lies

The dilution math assumes the parameter you're targeting can't be created inside the tank. For nitrate that's almost true, it's the end product of the cycle and only goes up between changes. For TDS, also close. For pH, false: pH is buffered by KH, and a 50% water change won't necessarily move pH halfway to your source water's pH. Use this for things that dilute linearly. Don't use it for pH or buffered chemistry.

Don't change too much at once

Anything past 50% in one go risks shocking fish via osmotic shift, temperature swing, or pH movement. Split it instead, but don't just divide the percentage by the number of changes: each change works on water that's already partly diluted, so three 25% changes only remove 58% in total. To hit a fraction f in n changes, each one has to be 1 - (1 - f)^(1/n). For 70% in three goes that's 33% each. The calculator prints the two-change and three-change figures whenever the single-change number gets big. The fish don't care that it's slower, but they do care if everything moves at once.

Related tools

  • Stocking - Check if your stocking level needs more frequent changes.

Further reading