Reef calculators: how much calcium and alkalinity to dose
You tested this morning. Alkalinity is 7.6 dKH, you want 8.5, and there is a bag of baking soda in the cupboard or a bottle of two-part on the shelf. The forum says "just use a reef calculator", the calculator says 84 mL, and you have no idea whether that number is right or whether it will turn the tank into a snow globe.
Here is the short version: every reef calculator does one multiplication. Water volume, times how far you want the number to move, times how strong the product is. Do that sum once and you can check any calculator on the internet, and spot the wrong unit or hydrate before your corals do.
Below: the sum, the methods, and the two rules that matter more than any calculator.
What a reef dosing calculator actually does
Every reef dosing calculator, from the BRS one to a forum spreadsheet from 2009, is this:
dose = net water volume x desired rise x product per litre per unit of rise
Two of the three inputs are yours. Net water volume is not the number on the box: rock and sand displace roughly 10 to 20% of the display, so a "300 litre" tank holds something like 250 litres, and the sump adds some back, counted to the running water line. Most calculator errors that are not unit errors are volume errors, and they all push towards overdosing. Desired rise is where you are minus where you want to be, measured with the kit and at the hour you always use.
Product strength is the only part that is chemistry. For a dry chemical it comes from the molecular weight; for a liquid, from the label or from what you dissolved into it.
How much alkalinity to dose: the sodium bicarbonate arithmetic
Three standard numbers do the whole thing:
- 1 dKH is 17.86 ppm of calcium carbonate equivalent, which is 0.357 milliequivalents per litre.
- Sodium bicarbonate (baking soda, NaHCO3) weighs 84 g per mole and delivers one equivalent of alkalinity per mole.
- So raising 1 litre by 1 dKH takes 0.357 x 84 = 30 mg of sodium bicarbonate.
That is the whole strength figure: 30 mg per litre per dKH, or 3.0 g per 100 litres per dKH.
Worked example. The tank holds 300 litres net (about 80 US gallons). Alkalinity reads 7.6 dKH, you want 8.5, so the rise is 0.9 dKH.
300 x 0.9 x 0.030 g = 8.1 g of sodium bicarbonate.
Weigh it; heaped teaspoons are how people end up 2 dKH over.
Sodium carbonate (soda ash, or baking soda baked at 300 F (150 C) for an hour) carries two equivalents per mole at 106 g per mole, so 0.357 x 53 = 19 mg per litre per dKH, and the same correction is 5.1 g. Soda ash also pushes pH up for a few hours where bicarbonate barely moves it; how to raise pH in a reef tank covers when that is useful and when it is a nuisance.
Now you can sanity-check any alkalinity calculator. Type in 300 litres and a 0.9 dKH rise. If it says 8 g of baking soda, it is right. If it says 30 g, it has your volume in gallons. Liquids work the same way: dissolve 60 g of bicarbonate into 1 litre of RO water and each mL carries 60 mg, so the correction is 135 mL, and a two part dosing calculator that says anything wildly different for that recipe has the wrong strength stored.
The calcium calculator reef keepers get wrong
Calcium chloride is where calculators disagree, and it is almost always the hydrate.
Calcium is 40 g per mole, so raising 1 litre by 1 ppm needs 1/40 of a millimole of calcium chloride. The question is how much a millimole of your particular powder weighs:
- Anhydrous calcium chloride (CaCl2): 111 g per mole, so 2.8 mg per litre per ppm.
- Calcium chloride dihydrate (CaCl2.2H2O): 147 g per mole, so 3.7 mg per litre per ppm.
Same 300 litre tank, calcium at 400 ppm, you want 430, rise 30 ppm:
- Dihydrate: 300 x 30 x 0.0037 g = 33 g
- Anhydrous: 300 x 30 x 0.0028 g = 25 g
A third apart. Check the label; if it does not say, assume anhydrous and test the next day, because underdosing costs you a second dose and overdosing by a third costs you precipitation.
The other number worth memorising is the ratio: consuming 1 dKH of alkalinity consumes about 7 ppm of calcium (20 ppm per 2.8 dKH). A tank burning 0.6 dKH a day burns about 4 ppm of calcium against a reservoir of 420 ppm that your kit reads in 10 or 20 ppm steps, which is why calcium looks like it never moves. If it drifts high while alkalinity keeps falling, that is not a calcium problem, and how to lower calcium in a reef tank explains why it is usually alk and magnesium.
The strengths in one table
Per 100 litres (26 US gallons) of net water volume:
| To raise by | Product | Amount |
|---|---|---|
| 1 dKH | Sodium bicarbonate | 3.0 g |
| 1 dKH | Sodium carbonate | 1.9 g |
| 1 dKH | Saturated kalkwasser | 0.9 L (plus about 7 ppm calcium) |
| 1 dKH | All-For-Reef | About 18 mL (plus about 7 ppm calcium) |
| 10 ppm calcium | Calcium chloride dihydrate | 3.7 g |
| 10 ppm calcium | Calcium chloride anhydrous | 2.8 g |
For 100 US gallons (378 litres), multiply by 3.8.
Two-part, All-For-Reef, kalkwasser, calcium reactor: what each one adds
The chemistry and the targets are the same whichever method you use (reef tank parameters has the chart). What differs is what else comes along, and how much of your week the method eats.
Two-part is sodium bicarbonate or carbonate in one bottle and calcium chloride in the other. Cheapest per dKH, and the only method that moves calcium and alkalinity independently. The cost is two pumps, two containers, and the sodium and chloride left behind: every dose is, net, a little table salt, so salinity creeps up over months. Water changes correct it; if it has reached 37 ppt (1.028 SG), walk it back at no more than about 0.001 SG a day. Never dose both parts into the same spot at the same time - the local spike precipitates as calcium carbonate snow. Ten minutes apart, opposite ends of the sump, into flow.
All-in-one, meaning All-For-Reef. Tropic Marin's product is calcium formate. The formate is oxidised to bicarbonate in the tank, so one bottle delivers calcium and alkalinity in the balanced 7 ppm per dKH ratio, plus magnesium and trace elements. The all for reef dosing on the label starts at 5 mL per 100 litres a day, rises by 2.5 mL per 100 litres a week as your alkalinity tests dictate, and stops at a hard maximum of 25 mL per 100 litres a day. That is about 0.3 dKH and 2 ppm of calcium to start, and a ceiling of about 1.4 dKH a day, so a mature SPS tank consuming 2 dKH a day cannot run on it, and the label says so. Formate is also an organic carbon source, a very mild carbon dose that can nudge nitrate down, so start at the bottom of the range rather than at a calculated full dose. And because the alkalinity only appears once the formate is metabolised, testing an hour after dosing shows you nothing.
Kalkwasser (limewater). Calcium hydroxide dissolved in RO water to saturation, about 1.5 g per litre. Saturated limewater carries roughly 800 ppm of calcium and 41 meq/L of alkalinity, so 1 litre added to 100 litres of tank water raises alkalinity by about 1.1 dKH and calcium by about 8 ppm, balanced again, and it lifts pH because it adds hydroxide rather than bicarbonate. It costs almost nothing. The catch is that the solution sits at pH 12.4, so it is never dumped in and never poured - it is dripped slowly into a high flow area, usually as the top-off water, and a dosing pump that sticks on can spike pH past 8.6 and precipitate half your alkalinity as snow inside an hour. Because it rides on evaporation it is capped: a tank evaporating 1% of its volume a day, say 3 litres on 300, gets at most about 1.1 dKH a day from it.
Calcium reactor. Aragonite media in a chamber with CO2 bubbled through it. The acidified water dissolves the media and the effluent, typically 25 to 40 dKH at a pH around 6.5 to 6.8, drips back into the sump. Balanced ratio, a little magnesium and strontium from the media, and it scales to any demand, which is why heavy SPS systems end up here. The cost is up front and in a fortnight of tuning, and the running cost is pH: the CO2 drags the tank down, so reactor tanks often run kalkwasser in the top-off anyway to hold 8.1.
Roughly: under 1 dKH a day, kalk or All-For-Reef; 1 to 2, two-part on pumps; above 2, a reactor, probably with kalk alongside it.
Rule one: dose to consumption, not to a target
A reef calculator answers "how much to add to move from A to B". It does not answer "how much to add every day", and those are different numbers.
The daily dose is your consumption. If the tank burns 0.6 dKH between one 8am test and the next, the dose is 0.6 dKH a day, adjusted upward as the corals grow. On the 300 litre tank that is 300 x 0.6 x 0.030 = 5.4 g of bicarbonate a day, or 90 mL of the 60 g per litre solution, plus about 4 ppm of calcium, which is 4 to 5 g of dihydrate. Split it across three or four pump doses so the tank never sees a step.
Measuring consumption takes a few days of same-time tests with the dosing held constant. How to calculate daily alkalinity consumption is the walkthrough, and once you have the number the alkalinity consumption calculator turns it into millilitres of whatever you dose.
Otherwise you add the calculated 8.1 g, alkalinity reads 7.9 tomorrow because the tank consumed 0.6 dKH overnight, and by Thursday you are chasing a moving number. Set the maintenance dose first; once alkalinity holds flat day to day, one calculated correction moves it to the target and it stays there.
Rule two: never more than about 1 dKH a day
Corals react to how fast alkalinity moves, not to where it sits. A tank held at 7 dKH is fine, and so is one held at 10; a tank pushed from 7 to 10 overnight loses tissue, SPS first. The mainstream limit is about 1 dKH of increase a day, and 0.5 is kinder if the tank is already stressed, so a 3 dKH correction is a three or four day job, and a calculator that hands you a single dose for it without a warning is a calculator, not advice. How to raise alkalinity in a reef tank covers large gaps.
Calcium is far more forgiving, but anything over about 50 ppm is still better spread across a few days.
Two smaller rules ride along. Test before every correction, because a three day old reading is a number that no longer exists. And never dose into the display without flow: a local spike precipitates on the spot, and dry powder dumped through the surface can settle on a coral and burn it.
Log the dose next to the test
Every method above turns into the same question after a month: is consumption going up? A calculator gives you today's number; a log gives you the trend. The tracker below has a Maintenance sheet for exactly this: log the dose next to the reading it followed, and when alkalinity starts sliding 0.1 dKH a week you can see that consumption rose rather than blaming the reagent.
Get the spreadsheet
Make a copy in Google Sheets (needs a Google account)
Download the Excel version (no account needed)Free, no email, no attribution. Readings turn green inside your target band and red outside it, and the charts draw your target band as dashed lines.
Dosing to consumption means re-deriving one number every few weeks from a stack of same-time tests, which is bookkeeping most people quietly give up on. Recif is the reef companion app we built to carry that: it logs every test, charts each parameter against your own target ranges, works out consumption trends so you see demand climbing early, reminds you when a parameter has gone too long untested, and rolls the whole tank into one Stability Score. It is available on both the App Store and Google Play.