Context
The client had spent thirty years around tennis. He knew the players, the surfaces, how a match turns, which patterns hold and which are stories people tell afterwards. He wanted to bet on it properly.
What he did not have was any way to act on it. It was all in his head — the kind of knowledge that produces a confident opinion about a match and nothing you can repeat, test, or hand to anybody else.
That is the problem in most of the businesses on this site, wearing different clothes. The expertise is real and it is trapped in one person.
Diagnosis
The instinct here is to write the rules down and automate them. That is usually where it dies. The rules are approximate, they contradict each other at the edges, and nobody can say which of them are actually carrying the result.
So the job was not to capture his system. It was to get every belief out of him — including the ones he could not justify — and then find out which of them survived contact with thirty years of results. Several did not. That is the useful part.
Two things also had to be true before any of it was worth building:
- The edge had to be against a real price, not against a feeling. That meant pricing every position point by point during the match and comparing it to what the market was actually offering at that second.
- It had to be readable while running. A system you cannot read is a system you cannot correct.
Decisions
Knowledge out first, model second. Everything he knew was extracted and written down before any modelling happened. This is the step most projects skip, and it decides whether the model has anything worth learning from.
Thirty years of match data behind it. Enough history to test the patterns across different eras, surfaces and generations of player, rather than fitting them to one good season.
Around three million combinations tested. Not one model with an opinion — a very large search for the version that still worked when the data changed underneath it. Almost all of those three million were thrown away. That is what the number is for.
Separate models for the men’s and women’s tours. They do not behave the same way, and one model pretending otherwise is how a system looks fine while quietly losing money on half its volume.
Priced live, point by point, against the real market. The system takes a position only where its own number and the market’s number disagree by enough to pay for the risk.
A paper account running beside the live one, so results can always be read against something rather than judged on memory.
Results
Backtested across 322 bets, both tours.
| | ATP | WTA | WTA with the language-model filter | | --- | --- | --- | --- | | Bets | 171 | 151 | 140 | | Win rate | 78.9% | 78.8% | 75.7% | | Return, flat staking | +12.4% | +11.7% | — | | Return, quarter-Kelly | +17.5% | +19.3% | +21.7% | | Maximum drawdown | 47.5% | 33.8% | 36.2% |
The most useful column is the last one, and it is counterintuitive. Adding a language model as a filter on the women’s tour made the system take eleven fewer bets. The win rate went down by three points. The return went up by more than two.
It was not trying to be right more often. It was declining the positions that looked fine and paid badly, and keeping the ones the market had mispriced.
That is the same argument this practice makes everywhere else — the cheapest lead can cost the most, and every account has a number that looks excellent and is quietly the problem. Here it is demonstrated in a market that settles every position within hours and does not let anyone tell a story about it afterwards.
The drawdown figures are published on purpose. A system that shows you 21.7% and not the 36% it went through to get there has not been described honestly.
What was different about this one
I built this one myself. On every other engagement on this site the client’s team does the hands-on work, because they do it every day and they cost less than me — and because that is the only version where the change survives me leaving.
Here there was no team. There was one man with thirty years in his head and nobody to hand it to. So the build was mine: the models, the data, the search, the live pricing, the execution, the hedging.
Worth saying plainly, because it is the exception rather than the rule, and because the distinction matters when you are deciding what to ask me for.