No tips, no subscriptions, no pre-match selections. One number, updated every ball, with the test behind it published in full.
After each ball the model is handed the state of the match and asked one question: from here, what is the probability the batting side wins? The inputs are the things a watching analyst would use:
The model is trained on ball-by-ball data from 2017 to 2024. It is then scored on 2,546 matches from 2025-26 that were not available to it during training — 19,340 predictions, 81.5% correct.
The split is by date rather than at random for a specific reason. A random split lets matches from the same season sit on both sides of the line, and the model quietly learns that season's scoring conditions. Splitting by date removes that, and the number drops to something honest. The full breakdown, including the calibration table, is here.
Before the first ball there is little beyond team strength and the toss, and the edge there is thin enough that publishing a confident number would be dishonest. The model is a live model. It has something to say once a game is underway.
There is no Hawk-Eye, no ball speed, no swing or spin measurement in the feeds available at this scale — only what happened to each delivery. That limit is real. Some questions, such as whether a wicket falls in one particular over, turn out to be close to unpredictable from outcome data: a properly trained model on 33,818 examples beat simply quoting the average by about one percentage point. Where that is true we say so rather than dressing up a number.
A probability is not a price. A bookmaker's price contains a margin and the weight of money staked; ours contains neither. The two are not interchangeable and we do not present them as though they are.
A well-calibrated 68% is supposed to be wrong about a third of the time. If every 68% call came in, the model would be badly under-confident rather than good. That is why the calibration table matters more than any single match, and why one match is never enough to judge a probability.
The number earns its keep at the moments the scoreboard is ambiguous — early in a chase, or when the run rate and the wickets in hand point in opposite directions. When a side needs 20 off 30 with eight wickets standing, everyone watching already knows; a percentage adds nothing there, and we would rather it stayed out of the way.