1. Flow — the live, answerable fact
Every river has a USGS stream gage measuring its flow in cubic feet per second (cfs), updated continuously. Flow is what answers "is the river fishable right now," because it changes how the river fishes:
- Too low: the river is thin and clear, the fish are spooky and crowded into the deeper water. Tough.
- Prime: the river is at the level it fishes best — enough water to spread the fish out and feed them, clear enough to present a fly.
- Too high / blown out: snowmelt or a big dam release has the river fast and off-color (muddy). The fish can't see your fly and you can't safely wade.
The prime cfs range is different for every river — a trickle on one river is a flood on another — so we compare the live flow to each river's own published band, not a single number.
2. Season — when the river is in shape
Dam-fed tailwaters (the Bighorn, Missouri, Green, San Juan, the Colorado at Lees Ferry) run cold and clear year-round, so they fish in every season with peaks around the spring and fall hatches. Freestone rivers (the Gallatin) live and die by snowmelt: they blow out in spring runoff and come into their own from summer into fall. When a river is in its runoff window, we say so plainly: out of season.
3. The bite window — time of day and the moon
On most trout water the best fishing is the first and last hours of light. Solunar theory adds that the bite runs strongest around the new and full moon. It's a tendency, not a promise — flow and the hatch matter much more — so we treat the moon as a gentle modifier on each day's odds, not the headline.
How we turn that into a score
For every river we take the live USGS flow, compare it to that river's fishable-flow band, weight it by the curated season and the moon/solunar bite strength, and produce a 0–100 score with a plain verdict: Low, Fishable, Prime, or Blown. It's a probability, not a promise — see our full methodology.