History of results: https://www.saturday-racing.com/news/pick-winner/honest-record/?tab=today&course=Newmarket%20%28July%29
Most tipping services show you three things: a horse, a price, and a bloke's opinion. Some now offer an "AI pick" — which usually means a black box scored a runner, a template wrote a sentence, and nobody can tell you why. If it wins, the service takes credit. If it loses, the pick quietly disappears from view.
I've built Pick Winner to work differently. Every race goes through a two-stage pipeline. First, five derived signals — distance fit, going fit, class move, mark move, stablemates — score each runner from the raw form. Then those signals feed into an LLM that has to reason its way to a pick, justify a shortlist of four, and stamp its own confidence. It's not the AI making a black-box call, and it's not a human writing prose over a spreadsheet. It's both, in the correct order.
The bigger difference is what happens after the pick is written. Every prediction is versioned at four axes — the algorithm, the prompt, the derived-signal calculator, the underlying model — so you can see exactly which version of the system made every historical call. Every prediction also gets a cryptographic commitment (a Merkle-tree hash) recorded at the moment it's published. The record can't be edited after the fact. If a pick was called at 5/1 on Tuesday morning, that's the number that lives in the ledger, whatever the SP came in at.
The Honest Record shows every race the algo has called — not the curated highlights. Winners, losers, unplaced, withdrawn — every row is there, gradeable and verifiable. Click any settled race and you get the full drill-down: the reasoning verbatim, the four picks with silks, the full field in finish order, the model version that made the call.
I'm still perfecting it. The point of showing the whole ledger, warts and all, is that "perfecting" means something you can actually measure against — not a highlight reel.
I thought I would share any feedback would be welcomed.
The algorithm's core objective is picking the winning horse — position 1, nothing else. But once I had that running, I wanted to see how close it was getting on the misses, so I extended it to also surface picks 2, 3 and 4. The thinking was simple: either find the winner outright, or reduce the field enough that the winner is somewhere in the top 3–4 selections.
I run the algorithm live every day for a month at a time, then take the settled results back into training to see where the score can be lifted. Each round of that becomes a version bump — we're currently on V3.
Pick Winner also acts as a guardrail for the other algorithms (Bet of the Day, Lay of the Day) — they lean on its signals rather than deciding in isolation.
The long game is straightforward: accumulate as much settled data as possible and keep letting the system learn from it.
I hope this helps.
Hi Kenbo,The algorithm's core objective is picking the winning horse — position 1, nothing else. But once I had that running, I wanted to see how close it was getting on the misses, so I extended it to also surface picks 2, 3 and 4. The thinking wa