UTILS.
100% in-browser
💧

Water Change Calculator

Find the water-change volume, number of changes, or resulting value needed to move nitrate, TDS or salinity toward a target concentration.

Pick a mode, then enter tank volume, current and target values, and your source-water value.

About this tool

The Water Change Calculator is a free, in-browser tool that works out how a water change moves any measurable parameter — nitrate, TDS, salinity, phosphate — toward a target. Replacing a fraction f of the tank with source water at concentration C_source leaves a final concentration C_final = C_source + (C_current − C_source) × (1 − f). The tool inverts and iterates that dilution equation across three modes and runs entirely in your browser, so nothing you enter is uploaded.

In 'find volume' mode it solves for the single change that hits your target: f = (C_current − C_target) ÷ (C_current − C_source), and change volume = f × tank volume. In 'count' mode it finds how many equal changes of a fixed percentage are needed: n = ln((C_target − C_source) ÷ (C_current − C_source)) ÷ ln(1 − f), rounded up, and reports the concentration actually reached. In 'resulting value' mode it simply applies a percentage change and shows the new concentration. If the target is below the source-water value it is unreachable by dilution, and the tool says so rather than returning a bogus number.

As a worked example, a 200 L tank with nitrate at 40 ppm and RO source water at 0 ppm, targeting 10 ppm: f = (40 − 10) ÷ (40 − 0) = 0.75, so a 75% change (150 L) is required in one go. Because a single 75% change stresses livestock, the count mode shows that four 25% changes drop 40 ppm to about 12.7 ppm and five reach about 9.5 ppm — the safer path. Source water is rarely truly zero, so enter your tap or RO reading for an accurate result.

Frequently asked questions

What fraction do I change to hit a target?
f = (current − target) ÷ (current − source). Multiply by tank volume for the change amount. For nitrate 40 → 10 ppm with 0-ppm RO water, f = 30 ÷ 40 = 0.75, i.e. a 75% water change in one step.
How many small changes reach the target?
For repeated equal changes of fraction f, n = ln((target − source) ÷ (current − source)) ÷ ln(1 − f), rounded up. The tool reports n and the concentration actually reached after those changes.
Why does source-water concentration matter?
You can never dilute below the source value. If your tap water is 20 ppm nitrate, no number of changes gets the tank under 20 ppm. Enter your real source reading; the tool flags targets that are unreachable by dilution.
What is the resulting-value mode for?
It answers the reverse question: given a fixed percent change you plan to do, what concentration will you end up with? It applies C_final = source + (current − source) × (1 − f) so you can preview a routine change before committing.

More tools