Forecast Skill Cards
Per-catchment model performance metrics with published validation methodology. Every model is held to transparent quality gates and cross-validated on historical observations.
Read these as whole-record fit statistics measured in ordinary conditions. Peak magnitude at major flood is undemonstrated and under-predicted in testing at every gate station; nothing on this page is a claim about flood peaks. R² bands below are ordinary-conditions fit only, not grades.
Methodology
- R² — Coefficient of determination on held-out test set (15% of data)
- CV R² — 5-fold TimeSeriesSplit cross-validation (chronological)
- MAE / RMSE — Mean absolute / root-mean-square error in metres
- Quality gates — Reject if R² < 0 (worse than mean) or CV R² < 0 (worse than persistence)
- Training window — 13+ years of hourly data (2013-2026)
- Horizons — ML-backed to 72h at most, and only where the CRPS gate has passed (each card states its own lead); 96h, 120h and 168h are served as persistence / climatology blend, not as model forecasts
- Models ensemble — XGBoost, LightGBM, RandomForest, Ridge (+ MetaLearner), per-horizon member admission
- Confidence bands — Conformal prediction (90% coverage, regime-stratified)
- NWP rainfall — Future forecast rainfall from Open-Meteo included as features
- Tidal handling — Multi-constituent harmonic analysis via utide library
Hawkesbury-Nepean River Catchment
Greater Sydney
8
Stations
1257
Models Trained
0.982
Avg R² @ 1h
0.769
Avg R² @ 24h
0.577
Avg R² @ 72h
| Station | River | R² 1h | R² 6h | R² 24h | R² 72h | Models |
|---|---|---|---|---|---|---|
| Camden Weir 212216 |
Nepean River | 0.996 | 0.965 | 0.630 | 0.728 | 165/196 |
| Wallacia Weir 212202 |
Nepean River | 0.997 | 0.977 | 0.587 | 0.354 | 150/163 |
| Penrith Weir 212201 |
Nepean River | 0.997 | 0.972 | 0.843 | 0.552 | 159/166 |
| North Richmond 212200 |
Hawkesbury River | 0.965 | 0.907 | 0.740 | 0.312 | 118/146 |
| Windsor 212903 |
Hawkesbury River | 0.994 | 0.912 | 0.680 | 0.350 | 160/166 |
| Sackville 212406 · tidal |
Hawkesbury River | 0.981 | 0.950 | 0.869 | 0.688 | 135/140 |
| Lower Portland 212407 · tidal |
Hawkesbury River | 0.946 | 0.924 | 0.891 | 0.827 | 82/140 |
| Webbs Creek 212408 · tidal |
Hawkesbury River | 0.982 | 0.960 | 0.916 | 0.802 | 138/140 |
Daintree River Catchment
Far North Queensland
1
Stations
140
Models Trained
0.702
Avg R² @ 1h
0.026
Avg R² @ 24h
0.015
Avg R² @ 72h
| Station | River | R² 1h | R² 6h | R² 24h | R² 72h | Models |
|---|---|---|---|---|---|---|
| Daintree Village 531110 · tidal |
Daintree River | 0.702 | 0.239 | 0.026 | 0.015 | 82/140 |
Lismore City Council Catchment
Richmond
2
Stations
327
Models Trained
0.990
Avg R² @ 1h
0.638
Avg R² @ 24h
0.393
Avg R² @ 72h
| Station | River | R² 1h | R² 6h | R² 24h | R² 72h | Models |
|---|---|---|---|---|---|---|
| Lismore (Wilsons River) 203900 |
Wilsons River | 0.995 | 0.960 | 0.615 | 0.336 | 152/164 |
| Casino 203010 |
Richmond River | 0.985 | 0.910 | 0.660 | 0.450 | 148/163 |
Brisbane River Catchment
South East Queensland
1
Stations
146
Models Trained
0.951
Avg R² @ 1h
0.898
Avg R² @ 24h
0.831
Avg R² @ 72h
| Station | River | R² 1h | R² 6h | R² 24h | R² 72h | Models |
|---|---|---|---|---|---|---|
| Brisbane City Gauge 540198 |
Brisbane River | 0.951 | 0.853 | 0.898 | 0.831 | 130/146 |
Lake Conjola Catchment
South Coast NSW
1
Stations
140
Models Trained
0.989
Avg R² @ 1h
0.903
Avg R² @ 24h
0.737
Avg R² @ 72h
| Station | River | R² 1h | R² 6h | R² 24h | R² 72h | Models |
|---|---|---|---|---|---|---|
| Lake Conjola 216420 · tidal |
Lake Conjola | 0.989 | 0.979 | 0.903 | 0.737 | 140/140 |