BitePattern is a measuring instrument, not an oracle. This page explains exactly what it does, how it reaches its answers, and where it stops. If you are the sort of angler who wants to know what is under the bonnet before paying for something, this is that page.
The session is the unit of effort
Everything starts with a trip: a mark, a start time, an end time, and whatever you caught in between.
That framing matters more than it sounds. It means every result is expressed as fish per hour of effort, not fish per trip. A mark you have fished six times is directly comparable to one you have fished forty. An hour snatched before work is comparable to a full day.
And it means a trip where you caught nothing is a complete, valid record — not a failure, and not something to leave out.
A blank is data
This is the part most fishing apps get wrong, because it is the part that does not photograph well.
If you only log the days you caught fish, the app sees *”pushing tide, barometer rising, six fish”* and has nothing to weigh it against. Every condition you ever fished in looks productive, because you only recorded the productive ones.
Log the pushing tide that produced nothing, and suddenly the difference between those two days carries information. Contrast is what makes a pattern visible. Without your blanks, there is no pattern to find — only a scrapbook.
One row per fish, not a tally
Most logs record a trip and attach the weather to it. BitePattern records every fish individually, with its own timestamp and its own position, and attaches the conditions to each one separately.
That single schema decision is what allows the app to answer questions a trip-level log structurally cannot:
- Did your kob come in the last hour before high water, or scattered through the ebb?
- Were the bigger fish earlier or later in the session?
- What was actually on the hook when the run started?
Bait is recorded as a timed event, not a field. A bait is in the water from the moment you log it until you change it, so the analysis knows what you were fishing with when each fish came.
Exact position and exact time are sacred
Every environmental figure the app holds is a deterministic function of two things: where you were, and when.
Everything else — tide state, wind relative to your beach, swell, sea temperature, light, moon — is calculated from those two. Which has an important consequence: because they are calculated rather than typed in, your entire history can be recomputed whenever the underlying science or data source improves. Nothing is frozen at the moment you logged it.
It is also why the app asks for precise GPS rather than a place name. A position that is roughly right produces conditions that are confidently wrong.
Wind only means something relative to your beach
“South-wester at 15 knots” tells you nothing on its own. The same wind is a gift at one mark and unfishable at the one around the headland.
So BitePattern asks, once per mark, which direction the shoreline faces. It then converts every raw wind reading into the only number that matters: how far off dead onshore the wind is.
If you have not set that bearing, the app does not rate wind at that mark at all, and tells you so. A guessed bearing would silently poison every wind conclusion you ever drew there. We would rather show you nothing than something invented.
What it measures
At the midpoint of each trip, and again at each individual catch:
- Tide phase and direction, and hours to the next high and low
- Barometric trend over three hours — not absolute pressure, because the change is what fish respond to
- Wind speed, and wind direction relative to your shoreline
- Swell height, period and direction
- Sea surface temperature
- Light class — dawn, dusk, dark or day, from the sun’s actual altitude
- Moon phase and illumination
- Day of year, for seasonality
How the matching works
When you ask about a coming day, the app builds the same condition vector for each forecast hour that it built for every trip you have ever logged. It then finds the five nearest past sessions by weighted distance across those variables, and reports what actually happened on those days.
Two details are worth knowing:
The same code computes both sides. History and forecast run through identical functions. If the two were calculated differently — even slightly — similarity between them would be meaningless. This is the load-bearing rule of the whole system.
It refuses bad matches rather than fudging them. If the nearest available reading is more than 90 minutes from the time in question, the app discards it instead of stretching it to fit. If too few variables overlap to make a fair comparison, it returns no answer at all.
A window is a run of consecutive hours that score well. Swell over four metres marks an hour unfishable regardless of everything else.
It tells you when it does not know
This is the part we are most proud of, and it is the opposite of how forecast features are usually sold.
Under 3 trips — generic. You get textbook heuristics, clearly labelled as textbook. It is not your pattern, and the app says so rather than dressing up a guess.
3 to 14 trips — lookup. Real comparison against your own nearest matching days, with the expected rate flagged as thin. You can see the actual past sessions behind every answer.
15 trips and up — personal. The app re-learns the weights. It measures how much each variable actually explains the variation in your results, and scales its emphasis accordingly — somewhere between roughly a third and three times the starting assumption. At this point it is describing *your* water, not fishing in general.
You always know which of the three you are looking at. There is no point at which the app quietly pretends to more certainty than it has.
Every answer is traceable
No answer is a black box. Each one names the real trips behind it — the date, the mark, what you caught, how similar the conditions were — and breaks down which factors agreed and which did not.
If the app tells you Saturday morning looks good, you can see the three days it is thinking of and decide for yourself whether you agree.
What it will not do
- It will not promise you fish. Nobody can.
- It will not sell or publish your marks.
- It will not tell you whether it is safe to go to the water. That is your judgement, at the water’s edge.
- It will not check your permits, closed seasons or size limits.
- It will not use a word without explaining it. There is a glossary one tap away from anywhere the jargon appears.
Where the data comes from
Weather, marine and tide data comes from Open-Meteo, used under CC-BY 4.0 and attributed in the app. Tide height is derived from modelled sea level, with the surrounding extremes located and refined to produce phase, direction and hours-to-high.
Everything else — the record itself, and every conclusion drawn from it — is yours, computed from what you logged.