RO permeate often isn't zero alkalinity. At several facilities we've looked at recently, the RO water was carrying 20 to 60 ppm alkalinity (as CaCO3), and nobody had connected it to the pH drift or the scale. At those levels the water does much of what your pH Up would do, and the feed ends up running higher than the tank reading suggests.
Our earlier pH in Practice article treats RO as water with no buffering, which holds when the membrane is in good shape and nothing is blended back in. This piece covers what happens when RO water carries alkalinity anyway, from an aging membrane, high-alkalinity source water or a blending valve, and how to catch it.
The membrane lets some through
An RO membrane rejects most dissolved salts. It doesn't reject all of them, and how much gets through changes with conditions. DuPont's technical manual for its FilmTec membranes says bicarbonate "is rejected well." Well is not completely. It also lists what makes rejection worse:
-
Warmer feed water raises salt passage.
-
Higher recovery (more permeate per gallon of feed) lowers rejection.
-
Lower feed pressure raises permeate TDS.
-
Fouling and scaling on the membrane can lower rejection. One of DuPont's cleaning triggers is a 5 to 10% rise in normalized salt passage.
-
Chlorine or other oxidizers that get past the carbon filter damage the membrane. The sign is higher salt passage with higher permeate flow.
None of these changes much in a day. Over months they add up, and on high-alkalinity source water, a small fraction getting through is enough: 5% passage from water carrying 400 ppm alkalinity leaves 20 ppm in the permeate. Some RO installations also blend source water, sometimes prefiltered, back into the product water. Check for a blending valve and its setting before blaming the membrane.
Why a low pH reading hides it
RO water usually reads acidic on a pH meter, so it looks like the last thing that would push pH up.
The reason is carbon dioxide. DuPont's manual says CO2 "is not rejected by the membrane." It passes straight through and forms carbonic acid in the permeate, which pulls the pH reading down. Meanwhile, the bicarbonate that slipped through is still there.
pH and alkalinity measure different things. pH is how acidic the water is right now. Alkalinity is how much acid the water can absorb before its pH drops. As the University of Massachusetts extension fact sheet on irrigation water puts it, "A pH test by itself is not an indication of alkalinity."
Where the drift comes from
Flower feeds are acidic. The phosphate that makes them acidic also supplies a limited amount of acid, and every ppm of alkalinity in the water spends some of it. Whatever alkalinity the feed can't absorb shows up as a higher running pH.
Every 19 ppm of alkalinity (as CaCO3) supplies about the same base as 0.1 g/gal of potassium carbonate pH Up. Most RO facilities use roughly 0.1 to 0.2 g/gal. So RO water carrying 20 to 40 ppm is supplying about that whole dose on its own. A grower who is still dosing pH Up as if the water were pure is adding it twice.
Two things make this hard to see:
-
The drift is slow. What you notice first is that you need a little less pH Up than you used to, with no change to the recipe.
-
The tank and the dripper disagree. When bicarbonate absorbs acid, it turns into dissolved CO2. That CO2 escapes wherever the solution meets air: an open or stirred tank, recirculation returns, and the emitter itself. As it leaves, the pH rises. DuPont's manual notes the same effect for RO water: removing CO2 raises pH. So a tank measured right after mixing can read fine while the far dripper reads higher.
Why the lines scale
Alkalinity itself doesn't form scale in a finished feed. At normal feed pH, calcium carbonate is far below saturation and doesn't form; we covered that in 7 Factors That Cause Precipitation in Hydroponics. The problem is where alkalinity moves the pH.
High-phosphorus flower feeds carry a lot of calcium and phosphate together. Each feed has a pH above which calcium phosphate can form, and for full-strength flower feeds that line sits inside the normal operating range. That's why our dripper ranges differ by recipe:
|
Program |
pH range at the dripper |
|---|---|
|
Standard-strength feeds |
5.5 to 6.0 |
|
High-strength flower (Stretch, Stack, Swell) |
5.5 to 5.8 |
Warm lines (above about 77 °F / 25 °C) want the low end of either range.
pH has the largest effect on calcium phosphate saturation. In our modeling of a 3.0 EC flower feed, moving from 5.8 to 6.0 raises the scaling tendency more than twice as much as warming the lines from 72 °F to 86 °F (22 to 30 °C). So a feed that looks like 5.8 in the tank and runs at 6.0 in the lines can go from clean to scaling without any other change. Filters and emitters show it first, because that's where solution sits longest and surfaces are available for crystals to grow on.
Alkalinity also causes trouble at the injection point. Before the acidic fertilizer parts fully mix in, the water's own pH still dominates, and that first-contact zone can form deposits that carry downstream even when the finished feed measures on target. That's why acid, when it's needed, goes in ahead of the fertilizer injectors, not after.
The last two filter-scale cases we looked at cleared up after the pH was corrected.
What to do
1. Test the RO water's total alkalinity, reported as ppm CaCO3. Sample the water you actually feed with, after the storage tank and any blending, before fertilizer or pH adjusters go in. The RO unit's TDS readout is not an alkalinity result; treat a rising TDS number as a reason to test. For routine screening, use a low-range alkalinity titration kit that reads in steps of about 5 ppm. Aquarium KH kits vary. One degree of KH is about 18 ppm as CaCO3, so a kit that reads one degree per drop is too coarse to call a result near 20 ppm. Color-endpoint kits are least accurate at very low alkalinity, so confirm borderline or surprising results with a lab that handles low-alkalinity water. Retest on a schedule, and any time you need less pH Up for the same recipe, strength and target pH.
2. Above about 20 ppm, review your water treatment. That's a trigger to look, not an automatic acid dose, and water below it can still need adjustment. Depending on the recipe and strength, the answer moves from less pH Up, to no pH Up, to acid ahead of the fertilizer. Membrane cleaning or replacement is the other option, since it fixes the source. Enter the measured alkalinity in our pH Up calculator (3-Part recipes). It subtracts what the water supplies and warns you if your target sits at or over the recipe's calcium phosphate line. Don't apply any extra reduction on top of it.
3. Confirm at the dripper. Measure stabilized pH at a far dripper with a meter calibrated that day, and compare it with the tank. If the dripper reads higher, manage the dripper number against the ranges above, not the tank number.
If your pH Up use has been creeping down for months, the water is probably carrying more alkalinity. Test the water before you change anything else.
Sources
-
DuPont Water Solutions. FilmTec Reverse Osmosis Membranes Technical Manual, Form No. 45-D01504-en, Rev. 20 (2026). Carbon dioxide passage and bicarbonate rejection, p. 86; effects of temperature, pressure and recovery on salt passage, p. 16; CO2 removal raises pH, p. 33; chlorine and oxidation damage, pp. 66 and 165; cleaning triggers, p. 135.
-
Cox, D. Water Quality: pH and Alkalinity. University of Massachusetts Amherst, Center for Agriculture, Food, and the Environment.
-
Penn State Extension. Interpreting Irrigation Water Tests.
-
Front Row Ag. pH in Practice and 7 Factors That Cause Precipitation in Hydroponics.



