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 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 over its last ten matches, each adjusted for how strong the opponents in those ten matches 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.

    Where expected goals exist for a finished match, they are blended half and half with the goals actually scored when the ratings are fitted, so one freak finishing night moves a rating less than the scoreline alone would.

    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 model never sees the price. Odds are attached after the pick has been chosen, taken as a median across the bookmakers covering that market so one outlier cannot drag the number. A model that is shown the market tends to agree with the market, and then you are paying for a mirror.

    We still pull each team's last ten 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, Argentina Primera and MLS. 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.

    Three cards publish on every fixture, always: Match Result, a Goals line and Both Teams to Score. There is no branch where a game gets no pick.

    Every card is guaranteed to agree with the scoreline we print. Not usually, always: any selection that would have lost on that scoreline is filtered out before the choice is made, on all three cards. 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, and where it costs a fraction of a point of hit rate we pay it.

    Selection takes the longest price that still clears a confidence bar, rather than the single most confident line. The bars are fixed and published: a straight home or away win needs 50%, any other Match Result option needs 62%, and the Goals card needs 55%. Whatever clears its own bar at the longest price is the pick. Taking the most confident line every time instead collapses the whole site onto Over 1.5 and Under 3.5 at around 1.20, which is worth nothing to anyone.

    Straight wins get the lower bar deliberately. A home or away win clears 62% in only about one fixture in six, so on one shared bar the Match Result card would be Double Chance almost every week. The lower bar costs a couple of points of hit rate and buys a card that actually says something.

    Both Teams to Score is close to a coin flip and we say so. It is the one card with no selection rule at all: it follows the printed scoreline, Yes when both teams are on it and No when they are not. It is published on every match, tracked on its own line, and deliberately kept out of the headline number.

    The scoreline itself is the most likely result first, then the most likely score inside that result, rather than the single likeliest cell on the grid. The likeliest single cell is a draw on six fixtures in ten, because draw scores concentrate probability while a win spreads across 1-0, 2-0, 2-1 and the rest, and publishing 1-1 on most of the card would be a poor prediction on its own terms. It is our working, not a bet: an exact score lands roughly one time in eight, 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 calibrated 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

    Each match publishes three cards. The one the model gives the highest probability is flagged as that match's top pick, and it is the only one that enters the tracked top-pick record.

    Exactly 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 at a shorter price for a higher hit rate. Where the card is a straight win, the safer Double Chance version is shown underneath it, so you can take the shorter road if you prefer it.

    05

    Free and premium access

    Every match is scored by the same model. The difference is how many of them you can open.

    Access is granted per match, not per market. A match page is either fully open, all three cards, or fully locked. You never get a teaser card and a paywall on the same fixture.

    Free: complete matches, picked fresh each day in every league we are covering, roughly one in every five and up to three per league, ranked by top-pick confidence. Overnight kickoffs, before 10:00 UK, are never chosen as the free one, so a league whose entire card kicks off overnight can go a day without one. Everything else stays browsable, so you can always see exactly what sits behind the paywall.

    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 2 to 4 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. Hit rate and ROI are tracked publicly on the stats page.

    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.

    The guarantee is at the other end. Once a result is graded, the row is closed: the scorer skips any pick already marked as a win, a loss or a push, so a settled pick is never re-picked, never edited and never deleted. Losses stay up exactly as they landed. That, and only that, is why the numbers on the stats page mean anything.

    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

    Every pick the engine makes is recorded with its result: 7,132 settled top picks at 64.3%, broken down by month, league and market on the stats page. The complete log is downloadable as a CSV so you can recompute any figure we publish rather than taking our word for it.

    The record covers every pick the engine has produced, organised by season. The complete log is downloadable as a CSV with a season column, so you can split it yourself and check any figure we publish against the stats page.

    On the 2026 season the engine made three picks on each of 3,123 fixtures across 17 competitions. Match Result landed 60.3%, Goals 64.2%, and the third card, which rotates to whichever remaining market is priced longest while still clearing our bar, 71.4%. Pooled across all 9,107 picks that is 65.1%. All three landing on the same fixture is a much rarer thing and happened 36.2% of the time, which is the number to look at if you back all three together. On the 531 Match Result picks where we hold the bookmakers' own closing price, the average was 1.79; we do not hold prices for the Goals or third-card picks, so we quote none. The 2025/26 season figure of 72.7% comes from the previous single-pick rules at an average price of 1.32.

    The record is broken down by month, league and market on the stats page, updated as results settle, with the full picks log downloadable as a CSV.

    The engine is currently scoring 15 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.