Validation Results: the Engine vs 15 Calibrated QUAL2Kw Models
Each model below is a real, calibrated QUAL2Kw workbook. The engine was run on the workbook's own inputs and its results were compared, reach by reach, with the output sheets that QUAL2Kw itself wrote into the same workbook (WQ Output, WQ Min, WQ Max, Temperature Output). These are the results of our September 2026 validation run. The method and the tolerance bands are on the Validation Methodology page.
The 15 Models
All 15 are Colombian rivers and urban drainage channels, from consulting and river-basin studies, shown here without names.
Share of reaches within tolerance, per model
| Model | Region | Workbook layout | Reaches | Features exercised | Water quality (daily mean) | Daily min / max (DO, pH) | Temperature |
|---|---|---|---|---|---|---|---|
| M1 | Colombia | HTS/STS | 3 | Sediment diagenesis (Option 2); Manning n and rating curves on the same reaches | 100% | 100% | 100% |
| M2 | Colombia | Classic 5.1 | 16 | - | 100% | 100% | 100% |
| M3 | Colombia | Classic 5.1 | 18 | - | 100% | 100% | 100% |
| M4 | Colombia | Classic 5.1 | 19 | - | 100% | 100% | 100% |
| M5 | Colombia | HTS/STS | 20 | Newer layout (blank sky-view factor read as 1) | 100% | 100% | 100% |
| M6 | Colombia | Classic 5.1 (.xlsm) | 24 | .xlsm workbook | 100% | 100% | 100% |
| M7 | Colombia | HTS/STS | 26 | - | 100% | 100% | 100% |
| M8 | Colombia | Classic 5.1 | 44 | Sediment diagenesis (Option 1) | 100% | 100% | 100% |
| M9 | Colombia | Dendritic (xQUAL2Kw) | 72 | Branch of a multi-branch workbook; sediment diagenesis (Option 1) | 100% | 100% | 100% |
| M10 | Colombia | Classic 5.1 | 95 | Sharp change from the headwater to reach 1 | 100% | 100% | 100% |
| M11 | Colombia | Classic 5.1 | 100 | Coordinates on two reaches only (reproduced as in QUAL2Kw) | 100% | 100% | 100% |
| M12 | Colombia | Classic 5.1 | 107 | - | 100% | 100% | 100% |
| M13 | Colombia | Dendritic (xQUAL2Kw) | 127 | Branch of a multi-branch workbook; sediment diagenesis (Option 1) | 100% | 100% | 100% |
| M14 | Colombia | Classic 5.1 | 277 | Long model; hyporheic option set but inert | 100% | 100% | 100% |
| M15 | Colombia | Classic 5.1 | 279 | Sediment diagenesis (Option 2); trapezoidal Manning channels | 100% | 100% | 100% |
Water quality covers the 15 columns of the QUAL2Kw output: conductivity, inorganic suspended solids, dissolved oxygen, slow and fast CBOD, organic N, ammonium, nitrate, organic and inorganic P, phytoplankton, detritus, pathogens, alkalinity and pH.
Largest Error per Variable
The 7 models whose workbooks we still hold (M1, M5, M8, M9, M11, M12, M15) were re-scored on September 30, 2026; for the other eight, the pass rates above are those recorded in the September 2026 run. The table gives the largest difference found at any reach of any of them. The relative column only counts values larger than the variable's absolute band, where a percentage is meaningful.
Largest difference, engine vs QUAL2Kw output sheets (7 models, every reach)
| Variable | Tolerance | Largest absolute difference | Largest relative difference |
|---|---|---|---|
| Dissolved oxygen, daily mean | 5% or 0.1 mg/L | 0.001 mg/L | 0.03% |
| Dissolved oxygen, daily minimum | 5% or 0.1 mg/L | 0.005 mg/L | 0.19% |
| Dissolved oxygen, daily maximum | 5% or 0.1 mg/L | 0.003 mg/L | 0.27% |
| Slow CBOD | 5% or 0.05 mg/L | < 0.001 mg/L | < 0.01% |
| Fast CBOD | 5% or 0.05 mg/L | < 0.001 mg/L | < 0.01% |
| Organic nitrogen | 5% or 5 μg/L | 0.03 μg/L | < 0.01% |
| Ammonium | 5% or 5 μg/L | 0.20 μg/L | 0.01% |
| Nitrate | 5% or 5 μg/L | 0.03 μg/L | < 0.01% |
| Organic phosphorus | 5% or 1 μg/L | 0.007 μg/L | < 0.01% |
| Inorganic phosphorus | 5% or 1 μg/L | 0.03 μg/L | 0.04% |
| Phytoplankton | 5% or 0.5 μgA/L | < 0.001 μgA/L | < 0.01% |
| Detritus | 5% or 0.05 mg/L | < 0.001 mg/L | < 0.01% |
| Pathogens | 5% | 0.06 cfu/100 mL | 0.02% |
| Inorganic suspended solids | 5% or 0.1 mg/L | < 0.001 mg/L | < 0.01% |
| Conductivity | 5% or 1 μmhos | < 0.001 μmhos | < 0.01% |
| Alkalinity | 5% or 0.5 mg/L | < 0.001 mg CaCO3/L | < 0.01% |
| pH, daily mean | 0.05 | < 0.001 | n/a (absolute band only) |
| pH, daily minimum | 0.05 | < 0.001 | n/a (absolute band only) |
| pH, daily maximum | 0.05 | < 0.001 | n/a (absolute band only) |
| Water temperature | 0.2 °C | < 0.001 °C | n/a (absolute band only) |
| Flow | 5% | < 0.001 m³/s | < 0.01% |
| Depth | 5% | < 0.001 m | < 0.01% |
| Velocity | 5% | < 0.001 m/s | < 0.01% |
What This Shows, and What It Does Not
- It shows that the engine is a faithful port of the QUAL2Kw 5.1 solver: given the same inputs, it gives the same answers as QUAL2Kw, including the daily minimum and maximum.
- It does not show that any of these models is a good description of its river. That is the job of each study's calibration and validation against field data, which stays the modeler's responsibility.
- The engine also reproduces QUAL2Kw's known quirks (for example, a blank sky-view factor switches long-wave radiation off in the classic layout) and warns about them, because the reference numbers are what reviewers compare against.
- Not covered by any reference workbook, and therefore not validated: the hyporheic biofilm kinetics (Level 1 and 2) and the surface transient storage zone of the HTS/STS build.
To try it on your own model, import your QUAL2Kw workbook into the prediction engine and compare the results with your workbook's output sheets.