EcoSym

Chemical Filter Media

For a general introduction to water chemistry, see Chemistry. Chemical media — activated carbon, zeolite, GFO — are the part of filtration that does not involve a single living cell. A filter's sponge grows bacteria and its floss catches dirt; a bag of carbon simply sticks things to itself. That difference turns out to matter more than it sounds, because a thing that has been stuck to a surface has not left the tank.

The bag of black stuff that clears your water overnight

Almost everyone who keeps fish has done this. The water goes tea-coloured — driftwood leaching tannins, a handful of Indian almond leaves, a course of medication that stained everything yellow — and you drop a mesh bag of activated carbon into the filter. By morning the water is clear. It feels like magic, and the folklore that grows up around it is correspondingly confused: carbon "removes toxins", it "strips your fertiliser", it "goes bad after a month", it "dumps everything back in if you leave it too long".

Three of those four are broadly true, and all four fall out of a single idea.

Adsorption is not removal

When carbon clears your tannins, the tannins do not cease to exist. They are stuck to the carbon — held on its enormous internal pore surface by weak physical attraction — and the carbon is sitting in your filter, in your tank. Nothing has left the system. What has changed is where the tannins are.

This is the same lesson as the mulm trapped in a filter sponge: mechanical filtration relocates particles into the media, where they rot into ammonia exactly as they would have on the tank floor. An unrinsed sponge is a nitrate factory. In the same way, a loaded carbon bag is a reservoir of tannins, held against the water rather than removed from it.

The simulator models it that way, precisely. Every molecule that leaves the water arrives in a tracked "bound" pool attached to that medium. It can come back out. The only way adsorbed material actually leaves the tank is when you take the media out and throw it away — which is why the simulator asks you to schedule a media replacement, and books the departing mass to an export ledger exactly as it books a dead fish you netted out. The nitrogen and phosphorus books close either way.

Sticking is a two-way street

A sorbent does not have a fixed appetite. It has an equilibrium — a preferred balance between how much it is holding and how much is dissolved in the water around it. Push more into the water and it takes more up. Clean the water and it gives some back.

That balance follows a curve, the Langmuir isotherm, with two numbers behind it:

  • Capacity — how much the medium can hold when completely full. More grams, more capacity, in direct proportion. This is the number on the box.
  • Affinity — how tightly it holds. Formally, the dissolved concentration at which the medium sits exactly half full. A low number means a greedy medium that clings on even when the water is nearly clean; a high number means a medium that lets go easily.

Affinity is the number nobody talks about, and it is the one that decides how a medium behaves in your tank. It explains the whole difference between the three media below without a single extra assumption.

Three media, one equation

Medium What it grabs Affinity, compared to what's in the water So it…
Activated carbon tannins, humics, medications, "yellow water" weaker than a stained tank never fully strips the water, and gives its load back when the water clears
Zeolite (clinoptilolite) ammonia far weaker still takes a fixed share of the ammonia, roughly a third — never all of it
GFO (granular ferric oxide) phosphate ~20× stronger than a fed tank's phosphate strips phosphate hard, fills up, and must be thrown away

Carbon: it delays your tannins, it does not destroy them

Carbon's grip on humic molecules is weak — weaker than the tannins' own tendency to stay dissolved in a stained tank. So carbon works on the steep part of its curve, where its loading tracks the water closely. Drop a bag into tea-coloured water and it strips most of the stain within hours. But do a water change, and the water it is now equilibrating with is cleaner than before, so the carbon releases tannins back until the balance is restored.

In the simulator, an ample charge of carbon in a stained tank takes up about 250 mg of humic carbon in its first day and hands 95 % of it back over the following month, one water change at a time. Meanwhile the tank's heterotrophic bacteria — which would slowly have eaten those humics — never get the chance, because the carbon was holding them. The tank ends up with more dissolved humics than one that never had any carbon at all. The gap is real but small — a few hundredths of a milligram of carbon per litre, long after the visible stain has cleared in both tanks — so it is something the model measures, not something you would ever see.

That is not a bug and it is not a slur on carbon. It is what "adsorption" means. Carbon buys you a clear tank now, in exchange for holding the problem in a bag you must eventually remove.

Carbon does not "run out" the way you think

Here is a genuinely counter-intuitive consequence. Because the equilibrium loading depends on how dirty the water is, carbon in a clean tank can never fill up, no matter how long you leave it. In a lightly-stained tank, an ample charge tops out around a fifth full and stays there. The simulator shows this directly: a 30 g charge peaks at 21 % saturation; a 3 g charge in the same tank reaches 54 %, because the smaller charge has less capacity to spread the same load over.

Read that pair again, because it inverts the intuition. The smaller bag is the one that looks more used up, and the larger bag is the one that removed more. Saturation is per gram; removal is per tank.

So why does the hobby say carbon dies after a month? Because real carbon does not stop working through saturation — it stops because bacteria colonise its pores and blind them. The simulator does not model that, deliberately, and says so. What it models is the chemistry.

Zeolite: a shock absorber, not a sink

Zeolite exchanges ammonium ions out of the water for harmless sodium ions on its surface. It is the thing people reach for in an emergency, and the box implies it will make ammonia go away.

It buffers, and buffering is not the same as removing. Zeolite's affinity for ammonia is far weaker than any concentration a fish could survive, which means it works on the near-linear part of its curve: it takes a roughly constant fraction of whatever ammonia is present, and it never approaches its rated capacity. In the simulator, a normal 100 g pouch in a 60-litre tank holds about a third of the ammonia. Holding 90 % of it would take nearly two kilograms.

Two consequences follow, and both contradict the folklore.

Zeolite does not stall a cycle. Ammonia-oxidising bacteria are already saturated with ammonia during a cycling spike — they are working flat out, and taking a third of their food away does not slow them down at all. The simulator's fishless cycle finishes in 17 days with zeolite and 18 without. What zeolite would have to do to stall a cycle is drive ammonia below the level where the bacteria start to feel hungry, and it cannot: at those low concentrations the bacteria strip ammonia more than ten times faster than the zeolite can.

Zeolite gives everything back, and that is the good news. Once a biofilter matures, it pulls ammonia below what the zeolite can hold, and the zeolite quietly desorbs. Within three weeks of the simulator's cycle completing, the pouch is empty and fully recharged — for free, by the bacteria. From then on it acts as a shock absorber: every time you feed, it grabs a slug of ammonia within a few hours and releases it over the following day, clipping the peak of each spike by about 40 % while the biofilter catches up.

There is a sting, though, and nothing in the model was tuned to produce it. An open-topped tank loses a surprising amount of nitrogen as ammonia gas, straight off the water surface. Zeolite, by holding ammonia off the water, prevents that loss. So nitrogen that would have escaped to the room instead survives to be oxidised — and the tank's nitrite spike gets 12 % worse. A product sold to make a tank safer makes one part of the cycle harder.

GFO: the medium that really does exhaust

Phosphate binds to ferric oxide through a genuine chemical bond, not a weak physical attraction, and GFO's affinity for phosphate is around twenty times stronger than the phosphate concentration of a fed aquarium. That single fact changes everything.

Because it holds so tightly, GFO's loading barely responds to how much phosphate is in the water. It sits far up the flat plateau of its curve, stripping phosphate at an almost constant rate regardless of how clean things get, until it is nearly full. Then it stops, abruptly — the "breakthrough" every reef keeper knows — and phosphate climbs back.

And it does not leach. Not because of a special rule, but because its curve has no downhill stretch at aquarium phosphate levels: there is no condition, short of an unrealistically clean tank, under which the equilibrium tells it to let go. It fills up, and then you throw it away.

In the simulator, a 10 g charge is 86 % spent after two months on a modest feeding load, and dissolved phosphate has climbed back to half of what it would have been with no GFO at all. Replace the charge halfway through and phosphate stays five times lower than the reactor you forgot about. The spent charge takes 82 mg of phosphorus out of the tank with it — the only phosphorus that ever actually leaves.

Why one equation gives three behaviours

It is worth sitting with this, because it is the reason the model can be trusted on media it was not tuned for.

Carbon leaches, zeolite regenerates, GFO exhausts. Three completely different stories a hobbyist would tell about three completely different products. In the simulator they are all the same equation, running with different numbers. There is no if medium == "gfo" anywhere. The only thing that differs is where the tank's concentration sits relative to that medium's affinity:

  • Well above it (GFO in a fed tank) → the medium is on its plateau, insensitive, one-way. It exhausts.
  • Comparable to it (carbon in a stained tank) → the medium is on the steep part, tracking the water in both directions. It leaches.
  • Well below it (zeolite at any survivable ammonia) → the medium is on the linear part, taking a constant share and giving it straight back when the water clears. It buffers.

When a mechanism reproduces three folk observations it was never fitted to, that is the mechanism telling you it is probably right.

What the simulator deliberately does not model

Three real effects are left out, and knowing them is part of reading the results honestly.

  • Biofilm blinding of carbon pores — the real reason carbon stops working after a month. Here, carbon only stops when its chemistry says to.
  • Competing ions loading up zeolite. In real water, sodium, potassium and calcium occupy most of the exchange sites, which is a large part of why zeolite exhausts. The model's zeolite capacity is set at the bottom of the reported range to have already paid for this.
  • Carbon stripping iron and trace fertilisers. Real activated carbon does adsorb chelated iron and copper medications. In the model those live in their own pools, separate from the dissolved organic matter carbon grabs, so this channel does not exist yet.

How chemical media sit in the budget

Nothing adsorbed is destroyed. Carbon's bound pool carries carbon, nitrogen and phosphorus in whatever ratio the dissolved organic matter had; zeolite's carries nitrogen; GFO's carries phosphorus. Every mole that leaves the water arrives on the media in the same instant, and the reverse when it desorbs. A water change dilutes the water column but not what is inside the filter housing — which is exactly why the carbon leaches after every change.

The one door out of the system is a media replacement. That mass is booked to the same export ledger that records biofilm rinsed down the sink and a dead fish you netted out, so the simulator's nitrogen, carbon and phosphorus books close to machine precision whether or not you ever change the media.

None of the three media touches alkalinity, and each for a different reason — zeolite because it swaps ammonium for an equally-charged sodium ion, GFO because phosphate plays no part in carbonate alkalinity, carbon because the humic acids it grabs are modelled as electrically neutral. Since pH governs both nitrification rate and ammonia toxicity, getting that wrong would have quietly poisoned everything downstream.

Further reading

Key references

  • Newcombe, G., Drikas, M. & Hayes, R. (1997). Influence of characterised natural organic material on activated carbon adsorption. Water Research 31: 1065–1073.
  • Summers, R.S. & Roberts, P.V. (1988). Activated carbon adsorption of humic substances. Journal of Colloid and Interface Science 122: 367–381.
  • Wang, S. & Peng, Y. (2010). Natural zeolites as effective adsorbents in water and wastewater treatment. Chemical Engineering Journal 156: 11–24.
  • Hedström, A. (2001). Ion exchange of ammonium in zeolites: a literature review. Journal of Environmental Engineering 127: 673–681.
  • Genz, A., Kornmüller, A. & Jekel, M. (2004). Advanced phosphorus removal from membrane filtrates by adsorption on activated aluminium oxide and granulated ferric hydroxide. Water Research 38: 3523–3530.
  • Ruthven, D.M. (1984). Principles of Adsorption and Adsorption Processes. Wiley.