This tool predicts bulk-water free available chlorine (FAC) decay and the associated formation of trihalomethanes (THMs) and haloacetic acids (HAAs) over time in a fixed water sample held under defined conditions (temperature, pH, initial dose, water character). It is intended to support disinfection design, operator decision support, and DBP risk screening.
The model uses a three-layer approach. Inorganic chlorine demand from ammonia, ferrous iron and reduced manganese is removed instantaneously to the breakpoint stoichiometry. The remaining chlorine reacts with natural organic matter (NOM) through two pools — a fast-reacting pool and a slow-reacting pool — each with a finite demand capacity set by the water's character. The dose fills the fast pool first, then the slow pool; any genuine excess persists with a slow background decay. Because the pools have finite capacity, reducing the dose correctly reduces (or removes) the surviving residual, rather than simply scaling it down. DBP formation is then bounded by the smaller of two limits: the ultimate formation potential of the water and what the chlorine actually consumed can support.
CR0 = min(C₀, Dfast), CS0 = min(C₀−CR0, Dslow), CBg0 = C₀−CR0−CS0
C(t) = CR0·exp(−kR·t) + CS0·exp(−kS·t) + CBg0·exp(−kBg·t)
TTHM(t) = min( FPTHM·(1−exp(−t/τT)), yTHM·Clorg(t) )
HAA(t) = min( FPHAA·(1−exp(−t/τH)), yHAA·Clorg(t) )
where C₀ is the dose available to organics; Dfast scales with filtered UV254 and Dslow with DOC; kR, kS are linear functions of UV254; FP is the ultimate formation potential (set by DOC and SUVA, then modified by temperature, pH and bromide); and Clorg(t) is the cumulative chlorine consumed by organics. Filtered UV254 and DOC are the only water-quality inputs required.
Powell J.C., Hallam N.B., West J.R., Forster C.F., Simms J. (2000). Factors which control bulk chlorine decay rates. Water Research, 34(1), 117–126. Parallel first-order decay framework.
Clark R.M. (1998). Chlorine demand and TTHM formation kinetics: a second-order model. Journal of Environmental Engineering, 124(1), 16–24. Cl₂-consumption based DBP yield concept.
Sohn J., Amy G., Cho J., Lee Y., Yoon Y. (2004). Disinfectant decay and disinfection by-products formation model development. Water Research, 38(10), 2461–2478. UV254 / SUVA correlations for DBP precursors.
USEPA (1999). Disinfection profiling and benchmarking guidance manual (EPA 815-R-99-013). CT calculations and DBP regulatory context.
Westerhoff P., Chao P., Mash H. (2004). Reactivity of natural organic matter with aqueous chlorine and bromine. Water Research, 38(6), 1502–1513. Bromide incorporation and speciation shifts.
Brown D., Bridgeman J., West J.R. (2011). Predicting chlorine decay and THM formation in water supply systems. Reviews in Environmental Science and Bio/Technology, 10, 79–99. Review of bulk vs wall decay coupling.
Vasconcelos J.J., Rossman L.A., Grayman W.M., Boulos P.F., Clark R.M. (1997). Kinetics of chlorine decay. Journal AWWA, 89(7), 54–65. First-order bulk decay with wall demand component.
Hua G., Reckhow D.A. (2008). DBP formation during chlorination and chloramination: effect of reaction time, pH, dosage, and temperature. Journal AWWA, 100(8), 82–95.
Taumata Arowai (2022). Drinking Water Quality Standards (NZ) — maximum acceptable values (MAVs) used as the default compliance benchmarks in this tool.
Defaults are the NZ DWQAR / DWSNZ MAVs in µg/L. Override only if using another jurisdiction's standards.
| Chloroform MAV | |
| BDCM MAV | |
| DBCM MAV | |
| Bromoform MAV | |
| MCAA MAV | |
| DCAA MAV | |
| TCAA MAV |
This is where you describe the water sample, the dose, and the holding conditions you want to model. Everything updates automatically as you type — no button press needed.
Workflow:
One thing to remember: this is a bulk-water simulation. It does not include chlorine consumed at the pipe wall. If you want to estimate the wall contribution for your network, the Wall Effect tab will back-calculate it from a field FAC reading.
DOC drives the decay-rate constants. If DOC is not measured, the model back-estimates it from filtered UV254 using the preset SUVA.
Inorganic demand is subtracted instantly from the dose at breakpoint stoichiometry: 7.6 mg Cl₂/mg NH₃-N · 0.64 mg Cl₂/mg Fe · 1.29 mg Cl₂/mg Mn. Bromide does not consume chlorine but shifts THM speciation toward brominated species.
This is what your inputs predict over time. The KPI tiles at the top give you the headline numbers; the chart and table give you the full time-resolved view.
The numbers shown are bulk-water values — they describe how chlorine and DBPs evolve in a closed sample of water. In a real network, the FAC at a tap will be lower than the bulk prediction here because of pipe-wall demand. The MAV compliance flags assume the predicted bulk DBP levels are reached at the sampling point, which is conservative (real DBP at a tap is usually slightly higher than bulk, due to additional contact time).
Time-to-threshold is the hour at which bulk FAC drops to the network minimum set in Settings. Use the Wall Effect tab to estimate how much sooner this happens in your distribution system.
This tab breaks the total THM and HAA values down into the individual species at a chosen time point and compares them to the MAVs.
For THMs, bromide drives the shift from chloroform toward the brominated species (BDCM, DBCM, bromoform). Even small bromide concentrations (>0.05 mg/L) can produce significant BDCM, which has the most stringent MAV (60 µg/L). For HAAs, the di- and tri-chlorinated species dominate in low-bromide waters; brominated HAAs become significant at higher bromide.
Pick a contact time below — the bars and table refresh automatically.
Sum-of-ratios is the sum of each species concentration divided by its MAV. A value below 1.0 means combined compliance is satisfied; above 1.0 indicates the combined group exceeds the regulatory threshold.
The core model predicts bulk decay only. In a real distribution system, chlorine is also consumed at the pipe wall — by biofilm, corrosion products, tuberculation, and reactions with pipe materials. Total in-pipe decay is usually well-described by combining the bulk reaction with a first-order wall reaction:
Cpipe(t) = Cbulk(t) · exp(−kwall · t)
The wall coefficient kwall depends on pipe material, age, condition, and flow velocity. The reference table below gives literature ranges. You can either:
The "in-pipe" curve below shows what the bulk model would predict if the wall effect were applied to your scenario.
Enter what you observe at a sampling point in your network. The tool compares to the bulk model and infers kwall.
Apply a literature or measured kwall to your scenario.
| Pipe material / condition | Typical kwall range (h⁻¹) | Notes |
|---|---|---|
| PVC, HDPE (smooth plastics, clean) | 0.0005 – 0.002 | Inert, minimal demand |
| PE-lined ductile iron (new / good condition) | 0.002 – 0.010 | Lining intact |
| Cement-lined cast iron (intact lining) | 0.005 – 0.015 | Mortar lining provides protection |
| Bitumen-lined ductile iron | 0.005 – 0.025 | Lining degrades with age |
| Unlined cast iron (mature biofilm) | 0.020 – 0.080 | Significant demand |
| Tuberculated cast iron / poor condition | 0.05 – 0.20 | Highly variable; site-specific |
| Galvanised steel (service lines) | 0.01 – 0.05 | Corrosion products consume Cl₂ |
Sources: Vasconcelos et al. (1997), Hallam et al. (2002), and field observations summarised in Brown et al. (2011). Values are order-of-magnitude indicators — measure or back-calculate for your network where possible.
The defaults that ship with the tool will be roughly right for most NZ surface waters, but every catchment is different. This tab lets you:
The expandable sections below walk through the test protocols and the math, so it's a fairly self-contained workflow. Once you've fitted your data, hit "Apply to current preset" and the rest of the tool will use your calibrated coefficients.
A chlorine decay test characterises how chlorine reacts with the constituents in your water. It can be done in any well-equipped operations lab.
What you need:
Protocol:
Tips:
A DBPFP test tells you how much THM and HAA your water will form per unit of chlorine consumed. It is the basis for the kTHM and kHAA coefficients in the model.
Standard conditions (ICR / Standard Methods 5710):
Outputs:
Calculating yields:
For most NZ humic / fulvic waters these come out around 22–30 µg THM and 25–40 µg HAA per mg Cl₂ consumed. If you fit values well outside that range, double-check the test conditions.
Paste time-FAC pairs from your decay test (one pair per line, comma or tab separated). Include the dose at t=0 if you have it. The fitter uses the capacity-limited model to find the fast and slow demand capacities and their rate constants.
Format: time_in_hours, FAC_mg_per_L per line. Header row is optional and will be skipped.
Free chlorine decays by reacting with a fast pool and a slow pool of organic sites, each with a finite demand capacity. The dose fills the fast pool first, then the slow pool; any genuine excess persists. Capacities scale with water character (fast pool with filtered UV254, slow pool with DOC), so reducing the dose correctly reduces — or eliminates — the surviving residual. Rate constants are linear functions of filtered UV254.
| Fast pool demand capacity (mg Cl₂/L per unit fUV254) | |
| Slow pool demand capacity (mg Cl₂/L per mg/L DOC) | |
| kR — fast rate intercept (h⁻¹) | |
| kR — slope vs fUV254 | |
| kS — slow rate intercept (h⁻¹) | |
| kS — slope vs fUV254 | |
| Background persistence kBg (h⁻¹, excess chlorine) | |
| Assumed SUVA (fUV254/DOC) for missing-input fallback | |
| Activation energy Ea for decay (kJ/mol) | |
| pH sensitivity for decay (× per pH unit, around 7.5) | |
| Character multiplier on demand capacities |
DBP formation is bounded by two limits and takes the smaller at each time: the ultimate formation potential (set by DOC and NOM character, scaled by reaction-time progress) and what the chlorine actually consumed can support. At normal doses the ultimate-FP limit binds; when the dose is low the chlorine limit binds, so formation is correctly suppressed without leaving a false residual. Per-DOC yields rise with SUVA and are floored to stay physical for low-aromaticity waters.
| TTHM yield — intercept (µg per mg DOC) | |
| TTHM yield — slope vs SUVA | |
| TTHM yield — floor (µg per mg DOC) | |
| HAA yield — intercept (µg per mg DOC) | |
| HAA yield — slope vs SUVA | |
| HAA yield — floor (µg per mg DOC) | |
| TTHM yield per mg Cl₂ consumed (chlorine-limited path) | |
| HAA yield per mg Cl₂ consumed (chlorine-limited path) | |
| TTHM time-progress constant τ (h) | |
| HAA time-progress constant τ (h) | |
| Site-specific yield multiplier (default 1.0) | |
| Activation energy Ea for formation (kJ/mol) | |
| pH sensitivity for THM formation (× per pH unit, around 7.5) | |
| pH sensitivity for HAA formation (× per pH unit, around 7.5) | |
| Bromide enhancement of total THM (per mg/L Br⁻) | |
| Bromide incorporation factor (η, dimensionless) |
The decay and DBP relationships are calibrated on moderate-to-aromatic waters (SUVA roughly 1.9 – 3.7). In waters with very low SUVA — high DOC but low aromaticity — filtered UV254 over-states reactivity, so the model would otherwise decay too fast and over-predict HAA. This correction bends the rate constants and yields down. It is identically inactive (severity = 0) at or above the SUVA threshold, so it never changes moderate or aromatic predictions; it only engages for low-SUVA inputs. Severity = max(0, (threshold − SUVA) / threshold).
| SUVA threshold (correction inactive at or above this) | |
| Fast-pool capacity reduction per unit severity | |
| Fast-rate increase per unit severity | |
| Slow-rate increase per unit severity | |
| TTHM yield reduction per unit severity | |
| HAA per-DOC yield slope below threshold |
| Chloroform fraction | |
| BDCM fraction | |
| DBCM fraction | |
| Bromoform fraction |
| MCAA fraction | |
| DCAA fraction | |
| TCAA fraction | |
| MBAA fraction | |
| DBAA fraction | |
| BCAA fraction | |
| BDCAA fraction |
This is the only place where data leaves the tool. Three options:
The PDF and CSV always reflect the current model state; if you change an input after generating one, just regenerate.
Choose which tabs to include. The browser print dialogue will open — pick "Save as PDF" as the destination.
Tip: in the print dialogue, set "Margins" to default and "Headers and footers" off for a clean output.
Includes time-resolved FAC, TTHM, HAA values plus the species breakdown at each timestep.
File name: cld_results_YYYYMMDD.csv
Saves all inputs, coefficients, settings, and the time-series results to a single file.
File name: cld_scenario_YYYYMMDD_HHmm.json
Restore a previously saved scenario.
All current values will be replaced.