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.
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 — 1h, 3h, 6h, 12h, 24h, 48h, 72h, 96h, 120h, 168h (7 days)
- Models ensemble — XGBoost, LightGBM, RandomForest, GradientBoosting, Ridge
- 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
539
Models Trained
0.987
Avg R² @ 1h
0.637
Avg R² @ 24h
0.427
Avg R² @ 72h
| Station | River | R² 1h | R² 6h | R² 24h | R² 72h | Models |
|---|---|---|---|---|---|---|
| Camden Weir 212216 |
Nepean River | 0.997 | 0.970 | 0.597 | 0.615 | 147/147 |
| Wallacia Weir 212202 |
Nepean River | 0.998 | 0.966 | 0.582 | 0.564 | 60/60 |
| Penrith Weir 212201 |
Nepean River | 0.998 | 0.980 | 0.842 | 0.556 | 84/84 |
| North Richmond 212200 |
Hawkesbury River | 0.985 | 0.894 | 0.708 | 0.451 | 61/61 |
| Windsor 212903 |
Hawkesbury River | 0.996 | 0.930 | 0.710 | 0.371 | 72/72 |
| Sackville 212406 · tidal |
Hawkesbury River | 0.967 | 0.890 | 0.556 | 0.160 | 47/47 |
| Lower Portland 212407 · tidal |
Hawkesbury River | 0.979 | 0.844 | 0.691 | 0.695 | 41/41 |
| Webbs Creek 212408 · tidal |
Hawkesbury River | 0.980 | 0.844 | 0.412 | 0.004 | 27/27 |
Daintree River Catchment
Far North Queensland
1
Stations
28
Models Trained
0.845
Avg R² @ 1h
0.340
Avg R² @ 24h
0.150
Avg R² @ 72h
| Station | River | R² 1h | R² 6h | R² 24h | R² 72h | Models |
|---|---|---|---|---|---|---|
| Daintree Village 531110 · tidal |
Daintree River | 0.845 | 0.659 | 0.340 | 0.150 | 28/28 |
Lismore City Council Catchment
Richmond
2
Stations
47
Models Trained
0.998
Avg R² @ 1h
0.575
Avg R² @ 24h
0.243
Avg R² @ 72h
| Station | River | R² 1h | R² 6h | R² 24h | R² 72h | Models |
|---|---|---|---|---|---|---|
| Lismore (Wilsons River) 203900 |
Wilsons River | 0.998 | 0.958 | 0.575 | 0.243 | 47/47 |
| Casino 203010 |
Richmond River | — | — | — | — | 0/0 |
Brisbane River Catchment
South East Queensland
1
Stations
3
Models Trained
—
Avg R² @ 1h
—
Avg R² @ 24h
0.216
Avg R² @ 72h
| Station | River | R² 1h | R² 6h | R² 24h | R² 72h | Models |
|---|---|---|---|---|---|---|
| Brisbane City Gauge 540198 |
Brisbane River | — | — | — | 0.216 | 3/3 |
Lake Conjola Catchment
South Coast NSW
1
Stations
3
Models Trained
—
Avg R² @ 1h
0.950
Avg R² @ 24h
—
Avg R² @ 72h
| Station | River | R² 1h | R² 6h | R² 24h | R² 72h | Models |
|---|---|---|---|---|---|---|
| Lake Conjola 216420 · tidal |
Lake Conjola | — | 0.995 | 0.950 | — | 3/3 |