From results to a probability, in four stages
They run in this order every time. No stage has a manual override — nobody at TipsterGrid edits a number for a particular match.
-
Recent form, weighted
Each club is rated on its 15 most recent completed matches. The latest match counts in full and every older one counts roughly 10% less than the match after it, so last weekend outweighs last winter. When expected-goals data covers at least 60% of that weighted window, we rate the club on expected goals; when coverage falls short, we use real goals scored and conceded instead. Finally every rating is pulled toward the competition’s average scoring level — strongly when the club has played only a few matches, lightly when it has played many — because a handful of results is thin evidence.
-
A probability for every scoreline
The two clubs’ attacking and defensive ratings turn into an expected-goals rate for each side. Those rates feed a Poisson model with the Dixon-Coles correction, which adjusts the goalless draw, the two 1-0 results and the 1-1 draw — the low-scoring outcomes that a pure Poisson model systematically misprices. What comes out is a grid of 121 scorelines, from 0-0 up to 10-10, each with its own probability, all summing to one.
-
Every market from one grid
Home win, draw and away win are three regions of the grid. Over 2.5 goals is every cell with a combined score of three or more. Both teams to score is every cell where each side has at least one. Correct score is one cell on its own. Double chance, handicaps and goal lines are further regroupings of the same cells. That single source is why our markets stay consistent with each other: they are all slices of one distribution.
-
A market check on 1X2 only
For fixtures where we hold bookmaker prices, we take the median price for home, draw and away across every bookmaker quoting all three, remove the margin (convert each price to a probability, then scale the three to total 100%), and combine that with our own number at 25% model, 75% market. We weight the market heavily on purpose: it aggregates a lot of money and information, and our model earns its place as a second opinion on the price, not as a replacement for it. This adjustment is applied to 1X2 alone. The goal-line, BTTS and exact-score figures come straight from the grid with no market input.
Confidence grades A, B and C
The letter describes the quality of the inputs behind a prediction — not how likely the pick is to win.
Grade A
Both teams are rated on expected goals. The model is working from its best available input on each side.
Grade B
One side is rated on expected goals, the other on actual goals only.
Grade C
Neither side has expected-goals coverage, so both ratings come from goals alone. We still price the match and still show it — with the lower grade in plain view.
A C grade is not a forecast of failure. It tells you the estimate rests on final scores rather than on the chances behind them, so treat it with a little more caution. On value bets, A and B fixtures are ranked above C ones for that reason.
Known blind spots
These gaps are design decisions, not items on a to-do list.
- Team news does not change the numbers. The model learns from scorelines, xG and bookmaker prices only. Confirmed line-ups and absences appear on the match page when our data feed has them, but no probability on that page reacts to them.
- Nothing is updated during a match. All figures are pre-match and come from the final run before kick-off.
- No season simulations. We publish no title, top-four, promotion or relegation odds, because we do not simulate whole seasons.
- New and rebuilt squads are the weak point. A newly promoted club in its first weeks, or a team that changed half its starters in one window, has a form record that has not filled up yet. The confidence grade flags that.
- A probability is not a promise. If we say 62%, we expect it to happen about six times in ten — which also means about four failures in ten.
Update schedule and page lifetime
The full pipeline runs twice daily. New fixtures, results and price snapshots arrive, ratings are recalculated, and every page whose figures moved is regenerated. The “Updated” stamp under each page title tells you when its content last changed.
A match page goes live up to 7 days ahead of kick-off and stays on the site for 365 days after full time, then it is retired. So an old match link can stop working, and the set of pages listed in our site index shifts from one run to the next.
Competitions covered
Exactly 5, each priced in full. We do not pad the list with competitions the model cannot rate properly.
We chose a narrow, deep scope. Ratings only become meaningful once the same clubs have met each other over a couple of seasons, and each competition we add is another one whose calibration we have to report. We are willing to be judged on all 5 of them.
Where to go next
The accuracy page attaches numbers to everything above — results across five leagues and three seasons, including where the model missed — and explains why a “99% accurate” claim should make you suspicious. For the formulas themselves, see the maths page.