KGE Decomposition & Flow-Regime Scorer

Split model error into correlation, variability, and bias — then score high, mid, and low flows separately. One NSE hides what three KGE terms reveal.

1 · Data

No data loaded.

2 · Flow-regime strata

3 · What-if: perturb the sim

Applies to the simulated series only — watch which KGE term reacts. sim′ = (1+bias)·[μₛ + amp·(sim−μₛ)], then shifted by lag.

Verdict — whole record

Load data to see the decomposition diagnosis.

Hydrograph — obs vs sim

Dashed lines: the high / low flow thresholds (from observed).

Flow duration curves

Weibull plotting position p = i/(n+1). Shaded band boundaries = your strata cuts.

Stratified scores

Segment NSE uses the segment mean of observed as its benchmark — read it as “skill within this regime”, not comparable to whole-record NSE.

Equations (exactly as computed)

KGE = 1 − √[ (r−1)² + (α−1)² + (β−1)² ]
r = Pearson correlation(obs, sim)
α = σ_sim / σ_obs  (sample sd, n−1)   [2009]
γ = (σ_sim/μ_sim) / (σ_obs/μ_obs)   [2012 replaces α]
β = μ_sim / μ_obs
NSE = 1 − Σ(sim−obs)² / Σ(obs−μ_obs)²
PBIAS= 100 · Σ(sim−obs) / Σ(obs)
RMSE = √[ Σ(sim−obs)² / n ]

Reading the decomposition

β off → volume problem: infiltration, %impervious, RDII R-values. α (or γ) off → variability/flashiness: subcatchment width, storage, routing attenuation. r off → timing/shape: width, overland n, conduit roughness, lag. Fix in that order — volume first, timing last (SWMM calibration priority). Guidance ranges follow Moriasi et al. (2007) and Knoben et al. (2019): KGE > 0.75 good, 0.5–0.75 acceptable; note KGE = −0.41 (not 0) is the “mean-flow benchmark” line. Refs: Gupta et al. 2009; Kling et al. 2012.