Genius Level

Every input, formula, threshold, and applied calculation in SHA's river/weather/forecast/run intelligence stack. One scroll, no clicks, no caches. Designed to be diagnostic-first, educational-second.

Storm Watch 🌧️ Rain Tonight · 64% See /storms →

1 · Live snapshot — Cuyahoga River @ Independence

The single most recent river_conditions row for this river. Fed every 15 min by the rivers:update command which combines USGS instantaneous values (flow, gauge height, water temp, parameter 00045 for rain bucket) with OpenWeather current conditions (air temp, weather, wind, humidity, barometric pressure).

Flow rate
497 cfs
Gauge height
3.25 ft
Water temp
72.1°F
Clarity
Clear
Air temp
72.8°F
Sky
Clouds
Wind
6.9 mph S
Precip 1h
0"
Humidity
92%
Barometric
1013 hPa
Lat / lon
41.3953, -81.6298
Primary USGS gauge
04208000
Captured Sep 12 8:30pm EDT

2 · Recommendation breakdown

The fishing rating shown on each river page comes from FishingRecommendationService::getRecommendation(). Four independently scored components plus a barometric-pressure modifier produce a 0–11 raw score, which is clamped and cut into Excellent / Good / Fair / Poor. Below is the live decomposition for this river.

excellent score = 9.05 / 11

"Holding steady at 497 CFS, water is clear, 72°F — prime summer feeding temp. Textbook conditions. The fish know it, you should too. No surprises in the flow. Pick your favorite run. Broke Off on Something Big. Again.."

Per-component contribution

Component Points Why
flow 3
temp 3
clarity 3
weather 0.05
pressure 0
flow_value 497
temp_value 72.1
clarity_value Clear

Barometric pressure analyzer

Trend
stable
Δ hPa/hr
Score modifier
+0
Sample size
32 pts

Scoring rules

flow
In optimal zone = 4 · within 30% = 3 · within 60% = 2 · outside = 1 · above p95×1.5 = 0 (blown).
temp
38–55°F = 3 (prime: covers winter holdover + spring run) · 33–58°F = 2 · 30–62°F = 1 · outside = 0.
clarity
Stained = 3 (steelhead green) · Clear = 2 · Muddy = 0.
weather
Cloudy/Overcast = 1 · else = 0.
pressure
Rapidly falling = +2 · falling = +1 · stable = 0 · rising = -1 · rapidly rising = -1.
rating_cuts
Excellent ≥ 9 · Good ≥ 6 · Fair ≥ 3 · Poor < 3 (max 11 after clamp).

3 · Statistics engine

Cached in river_flow_stats, regenerated nightly at 03:00 ET by flow:compute-stats. The pipeline pulls a 3-year window of hourly- downsampled USGS flow, removes Tukey outliers at 3× IQR on log-flow, then computes percentiles, a 20-bin log-space histogram, Q-Q quantiles vs. a fitted normal, and (if ≥ 20 historical "Good" reports exist) promotes the optimal zone from a heuristic p15–p30 to the empirical p10–p90 of those reports.

Window
3 yr
Sample size
2,116
Mean / median
528 / 468 cfs
Min / max
284 / 3,030

Percentile distribution

Pcfs
pp5316
pp10332
pp25372
pp50468
pp75686
pp901,041
pp951,319
Optimal zone (manual)
0 – 0 cfs

Flow distribution histogram (log-space, 3 yr)

284 3,030 cfs

Green bars overlap the optimal zone. Bars are equal-width in log-flow space.

Today's flow placement

p0 (low) p50 p99 (high) p75

Current flow 497 cfs sits at the p75 of the 3-year record. Green band = optimal zone.

Stats computed Sep 12 3:00am

4 · Weather integration

Three independent feeds power the per-river weather story. NWS gridpoint forecasts (refreshed every 3 hours) supply 7-day periods + 48 hours of hourly data. AHPS stage forecasts give 5-day predicted flow / gauge height. SPC convective outlooks tier the river's lat/lon by tornado / wind / hail risk for days 1–3. Active alerts are de-duplicated against expired headlines.

AHPS predicted flow (limited gauge coverage)
+24h 427 cfs · 3 ft · Sep 13 8pm
+48h 387 cfs · 2.9 ft · Sep 14 8pm
+72h 349 cfs · 2.8 ft · Sep 15 8pm
gauge INDO1 · issued Sep 12 10:49am
SPC convective tier
Day 1: · Day 2: · Day 3:
— = no convective risk over this point today (data fetched ✓)
Active NWS alerts
none active

NWS 7-day forecast

Period Temp Wind Forecast
Tonight 66°F 5 mph S Chance Showers And Thunderstorms then Patchy Fog
Sunday 83°F 2 to 10 mph W Patchy Fog then Chance Showers And Thunderstorms
Sunday Night 59°F 10 mph NW Chance Showers And Thunderstorms then Partly Cloudy
Monday 72°F 6 to 9 mph N Mostly Sunny
Monday Night 54°F 2 to 7 mph E Partly Cloudy
Tuesday 84°F 8 to 12 mph S Mostly Sunny
Tuesday Night 66°F 3 to 12 mph S Chance Showers And Thunderstorms
Fetched Sep 12 8:01pm

5 · Run indicator (alley-wide)

Latest 24h average lake-surface temp from NDBC buoys + C-MAN stations, compared against 7-day delta and 55°F threshold crossing detection. State changes drive copy on every river page.

Lake Erie

off_season
surface temp 74.6°F · 7d Δ -1.6°F · day 11 in state
snapshot 2026-09-12
Latest buoy reads (24h)
NDBC-45142 73.2°F Sep 12 8:00pm
NDBC-MRHO1 75.6°F Sep 12 7:48pm
NDBC-FAIO1 73.9°F Sep 12 7:48pm
NDBC-CNDO1 73.8°F Sep 12 7:48pm
NDBC-MRHO1 75.6°F Sep 12 7:42pm
NDBC-FAIO1 73.9°F Sep 12 7:42pm

Lake Ontario

off_season
surface temp 70.6°F · 7d Δ +0.0°F · day 11 in state
snapshot 2026-09-12
Latest buoy reads (24h)
NDBC-45139 69.4°F Sep 12 8:00pm
NDBC-45012 71.1°F Sep 12 8:00pm
NDBC-45012 71.1°F Sep 12 7:40pm
NDBC-45012 71.1°F Sep 12 7:30pm
NDBC-45012 71.1°F Sep 12 7:10pm
NDBC-45139 69.6°F Sep 12 7:00pm

Seven-state classifier

pre_run_fall
Fish staging in lake; tribs empty.
run_starting_fall
First fish entering tribs (fall pulse).
run_active_fall
Active fall run.
holdover
Fish wintering in tribs between fall + spring.
run_starting_spring
Spring run starting (post-holdover surge).
run_active_spring
Active spring run.
run_ending
Drop-back; spawned fish leaving for the lake.
off_season
Lake-bound; tribs warm; warmwater season.

6 · Storm detection (alley-wide)

ActiveStormDetector fires four parallel triggers against river_precip_observations, NWS active alerts, and 6-hour flow deltas. Any single trigger flips the storm card to active; severity is then classified by the most aggressive signal across all 31 rivers. Precip readings flow from a 4-source priority chain — fresher, more accurate sources override stale ones.

QUIET
active
0
recovering
0
watching
27
quiet
4

Selected river lifecycle

Cuyahoga River @ Independence
watching 67% confidence
Open river page

"0.4" rain expected by 9 pm. Gauges still calm."

Signals fired
forecast_precip_0_3
Expected at
Sep 12 9:00pm EDT
Last pulse ended
-

Storm lifecycle state transitions

QUIET -> WATCHING
Forecast precip estimate >= 0.30" in 24h, NWS watch/warning, SPC MRGL+, or AHPS predicted flow >= 2x current flow.
WATCHING -> ACTIVE
Any active storm bucket fires: heavy rate >= 0.5 in/hr in 30 min, broad rain >= 3 rivers over 0.10"/hr, NWS alert, or flow rise >= 1.5x vs 6h ago.
ACTIVE -> RECOVERING
A storm pulse ended within the last 72h and the river has not returned to baseline.
RECOVERING -> QUIET
Pulse returned to baseline and current flow is <= optimal high x 1.15.

Storm Lifecycle State Matrix

River State Severity Signals Confidence Headline
Ashtabula River watching - forecast_precip_0_3 67% 0.4" rain expected by 9 pm. Gauges still calm.
Black River watching - forecast_precip_0_3 67% 0.4" rain expected by 9 pm. Gauges still calm.
Black River (Watertown) watching - forecast_precip_0_3 67% 0.4" rain expected by 9 pm. Gauges still calm.
Brandy Run near Girard watching - forecast_precip_0_3 67% 0.5" rain expected by 9 pm. Gauges still calm.
Buffalo Creek quiet - - 90% -
Canadaway Creek watching - forecast_precip_0_3 67% 0.3" rain expected by 9 pm. Gauges still calm.
Cattaraugus Creek watching - forecast_precip_0_3 67% 0.5" rain expected by 9 pm. Gauges still calm.
Cazenovia Creek quiet - - 90% -
Chagrin River @ Willoughby watching - forecast_precip_0_3 67% 0.4" rain expected by 9 pm. Gauges still calm.
Chautauqua Creek watching - forecast_precip_0_3 67% 0.3" rain expected by 9 pm. Gauges still calm.
Conneaut Creek watching - forecast_precip_0_3 67% 0.5" rain expected by 9 pm. Gauges still calm.
Crooked Creek watching - forecast_precip_0_3 67% 0.5" rain expected by 9 pm. Gauges still calm.
Cuyahoga River @ Independence watching - forecast_precip_0_3 67% 0.4" rain expected by 9 pm. Gauges still calm.
Eighteen Mile Creek watching - forecast_precip_0_3 67% 0.3" rain expected by 9 pm. Gauges still calm.
Eighteenmile Creek (Niagara) watching - forecast_precip_0_3 67% 0.3" rain expected by 9 pm. Gauges still calm.
Elk Creek watching - forecast_precip_0_3 67% 0.5" rain expected by 9 pm. Gauges still calm.
Euclid Creek watching - forecast_precip_0_3 67% 0.4" rain expected by 9 pm. Gauges still calm.
Genesee River watching - forecast_precip_0_3 67% 0.4" rain expected by 9 pm. Gauges still calm.
Grand River near Painesville watching - forecast_precip_0_3 67% 0.4" rain expected by 9 pm. Gauges still calm.
Huron River watching - forecast_precip_0_3 67% 0.3" rain expected by 9 pm. Gauges still calm.
Irondequoit Creek watching - forecast_precip_0_3 67% 0.4" rain expected by 9 pm. Gauges still calm.
Johnson Creek quiet - - 90% -
Oak Orchard Creek quiet - - 90% -
Rocky River near Berea watching - forecast_precip_0_3 67% 0.4" rain expected by 9 pm. Gauges still calm.
Salmon River watching - forecast_precip_0_3 67% 0.5" rain expected by 9 pm. Gauges still calm.
Sandy Creek (Adams) watching - forecast_precip_0_3 67% 0.4" rain expected by 9 pm. Gauges still calm.
Sandy Creek (Hamlin) watching - forecast_precip_0_3 67% 0.4" rain expected by 9 pm. Gauges still calm.
Silver Creek watching - forecast_precip_0_3 67% 0.3" rain expected by 9 pm. Gauges still calm.
Twenty Mile Creek watching - forecast_precip_0_3 67% 0.4" rain expected by 10 pm. Gauges still calm.
Vermilion River @ Vermilion watching - forecast_precip_0_3 67% 0.4" rain expected by 9 pm. Gauges still calm.
Walnut Creek watching - forecast_precip_0_3 67% 0.5" rain expected by 10 pm. Gauges still calm.

Precipitation rate — last 24 hours (NWS publishes in 6h intervals; USGS hourly where available)

Alley average Wettest single river Broad-rain trigger Heavy-MRMS trigger
in/hr 0.00 0.10 0.12 9:00pm 8:00pm

Y axis is in/hr precipitation, auto-scaled but always includes the broad-rain trigger so quiet days still have context. The cyan line is the alley-wide average; gray ticks above each cyan dot show how high the single wettest river was running at that observation. When cyan crosses amber → broad-front rain. When a gray tick crosses red → one river is in a heavy cell. Sparse points are real — NWS gridpoint QPE only updates every 6 hours per river; the hourly USGS rows fill in for the handful of rivers whose gauges publish precipitation.

Triggers

Trigger 1A — Heavy MRMS rate
≥ 1 river over 0.5 in/hr in last 30 min.
Trigger 1B — Broad rain
≥ 3 rivers with precipitation_1h > 0.10".
Trigger 2 — NWS alert
≥ 1 active alert covering any river.
Trigger 3 — Flow rise
≥ 1 river with current flow ≥ 1.5× flow 6 hours ago.

Severity classifier

severe
NWS Extreme/Severe alert · MRMS ≥ 1.0 in/hr · ≥ 5 rivers rising · ≥ 8 raining · ≥ 3 heavy MRMS rivers
moderate
Any active alert · MRMS ≥ 0.5 in/hr · ≥ 1 rising · ≥ 5 raining
light
Default when active but none of the above

Precipitation source priority

  1. mrms — Open-Meteo Lite (15-min observations) — 10 min staleness window
  2. usgs — USGS parameter 00045 from gauges with rain buckets — 30 min
  3. nws_obs — NWS gridpoint quantitativePrecipitation past intervals — 90 min
  4. nws_fcst — NWS gridpoint forecast (final fallback) — 240 min

7 · Alley Index (alley-wide)

Percentile rank of today's underlying conditions composite (mean of per-river fishing scores 0–100) against the historical record on this calendar window (±15 days, all years). Below 10 comparable days in the window the Index falls back to the raw underlying score so the page always shows a meaningful number.

Today
66
Underlying
52
Rivers active / total
31 / 31
Date
2026-09-12 00:00:00

Band cuts

BandCutMeaning
Excellent ≥ 90 Top 10% of comparable days ever recorded.
Good ≥ 70 Top 30%.
Average ≥ 30 Middle 40%.
Poor ≥ 10 Bottom 30%.
Blown ≥ 0 Bottom 10%.

Last 30 days

Older → newer left to right. Color follows band cuts.

8 · Forecast verification (alley-wide)

Most-recent NWS prediction for each (river, date) in the last 14 days, sorted past→future. The verifier joins each prediction to MAX/MIN(air_temp_f) + MAX(precipitation_1h) from river_conditions on that date. Δ column compares observed vs predicted. Known upstream gap: predicted precipitation inches are unreliable (NWS forecast text rarely includes a clean inches value, so the snapshotter falls back to 0). Use precip probability as the better forecast signal.

Date River Predicted (hi/lo · precip) Observed (hi/lo · max 1h) Δ vs predicted
2026-09-18 Ashtabula River 74°/— · 23% POP · 12 mph NE (future — not yet verifiable)
2026-09-18 Black River 76°/— · 28% POP · 10 mph NE (future — not yet verifiable)
2026-09-18 Black River (Watertown) 71°/— · 22% POP · 7 mph N (future — not yet verifiable)
2026-09-18 Brandy Run near Girard 73°/— · 25% POP · 8 mph NE (future — not yet verifiable)
2026-09-18 Buffalo Creek 73°/— · 22% POP · 6 mph NE (future — not yet verifiable)
2026-09-18 Canadaway Creek 72°/— · 24% POP · 9 mph NE (future — not yet verifiable)
2026-09-18 Cattaraugus Creek 73°/— · 26% POP · 5 mph NE (future — not yet verifiable)
2026-09-18 Cazenovia Creek 73°/— · 22% POP · 6 mph NE (future — not yet verifiable)
2026-09-18 Chagrin River @ Willoughby 76°/— · 24% POP · 9 mph NE (future — not yet verifiable)
2026-09-18 Chautauqua Creek 71°/— · 24% POP · 10 mph NE (future — not yet verifiable)
2026-09-18 Conneaut Creek 73°/— · 24% POP · 10 mph NE (future — not yet verifiable)
2026-09-18 Crooked Creek 73°/— · 25% POP · 8 mph NE (future — not yet verifiable)
2026-09-18 Cuyahoga River @ Independence 78°/— · 27% POP · 9 mph NE (future — not yet verifiable)
2026-09-18 Eighteen Mile Creek 72°/— · 24% POP · 5 mph NE (future — not yet verifiable)
2026-09-18 Eighteenmile Creek (Niagara) 73°/— · 18% POP · 9 mph NE (future — not yet verifiable)
2026-09-18 Elk Creek 73°/— · 25% POP · 9 mph NE (future — not yet verifiable)
2026-09-18 Euclid Creek 76°/— · 25% POP · 9 mph NE (future — not yet verifiable)
2026-09-18 Genesee River 72°/— · 24% POP · 8 mph N (future — not yet verifiable)
2026-09-18 Grand River near Painesville 75°/— · 24% POP · 10 mph NE (future — not yet verifiable)
2026-09-18 Huron River 77°/— · 29% POP · 9 mph NE (future — not yet verifiable)
2026-09-18 Irondequoit Creek 73°/— · 25% POP · 8 mph N (future — not yet verifiable)
2026-09-18 Johnson Creek 70°/— · 19% POP · 10 mph NE (future — not yet verifiable)
2026-09-18 Oak Orchard Creek 72°/— · 19% POP · 9 mph NE (future — not yet verifiable)
2026-09-18 Rocky River near Berea 76°/— · 28% POP · 12 mph NE (future — not yet verifiable)
2026-09-18 Salmon River 72°/— · 29% POP · 6 mph N (future — not yet verifiable)
2026-09-18 Sandy Creek (Adams) 70°/— · 25% POP · 7 mph N (future — not yet verifiable)
2026-09-18 Sandy Creek (Hamlin) 72°/— · 21% POP · 9 mph NE (future — not yet verifiable)
2026-09-18 Silver Creek 71°/— · 25% POP · 8 mph NE (future — not yet verifiable)
2026-09-18 Twenty Mile Creek 71°/— · 25% POP · 9 mph NE (future — not yet verifiable)
2026-09-18 Vermilion River @ Vermilion 75°/— · 28% POP · 10 mph NE (future — not yet verifiable)
2026-09-18 Walnut Creek 72°/— · 25% POP · 9 mph NE (future — not yet verifiable)
2026-09-17 Ashtabula River 78°/62° · 54% POP · 16 mph N (future — not yet verifiable)
2026-09-17 Black River 82°/60° · 59% POP · 14 mph N (future — not yet verifiable)
2026-09-17 Black River (Watertown) 76°/54° · 51% POP · 10 mph N (future — not yet verifiable)
2026-09-17 Brandy Run near Girard 78°/59° · 60% POP · 10 mph N (future — not yet verifiable)
2026-09-17 Buffalo Creek 78°/56° · 53% POP · 8 mph N (future — not yet verifiable)
2026-09-17 Canadaway Creek 77°/57° · 58% POP · 12 mph N (future — not yet verifiable)
2026-09-17 Cattaraugus Creek 78°/56° · 59% POP · 7 mph N (future — not yet verifiable)
2026-09-17 Cazenovia Creek 78°/57° · 52% POP · 8 mph N (future — not yet verifiable)
2026-09-17 Chagrin River @ Willoughby 81°/61° · 56% POP · 12 mph N (future — not yet verifiable)
2026-09-17 Chautauqua Creek 76°/60° · 59% POP · 12 mph N (future — not yet verifiable)
2026-09-17 Conneaut Creek 78°/62° · 56% POP · 13 mph N (future — not yet verifiable)
2026-09-17 Crooked Creek 78°/60° · 58% POP · 10 mph N (future — not yet verifiable)
2026-09-17 Cuyahoga River @ Independence 83°/62° · 60% POP · 12 mph N (future — not yet verifiable)
2026-09-17 Eighteen Mile Creek 77°/56° · 53% POP · 7 mph N (future — not yet verifiable)
2026-09-17 Eighteenmile Creek (Niagara) 78°/56° · 56% POP · 10 mph N (future — not yet verifiable)
2026-09-17 Elk Creek 78°/61° · 59% POP · 12 mph N (future — not yet verifiable)
2026-09-17 Euclid Creek 80°/63° · 56% POP · 13 mph N (future — not yet verifiable)
2026-09-17 Genesee River 78°/58° · 51% POP · 10 mph NW (future — not yet verifiable)
2026-09-17 Grand River near Painesville 80°/59° · 55% POP · 14 mph N (future — not yet verifiable)
2026-09-17 Huron River 82°/61° · 58% POP · 13 mph N (future — not yet verifiable)
2026-09-17 Irondequoit Creek 79°/57° · 52% POP · 10 mph NW (future — not yet verifiable)
2026-09-17 Johnson Creek 75°/58° · 54% POP · 13 mph N (future — not yet verifiable)
2026-09-17 Oak Orchard Creek 77°/57° · 54% POP · 12 mph N (future — not yet verifiable)
2026-09-17 Rocky River near Berea 81°/61° · 59% POP · 15 mph N (future — not yet verifiable)
2026-09-17 Salmon River 76°/53° · 56% POP · 8 mph N (future — not yet verifiable)
2026-09-17 Sandy Creek (Adams) 75°/54° · 52% POP · 10 mph N (future — not yet verifiable)
2026-09-17 Sandy Creek (Hamlin) 77°/57° · 52% POP · 12 mph N (future — not yet verifiable)
2026-09-17 Silver Creek 76°/57° · 56% POP · 10 mph N (future — not yet verifiable)
2026-09-17 Twenty Mile Creek 76°/62° · 61% POP · 12 mph N (future — not yet verifiable)
2026-09-17 Vermilion River @ Vermilion 81°/60° · 57% POP · 14 mph N (future — not yet verifiable)
2026-09-17 Walnut Creek 77°/62° · 59% POP · 14 mph N (future — not yet verifiable)
2026-09-16 Ashtabula River 79°/67° · 54% POP · 9 mph SE (future — not yet verifiable)
2026-09-16 Black River 84°/66° · 51% POP · 8 mph S (future — not yet verifiable)
2026-09-16 Black River (Watertown) 76°/59° · 43% POP · 9 mph S (future — not yet verifiable)
2026-09-16 Brandy Run near Girard 80°/64° · 55% POP · 6 mph SE (future — not yet verifiable)
2026-09-16 Buffalo Creek 78°/62° · 53% POP · 6 mph S (future — not yet verifiable)
2026-09-16 Canadaway Creek 77°/63° · 52% POP · 8 mph S (future — not yet verifiable)
2026-09-16 Cattaraugus Creek 79°/62° · 50% POP · 6 mph S (future — not yet verifiable)
2026-09-16 Cazenovia Creek 78°/62° · 52% POP · 6 mph S (future — not yet verifiable)
2026-09-16 Chagrin River @ Willoughby 83°/66° · 54% POP · 6 mph S (future — not yet verifiable)
2026-09-16 Chautauqua Creek 76°/65° · 53% POP · 9 mph S (future — not yet verifiable)
2026-09-16 Conneaut Creek 79°/67° · 54% POP · 8 mph SE (future — not yet verifiable)
2026-09-16 Crooked Creek 79°/65° · 56% POP · 6 mph SE (future — not yet verifiable)
2026-09-16 Cuyahoga River @ Independence 86°/67° · 52% POP · 6 mph S (future — not yet verifiable)
2026-09-16 Eighteen Mile Creek 77°/62° · 52% POP · 6 mph S (future — not yet verifiable)
2026-09-16 Eighteenmile Creek (Niagara) 78°/61° · 56% POP · 7 mph S (future — not yet verifiable)
2026-09-16 Elk Creek 79°/66° · 55% POP · 7 mph SE (future — not yet verifiable)
2026-09-16 Euclid Creek 82°/68° · 54% POP · 7 mph SE (future — not yet verifiable)
2026-09-16 Genesee River 78°/62° · 51% POP · 7 mph SE (future — not yet verifiable)
Total snapshots in archive: 28818 · 80 shown (last 14 days, most-recent prediction per (river, date))

9 · Conditions archive (alley-wide)

Tiered retention so the database doesn't grow unbounded but the long-history aggregates that power the Alley Index, forecast verifier, and storm-pulse detector remain intact. Raw river_conditions prune weekly via rivers:clean; hourly + daily rollups are forever.

Retention policy

raw river_conditions
90 days (pruned weekly via rivers:clean)
gauge_readings
90 days
lake_temp_snapshots
forever (small volume)
precip_observations
raw 90 days; hourly + daily rollups forever
ahps_forecasts
forever
alley_index_snapshots
forever
spc_outlooks
forever
nws_alerts
forever (with ended_at marker)

Row counts (live)

river_conditions 459,422
gauge_readings 925,691
lake_temp_snapshots 65,138
precip_observations 22,095
ahps_forecasts 3,732
alley_index_snapshots 229
spc_outlooks 43
nws_alerts 1,023

10 · Data sources & cadence (operational)

Every external feed feeding SHA's intelligence stack, with the artisan command that drives it, last-fetch timestamp, and total row count. If a "last_at" is hours behind cadence, that source is stalled.

Source Cadence Driver Last at Rows
USGS instantaneous values 15 min rivers:update Sep 12 8:30pm 925,691
OpenWeather current 15 min rivers:update Sep 12 8:30pm 459,422
NWS 7-day + hourly forecast 3 hours forecasts:fetch Sep 12 8:01pm 32
NWS AHPS predicted flow 6 hours ahps:fetch Sep 12 10:49am 3,732
NWS active alerts 15 min alerts:fetch-nws Sep 12 9:30am 1,023
SPC convective outlooks 3 hours spc:fetch-outlook Sep 12 8:15pm 43
NDBC + C-MAN lake temps 1 hour noaa:fetch-buoys Sep 12 8:00pm 65,138
River precip (USGS / NWS / MRMS-Lite) 5–60 min rivers:update + precip:fetch-nws + local Open-Meteo worker Sep 12 8:00pm 22,095
Alley Index snapshot hourly + daily 04:50 ET index:compute Sep 12 8:00pm 229
Run state classifier daily 06:30 ET run-state:compute Sep 11 234

11 · Constants reference (every threshold in one place)

Every magic number that drives a SHA decision, with the file it lives in. Edit the source to change a threshold — this page reflects the live code path. Grouped by subsystem.

Group Constant Value Where
Flow scoring In optimal zone 4 points IndexCalculatorService::scoreCondition
Flow scoring Within 30% of optimal 3 points IndexCalculatorService::scoreCondition
Flow scoring Within 60% of optimal 2 points IndexCalculatorService::scoreCondition
Flow scoring Above p95 × 1.5 Blown (0) IndexCalculatorService::scoreCondition
Temp scoring Prime band (winter + spring) 38–55°F = 3 FishingRecommendationService::analyzeTemperature
Temp scoring Good band 33–58°F = 2 FishingRecommendationService::analyzeTemperature
Temp scoring Marginal band 30–62°F = 1 FishingRecommendationService::analyzeTemperature
Clarity Clear / Stained ratio < 1.4× p50 RiverMonitorService::determineClarity
Clarity Stained / Muddy ratio < 2.8× p50 RiverMonitorService::determineClarity
Pressure Rapidly falling ≤ -1.0 hPa/hr PressureService
Pressure Falling ≤ -0.3 hPa/hr PressureService
Pressure Score modifier (rapidly falling) +2 points PressureService
Storm card Heavy-MRMS threshold 0.5 in/hr ActiveStormDetector::HEAVY_RATE_INCHES_PER_HOUR
Storm card Heavy-MRMS lookback 30 min ActiveStormDetector::HEAVY_RATE_LOOKBACK_MINUTES
Storm card Broad-rain threshold 0.10"/hr ActiveStormDetector::RAIN_THRESHOLD_INCHES
Storm card Broad-rain river count ≥ 3 ActiveStormDetector::MIN_RAIN_RIVERS
Storm card Flow-rise factor 1.5× vs 6h ago ActiveStormDetector::FLOW_RISE_FACTOR
Storm lifecycle Watching forecast precip ≥ 0.30" in 24h StormLifecycleService::forecastPrecipSignal
Storm lifecycle Watching AHPS rise ≥ 2× current flow StormLifecycleService::watchingSignals
Storm lifecycle Recovery lookback 72 hours StormLifecycleService::recoveringSignal
Storm lifecycle Recovery normalized flow ≤ optimal high × 1.15 StormLifecycleService::flowIsNormalized
Run indicator Lake threshold 55°F RunStateClassifier
Alley Index Calendar window ±15 days, all years IndexPercentileService::WINDOW_DAYS
Alley Index Min pool for percentile 10 days IndexPercentileService::MIN_POOL
Alley Index Excellent band ≥ 90 IndexPercentileService::descriptorFor
Alley Index Good band 70–89 IndexPercentileService::descriptorFor
Alley Index Average band 30–69 IndexPercentileService::descriptorFor
Alley Index Poor band 10–29 IndexPercentileService::descriptorFor
Alley Index Blown band 0–9 IndexPercentileService::descriptorFor
Forecast verify Snapshot time Daily 05:15 ET routes/console.php
Optimal zone Empirical promotion threshold ≥ 20 Good reports RiverFlowStatistics
Stats engine Window 3 years RiverFlowStatistics
Stats engine Outlier removal 3× IQR on log-flow RiverFlowStatistics
Stats engine Histogram bins 20 (log-space) RiverFlowStatistics
Genius Level — every figure on this page comes from a live query. Page reload = data refresh.

Scan to visit

Steelhead Almanac QR Code

SteelHead Addiction

steelheadalmanac.com