River Check
← All blog entries

River Check: The Origin Story

A brief introduction into how River Check began and the problem it solves

The first version of my daily email a year before River Check
The first version of my daily email a year before River Check
River Check began as a convenience project to solve a simple problem: 

Can I put river flow and weather data on the same page and be emailed a top 10 list every day to make my fishing planning easier?

The first version was a few hundred lines of simple code run as a Google script. My expertise as a software developer was limited, but I did know that I had two things — data from multiple sources and a need to merge it together in an easy-to-understand format. The early version was rough but functional and became a useful tool I used throughout the last fishing season.

This winter I wondered if I could improve on the original concept using the latest AI models. The result is River Check, a complete website which has gone far beyond my early script to nearly 50,000 lines of code.

The idea of vibe coding, where a coder writes code that feels right rather than according to a clearly defined roadmap, applies well to this project. I kept coming up with questions or ideas, refining River Check into a tool that made sense to me as a freshwater angler. Once the basic site was up and running, I was left with another question which AI couldn’t help me answer.

Should I make this available to the wider angling community?

The answer was not easy and, to be honest, I’m still not 100% sure I’ve done the right thing.

Anglers, and fly anglers in particular, are notoriously guarded about their fishing knowledge. For many that extends beyond just access points and favourite honey holes to flies, techniques and even ideal conditions. River Check will never be a substitute for hard-earned knowledge learned over a lifetime of fishing, but it could help anglers better plan their days on the water.

Fearing a load of hate mail if I released a tool which may proffer a slightly easier path to knowledge than that which most anglers have travelled, I was on the fence. Part of my reservation was also selfish. If River Check offers me a slight competitive advantage in finding water that others may have overlooked, then I should probably keep that knowledge to myself. 

It had cost me little more than time, and I enjoyed the project, and there was no commercial motivation beyond covering its costs. Making River Check public was really about whether I wanted to share it so others could also find value in it, something like my giving back to the community.

A few years ago I returned from a long spell abroad and found myself looking for a hobby. I had fished with my grandfather as a child, but nothing for decades. I love the outdoors and my first thought was hunting. But the path to a firearms licence is onerous for a returning expat, so I settled on fishing. I had inherited my grandfather’s fly fishing gear, so I set about a crash course in my backyard and on my local streams. 

How hard can it be? I thought.

Real hard, it turns out.

It took a year before I caught a fish, and even then only with the help of a renowned guide. I’d described myself as a mediocre angler today, but a passionate one.

I’ve always been interested in data, so it wasn’t a big leap to wonder whether I could use it to help my fishing. I’d heard a lot of lore. Fishing is best after a southerly has passed through and the river has a bit of colour, or it’s terrible during an easterly, and so on. These sounded like old wives’ tales, but perhaps there was something to them.

Only one way to find out.

The angler has three tools at their disposal: river flow rates, the weather forecast, and their experience. Forecasts are somewhat obvious at face value, but flows require the latter to interpret, a lesson I’d be reminded of on more than one occasion.

The only thing worse than arriving at a chosen access point to find the river high and muddy is finding it perfect with a car or two already there. The latter can be managed strategically, but understanding what a flow rate means for a specific river was going to take a lot of time and guesswork.

I knew the answer had to be in the data. I just needed to ask the right questions.

Analysing flow data is not an exact science, as rivers colour up for many reasons. Hydrology has many variables to consider, such as the intensity of rainfall, how saturated the soil was before the rain, how large the catchment is, how steep the gullies are and what type of vegetation they are covered by. There is inherent uncertainty in attempting to use flow rate alone to infer river condition.

But was it worth trying at all?

I began by considering what a river looks like when it is settled. That is, when it is how I like to fish it — relatively low and clear.

That number is not always the same. It varies throughout the seasons, so simply looking for an average flow would not be enough. One has to consider average flow over shorter periods and see how the system behaves over a full year. But some years are wetter or drier than others, particularly in freestone systems, so one year alone can’t provide enough data to reliably determine a baseline.

Five years is better. Ten starts to tell a broader story.

But rivers change over time as a result of floods, increasing water extraction, climate change and other human factors. It was becoming clear that the data could get me close, but it would never be a true substitute for standing at the river and looking at it.

But how close is close enough?

I began keeping a diary of every day of fishing and what the conditions were like. After a season I had a collection of ideal flows and others I knew were suitable. From this I could begin to build a simple model of the rivers I fished most frequently that were served by flow gauges.

Then it became a simple matter of writing a script which looked at the flows, compared them to my table of ideal flows, considered the weather and gave me a list of possible options.

Once I picked one and went fishing, I’d update my model with the results. Over time my ideal flows became more accurate and I could begin to see the nuances in different systems and infer how a similar system I wasn’t familiar with might behave.

As time has gone on, my models have improved and I continue to develop new methods for analysing the data, not only to increase confidence in my flow bands but also to add new tools which can answer other questions. But those can wait for another update.

For now, I’m excited to see how others use River Check and hopefully find value in what it can do. It is not a precision instrument, but nor is it a blunt one. It is simply a way to get closer to understanding what is happening before you hit the road.

With rising fuel costs and limited time, anything that helps to minimise wasted opportunities has to be a good thing.