Predicting the hatch before it happens
Predictive AI that scores fishing conditions by comparing live USGS flows, water temp, snowpack and weather against years of historical hatch and fly shop data, for 16 rivers across Montana, Idaho, Wyoming and Canada.





Use case
The user moment
It's Tuesday night and you're going on a 3-day trip to a river you've never fished on Saturday. You check the fly shop report, the USGS gauge, water temp, the weather, and a forum post from 2019. None agree, all the information is fragmented and relative, and none can tell you what to really expect.
Problem
The problem
The information exists, but it's scattered across 8 fly shop reports, USGS streamflow, this year's snowpack, historic reports, hatch timing, water temp and old forums. And all of it is relative. You feel it most when scouting new water you're excited to fish, or planning months ahead, when today's report doesn't help.
Validated
How I validated it
Decided
Decisions I made
What I left out matters as much as what I built.
How it's built
Rules do the scoring. AI explains it.
USGS and Environment Canada flows, snowpack and weather, refreshed on a schedule by background jobs on Cloudflare.
Fly shops overwrite their reports weekly, so I recovered the history from web archive snapshots: 2,154 structured reports. Low-confidence or unattributed ones were dropped, not guessed.
Fishability, hatch timing (adjusted for this year's degree-days) and river rankings are deterministic logic, so they can be tested. 648 automated tests.
Writes the daily river brief and answers guide chat from the report archive. Responses are cached for 6 hours, so AI cost stays flat as traffic grows.
React app on Cloudflare, accounts and data in Supabase, freemium premium tier through Stripe.
Measured
How I measured it
I built this to solve a problem I felt on the water and heard from the anglers closest to me. Because I loved the build and learning the tech, I kept adding features. Next time I'd narrow to the few that actually change a trip decision and launch with only those.