All posts

pH vs alkalinity in a reef tank: what is the difference, and which one is actually wrong?

Your pH probe reads 7.85 at seven in the morning. Someone on a forum says that is too low and links you to a pH buffer. Your alkalinity has been 8.6 dKH for three months. One number looks wrong, one looks fine, and the product being recommended changes the one that is fine.

It happens because pH and alkalinity get talked about as if they were one thing with two names. They are not. pH is a snapshot of how acidic the water is right now. Alkalinity is the reserve of carbonate and bicarbonate that resists pH change and that your corals consume to build skeleton. One is a reading, the other is a stock. You can have plenty of stock and still get a low reading, and when that happens the stock is not the thing to fix.

What is pH

pH measures hydrogen ion concentration, which is the chemist's way of saying acidity, on a logarithmic scale: 7.8 is not "a bit lower" than 8.8, it is ten times more acidic. Natural reef water sits around 8.1 to 8.3. In a tank, the daytime target most people run is 8.0 to 8.4, anything from 7.8 to 8.5 is acceptable, and below 7.8 calcification slows enough that it is worth solving.

It moves all day. Photosynthesis strips CO2 out of the water under the lights and respiration puts it back overnight, so pH climbs through the photoperiod and falls after lights out. A swing of 0.15 to 0.40 units between the pre dawn low and the evening high is normal, so a 7.85 at 7am is often an 8.15 at 8pm.

And nothing consumes it. pH is not a reserve, it is the result of what is dissolved in the water right now, and the biggest input is carbon dioxide, which dissolves to form carbonic acid. Outdoor air is about 420 ppm CO2. A house with the windows shut runs 800 to 1500 ppm without trying, and the tank equilibrates with the room, not the planet. That is where most low pH in reef tanks comes from, and no powder in the sump changes the air.

What alkalinity in a reef tank actually is

Alkalinity is the water's capacity to absorb acid without the pH moving. In seawater that capacity is almost entirely bicarbonate and carbonate. It is measured in dKH: 1 dKH is 17.9 ppm of calcium carbonate equivalent, and 2.8 dKH is 1 meq/L if your kit uses that scale.

Natural seawater is about 7 dKH. Tanks are usually run between 7 and 11, most mixed reefs settle around 8 to 9, and holding whatever you pick matters more than the exact value.

Reef tank alkalinity does two jobs at once.

It buffers. When acid enters the water, whether CO2 from the room or the acid nitrifying bacteria produce, bicarbonate absorbs it and pH moves less. A tank at 9 dKH takes the same CO2 hit with a smaller pH drop than one at 6.

And it gets eaten. Corals and coralline algae pull carbonate out of the water to build skeleton. A mixed reef consumes 0.3 to 1.0 dKH per day, a heavy SPS tank 1 to 3, and every 1 dKH consumed takes roughly 7 ppm of calcium with it. That is why alkalinity is the most tested number in the hobby, and why it drifts down between water changes while pH simply reports what is there.

The difference between pH and alkalinity, in one picture

A car has a fuel gauge and a speedometer. Alkalinity is the fuel: a quantity, used up as the engine runs, topped up on a schedule. pH is the speed: a reading of right now, and it depends on plenty besides how much fuel is in the tank.

A car doing 30 in a 50 zone with a full tank does not need petrol. A reef tank at pH 7.8 with 8.6 dKH does not need alkalinity. It needs the CO2 looked at.

The pH and alkalinity relationship in an aquarium

They are linked, but weakly, and the link runs through CO2.

At a fixed CO2 level, more alkalinity does mean a higher pH, but not much higher. Taking a tank from 7 to 11 dKH with the air unchanged lifts the equilibrium pH by roughly 0.2 units. Changing the CO2 does far more: the same 8 dKH water settles around 8.2 to 8.3 in outdoor air and can sit below 8.0 in a room at 1000 ppm. CO2 is the big lever. Alkalinity is the small one.

The other direction matters too, because what you raise alkalinity with decides what pH does:

  • Sodium bicarbonate (baking soda) raises alkalinity and nudges pH very slightly down. Reach for it when pH is already high.
  • Sodium carbonate (soda ash, or baking soda baked for an hour) raises alkalinity and pushes pH up a few tenths of a unit. The pH bump fades over hours as the tank pulls CO2 back in from the room. The alkalinity stays.
  • Kalkwasser (calcium hydroxide) raises alkalinity, calcium and pH together and is the strongest pH lifter of the three. It sits above pH 12 in the container and must be dripped in slowly and never dumped, because a slug of it can spike pH past 8.5 and snow calcium carbonate out of the water.

All three go into a high flow area of the sump, never into a still corner of the display, so they disperse before they touch anything alive. Any product sold as a pH buffer is one of these three or a blend, so know which you are holding before it goes in.

Which one is wrong: the decision table

Take both readings from the same hour, ideally an hour or two before lights out, and find your row. Normal pH here means 8.0 to 8.4 in the late afternoon; normal alkalinity means 7 to 11 dKH and within about 0.5 dKH of your own target.

pHAlkalinityWhat is usually going onAct onWhat to do
Low (7.7 to 7.9)NormalCO2 in the room air. By far the most common case.The airOutside air or a CO2 scrubber on the skimmer, a refugium lit overnight, or kalkwasser as your alkalinity source. No buffer.
LowLow (under 7)Consumption outran dosing, a pump stopped, or a new tank burned alkalinity nitrifying.AlkalinityRaise it no faster than 1 dKH per day, ideally half that, with soda ash or kalkwasser so pH lifts too. Then measure consumption.
NormalLowGas exchange is good, the reserve is thin.AlkalinitySame as above. Bicarbonate is fine here.
NormalHigh (over 11, or well over target)Overdosing, or corals stopped consuming.AlkalinityStop dosing, let consumption bring it down, find out why consumption dropped.
LowHighThe buffer trap: pH chased with alkalinity products while the room CO2 never changed.Alkalinity, then the airStop the buffer. Let alkalinity fall to target through consumption. Then treat the CO2.
High (8.5 plus)NormalProbe out of calibration, or a big kalk or soda ash dose still settling.Verify firstCalibrate the probe. If real, spread the kalk over more hours or swap part of it for bicarbonate.
HighHighKalk or soda ash overdose. Precipitation risk.Both, slowlyStop dosing. Do not reach for acid. Water change with a salt matched to your target.
HighLowHeavy CO2 removal (scrubber, big refugium) with the reserve consumed under it. Rare.AlkalinitySodium bicarbonate, which will not push pH higher.

Two rows account for most of the traffic on this question: low pH with normal alkalinity, and low pH with high alkalinity. The second is what happens when the first is treated wrongly.

Never fix pH with alkalinity buffer when alkalinity is already fine

Say pH is 7.85 in the morning, alkalinity is 8.6 dKH, and you add a pH buffer, which is almost always sodium carbonate or a carbonate and bicarbonate blend. On a 200 litre (53 gallon) system, 1 dKH of that is about 4 grams of soda ash. The pH might touch 8.2. Over the next few hours the room's CO2 dissolves back in, pH slides back to where the air says it should be, and you have 9.6 dKH instead of 8.6.

Tomorrow the probe says 7.9. You add more. A week of this and you are at 12 or 13 dKH, the pH has barely moved, calcium carbonate is crusting the heater and pump impeller because high alkalinity next to normal calcium is the recipe for precipitation, and your SPS have been through five full dKH swings in a day and are showing it.

The buffer never addressed the cause. The CO2 comes from the air, the air is unchanged, and the water always drifts back into balance with it. You cannot out-dose a closed window.

The priorities are also backwards from how they feel. A stable 7.9 is a mild handicap that plenty of well run tanks live with for years. An alkalinity that swings 2 dKH each way inside a week is a genuine threat, and a far more common cause of SPS tissue loss than low pH, so protect the alkalinity even while you work on the pH.

What actually moves pH is a different toolkit: outside air or a CO2 scrubber on the skimmer intake, a refugium on a reverse light schedule, or kalkwasser as your alkalinity source. How to raise pH in a reef tank goes through each in order of effort.

How to test each one so the reading means something

pH. Colour based kits resolve 0.2 units at best, which is the entire daily swing, so a probe is worth it here. Calibrate it monthly against 7.0 and 10.0 buffer solutions, keep the tip wet, and read it at the same hour every time. A pH reading with no time of day attached is close to worthless.

Alkalinity. A titration kit reading to 0.1 dKH, run at the same hour, 2 to 3 times a week without dosing and daily with it, and always before the dose fires. Different brands disagree by 0.3 to 0.5 dKH on the same water, so note it when you change kit. The reef tank testing schedule has the cadence for every parameter.

The aeration test. Take 250 mL (a cup) of tank water, read its pH, then bubble it for an hour with an airstone fed from outside a window. If the pH climbs, the room was the problem. If not, check alkalinity next.

Both numbers, same hour, logged side by side, is the whole diagnostic. A pH that sits low week after week over a flat alkalinity line is CO2. An alkalinity line sliding down with pH a little behind it is consumption: how to calculate daily alkalinity consumption turns that slope into a dose, or the alkalinity consumption calculator will do it from your readings. If alkalinity does need raising, how to raise alkalinity in a reef tank covers dosing it safely, and reef tank parameters has the full chart and the order to fix things in.

Log both and read them together

You cannot see the relationship from one test. You can see it from a month of pairs taken at the same hour, because that is what shows whether pH is low because alkalinity fell or low while alkalinity held, which is the entire decision this post is about.

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.

Set your pH band to 8.0 to 8.4 and your alkalinity band to half a dKH either side of your target. A red pH cell over a green alkalinity cell is the top row of the table.

Keeping pH and alkalinity straight means logging both at the same hour and reading them as a pair, rather than reacting to whichever one looked wrong this morning. Recif is the reef companion app we built to handle that: it logs every test, charts each parameter against your own target ranges so a low pH sitting over a flat alkalinity line is obvious at a glance, works out your alkalinity consumption trend, 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.