Methodology
How our prediction engine works
No black box. Exactly how every pick is generated: the two ratings the model is built on, the scoreline grid they produce, the rule that turns it into up to three picks, and what the record does and does not prove.
01
Two numbers per team, and only two
The engine is a fitted statistical model, not a language model asked for an opinion. It runs the same arithmetic on a Premier League Saturday and a Segunda Division midweek game.
Every team carries two ratings, attack and defence, fitted on its match history and adjusted for how strong the opponents actually were. Four goals against the division's best defence and four against its worst are not the same evidence, and the adjustment is what separates them.
Those two are what is left after a real search. 75 candidate inputs were built for every fixture and tested: raw form, home and away splits, head to head, rest days, fixture congestion, difficulty of the next three games. The fit kept exactly two, opponent-adjusted attack and opponent-adjusted defence. Everything else was dropped for adding nothing on top of them. That is not a shortcut, it is the result, and we would rather publish the two that earned their place than a dashboard of inputs that do no work.
Nothing about the ratings is frozen. They are refitted from every finished match at the start of every scoring run, twice a day, so they cannot go stale between weekends and a result from Saturday is already in the numbers by Sunday.
The price on a card is the median across the bookmakers covering that market, so one outlier cannot drag the number.
We still pull each team's recent results, the head-to-head record and the live league table, and put them on the match page beside the pick. They do not feed the model. They are there so you can check it.
Competitions the engine is set up for: Premier League, Championship, La Liga, Segunda Division, Bundesliga, 2. Bundesliga, Serie A, Serie B, Ligue 1, Ligue 2, Eredivisie, Primeira Liga, Scottish Premiership, Brasileirao, MLS, Champions League and Europa League. Not all of them are in season at once, and each daily run only scores the ones with fixtures on the board. Fixtures load daily, ratings and odds refresh twice a day.
02
From ratings to a scoreline grid
The two ratings give an expected goals figure for each side, shrunk toward the scoring level of the league the game is in. Those become a probability for every plausible scoreline, and that grid is the whole prediction. Every market is read straight off it by adding up the cells that would win the bet.
Up to three cards publish on a fixture: a Match Result card, a Goals line, and a third card that rotates between the remaining markets.
Every card is guaranteed to agree with the scoreline we print. Not usually, always: no card is published that would lose on that scoreline. So you will never read that we make it 1-1 next to a home win tip, or a one-goal scoreline next to Over 1.5. Agreement is enforced, not hoped for.
The printed scoreline is anchored on the model's expected goals: it starts from the expected total, rounded, and the most likely split of it. It is our working, not a bet, which is why it is not one of the cards.
03
Confidence, and where the number comes from
Each card carries a confidence score from 1 to 10 with a traffic-light dot: 8 to 10 green, 5 to 7 amber, below 5 red.
It is not a mood. It is the model's own probability for that selection, mapped onto the 1 to 10 scale, so a 9 means the grid really does give that pick a high chance of landing and a 3 means it does not. Nothing about the score is written by hand.
Because the number comes from the probability rather than the price, a short price does not buy confidence and a long price does not lose it. What you should read into a 4 out of 10 is exactly what it says: the model is not convinced.
04
The top pick on a match
A match publishes up to three cards. At most one is flagged as that match's top pick: the card that stands out most against what its market usually shows in the model's own numbers. It is not simply the most probable card and it is not a judgement on the price. It is finalised once bookmaker prices are in, the shortest card priced under 1.25 is never the top pick, and it is the only card that enters the tracked top-pick record.
Never more than one per match, decided by that rule every single day. There is no manual override, and the database physically refuses to store a second one.
Match Result can land on a home win, an away win, the draw, or a Double Chance, which covers two of the three outcomes.
05
Free access
Every match is scored by the same model, and every match is open.
Every pick is free while we roll the new engine out across all our leagues. The full record is on the stats page and the whole picks log is downloadable, so you can judge it before anyone asks you for money. Premium (every match unlocked plus the Daily Acca) goes on sale once the rollout is complete.
06
The Daily Acca
One slip a day, built from that day's picks in any market rather than from one pet market.
A leg has to earn its place: confidence of 7 or better, a price of 1.30 or better, and only one leg per match, because two markets on the same game are correlated and most books will not accept them together anyway.
Legs are ranked by confidence, then by price, and the slip runs two or three of them. If fewer than 2 picks qualify, there is no slip that day. We would rather post nothing than pad a slip to fill a slot.
Every leg has to be at least 30 minutes from kickoff when the slip publishes, so it is always a slip you could actually have placed.
Once published, it is locked. It is not rebuilt or quietly swapped later in the day. Settlement is what a book would do: any losing leg loses the slip, and a pushed leg, one that returns the stake rather than winning or losing, drops out of the price while the rest decide it.
07
What can still change, and what never does
A pick is not frozen the second it appears, and we are not going to tell you it is. Every unplayed fixture inside the model's three-day window is scored again on every run, twice a day. The ratings are refitted each time, so a Saturday result genuinely changes what the model thinks about Tuesday, and the selection, the scoreline and the confidence score can all move between the first publication and the last scoring run before kickoff. What you see on a match page is the model's current view, not a relic of when the fixture first loaded.
Once a result is graded, the scorer skips that row, so the engine does not re-pick or remove a settled pick. Corrections are rare and made by hand when a result was graded against the wrong match; replaced and postponed cards are marked, not deleted. Losses stay up as they landed.
Odds move as well. They refresh twice a day to the current median, so the price on the card is the market's latest read rather than the price at the moment the pick was made. Always check the live price at your book before betting.
08
What the record actually says
Current engine (v9), since 1 August 2026: 1,894 settled top picks at 68.3%, and 5,743 settled cards at 64.3%. The stats page breaks this record down by month, league and market, and its complete log is downloadable as a CSV so you can recompute any figure.
Picks from the previous engine and earlier replays of past seasons are not part of this record.
The engine is currently scoring 17 competitions with fixtures on the board, and is updated as new data becomes available. Model parameters may be adjusted between seasons. Picks are for informational purposes only. Never bet more than you can afford to lose. 18+ only. Past performance does not guarantee future results.