← Field Notes
1 August 2026

The engine scores a day. Days are the wrong unit.

Five trips, five different waters, five unrelated mechanisms — and every report says the same thing about the way the score is built. The fifth one isn't even about the weather.

The Fishability Index Engine returns one number for one day. Eighty-nine. A tier. Go, or Wait, or Outside Edge.

Five trips in, every report that has come back says the same thing about that design, and not one of them was trying to.

Five reports, one complaint

Five waters. Five species. Five completely unrelated causes.

And in every case the honest answer wasn't a number for the day. It was a number for part of the day, and a different number for the rest of it.

They look like five problems. They're one.

It's tempting to fix these individually. Add a clarity input. Add a tide input. Add a shade calculation. Add something about thermal wind.

That would be four features solving the same problem badly — and it still wouldn't touch the fifth.

The actual fault is upstream of all of them: a day is not a thing that has a quality. A day is a container. Inside it are windows where the fishing is good, and long stretches where it isn't, and the engine's entire output collapses that into a single average nobody experiences.

Nobody fishes an average. They fish 05:00 to 08:00.

Most of it is arithmetic

If the answer were "fishing is unknowable, go and find out," there would be nothing to build. But look at what actually closed those windows:

Sun angle. Where the sun sits on a given date, at a given latitude, at a given hour is arithmetic. Not a forecast — a calculation, exact to the minute.

Tide. Slack water at Deception Pass on any date is published astronomy. The times are known years out.

Thermal wind. Columbia Basin wind is lightest at dawn and builds through the afternoon, for reasons of physics that repeat every clear summer day.

Water clarity. Partly derivable from wind, runoff, and season — and clarity determines how deep light gets, which is the same variable as sun angle wearing a different coat.

None of these are mysteries. Three of them are more predictable than the weather the engine already models. The engine simply asked the wrong question: how good is this day, rather than when, in this day, is it good.

And then there's the fifth one

Lind Coulee didn't end because of light, or tide, or the fish shutting off. It ended because of the two people in the boat.

The wind helped, but it also made the day a challenge — just boat control and comfort. Wind wears you out.

That sentence breaks something. The engine scores wind once, as a net quantity. On that day it scored it positive, and for the walleye it was — broken surface, less light, bait pushed onto structure, a free controlled drift. Every bit of that was correct.

For the anglers, the same wind was spray, steering, and steady attrition. Both things are true at once, and one number can only carry one of them. It carried the fish side and quietly discarded the human side — which turned out to be the side that decided when everyone went home.

There is even a slot for this already: a module for how hard the day will be on you and the boat. But it scores that as a fixed quality of the day. Fatigue isn't a level. It's a total. It accumulates over hours on the water and eventually crosses a line where you reel in whether they're biting or not.

Which makes the fault structural, not a missing feature

Four of these windows closed for environmental reasons a model can compute. One closed because a person got tired.

That is the part worth sitting with. If all five failures had the same shape, this would be a gap in the weather modelling — annoying, tractable, bolt on another module. They don't have the same shape. Light, astronomy, physics, water chemistry and human endurance are not the same kind of thing, and every one of them produced the identical failure: a score that described a day correctly and an angler's actual day incorrectly.

You cannot fix that by adding inputs. The unit is wrong.

And it points at a second gap sitting alongside the first. To know when a day is good, the engine needs sun, tide and wind. To know when your day is good, it also has to know something about you — your boat, your tolerance, how long you'll genuinely stay out in a twenty-knot chop. At the moment it knows neither.

What one angler said better than the model

The most useful sentence anyone has sent this project came after a hot, tough afternoon:

It would have been best to fish 04:30 to 11:00, go home and take a nap, then return 18:00 to 21:30. We would have caught roughly the same number of fish.

That is the correct output. Two windows and a nap. Same catch, half the time on the water, and none of it spent in the heat learning what he already suspected.

No single score can say that. It isn't that the number was wrong — an 83 was a perfectly fair description of that Friday. It's that the number was answering a question no angler actually asks.

Why this is published rather than quietly fixed

This would ordinarily be a line in a release note. Internal finding, addressed in the next version, nobody the wiser.

Publishing it is better, and not out of humility. A trip report is only worth reading if it can say the engine was wrong. If the only outcomes that ever get posted are the ones where the score looks clever, then none of them mean anything — and no angler with any sense would trust a scoring system that has never publicly missed.

So: the engine scores a day. Days are the wrong unit. It is the largest known fault in the thing, it was found by going fishing and writing down what happened, and fixing it is the next real piece of work.

Fish Smarter. Trek Farther. Live Outside the Lines.