← Buffalo dashboard

The recession math

The "time to floatable / too low" countdowns come from measured decay curves: how fast each gauge actually falls, at every flow level, over 11½ years of recessions.

The curve

A falling river doesn't drop at one rate — it falls fast when high and slower as it approaches baseflow. For each gauge we store a table of decay rates k by flow band (fraction lost per hour). The countdown integrates those bands from the current flow down to each threshold, and anchors to the actual event: if this recession is running faster or slower than the historical median, the whole forecast scales to match (clamped to 0.5–2×).

GaugeFalling from high waterFalling near floatable
Boxley89% per day near 1,500 cfs40% per day near 350 cfs
Ponca64% per day near 1,600 cfs21% per day near 200 cfs
Pruitt55% per day near 2,000 cfs21% per day near 200 cfs
St. Joe · settles to a ~76 cfs baseflow49% per day near 8,000 cfs18% per day near 200 cfs
Harriet · settles to a ~103 cfs baseflow50% per day near 9,370 cfs21% per day near 200 cfs

Median rates shown; the forecast carries the measured 25th–75th percentile spread, and the confidence label reflects it (see the confidence page).

The seasons are real — and how we handle them

Paddler folklore says the water drops faster in summer than winter. We measured it: in identical flow bands, rain-free summer recessions run 1.2× faster at Boxley and Pruitt, ~1.35× at St. Joe and Harriet, and 2.3× at Ponca than winter ones — the trees really are drinking the river (evapotranspiration). We then tested adding a calendar multiplier to the countdowns — and it made them worse, because the live anchor above already measures each recession's actual speed and adapts, which beats any calendar rule. We publish that null result here on purpose.

What DID ship: seasonal floors. The level a river settles toward swings enormously — St. Joe typically holds above ~600 cfs in March but falls to ~50 by September. A spring countdown to a summer-only level is a promise the river won't keep: in backtest, targets below the month's typical floor were reached within 10 days only 5–16% of the time. Countdowns to such targets now say "typically settles near ~X this time of year" instead of a number.

The confidence label

Each countdown carries high / medium / low, set by the weakest of three tests. Spread: the forecast carries the measured 25th–75th percentile decay range; if the resulting time window is tight relative to its middle (within about ±40%), that's high — a window wider than the estimate itself is low. Horizon: under 3 days out is high, under a week medium, beyond a week low — past that, weather is the dominant unknown, not the curve. Data: the label is capped by how many recent readings anchor the fit (8+ for high, 4+ for medium). A 6-day-out countdown can never claim high confidence, no matter how clean the curve looks — that's deliberate.

When the countdown pauses

Only when a rise is genuinely imminent at this gauge: local rain building there, or a tracked wave arriving within about 3 hours. A wave that's still half a day out no longer hides the countdown — you'll see both together ("floatable in ~6h · wave arriving ~9 PM"), which is the honest picture. In replay, the old any-upstream-prediction rule blacked out countdowns wrongly 97–99% of the time it fired on a falling river.

Every number on this page is generated from the deployed model files and an 11½-year hourly replay (2014-12 → 2026-06, baseline v6). Generated 2026-07-03T00:49:54+00:00. Experimental — never rely on a single number for safety decisions.