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

  • — 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

JSON API · Live Demo · Home