Which Team Will Win?

How it works

The short version

For each match we build both teams out of the eleven players likely to be on the pitch, work out how many goals each side should expect to score, and turn that into the chance of a home win, a draw or an away win. Then we show our working.

  1. Free, public dataSquads and availability, every player's match-by-match record, results and odds going back a decade.
  2. The elevenWho is actually likely to start — and what each of those eleven has been doing on the pitch lately.
  3. Two sides, weighedAttack against the defence it faces, keeper against the shots he will see, form, rest, congestion.
  4. Goals expectedHow many each side should score, against this opponent, on this day.
  5. Every scorelineThe chance of 1–0, 2–1, 3–3 and the rest, added up into a home win, a draw, an away win.

Eleven players, not two badges

This is the part that makes the site different, so it is worth being clear about. Most public models rate the club: a single number that moves slowly, season to season. We rate the team sheet. Every player carries his own record — what he creates, what gets conceded while he is on, what a keeper saves — weighted towards recent matches, and a thin record is pulled towards what is normal for that position so that one lively cameo cannot turn a substitute into a superstar.

Before team news is out we predict the eleven ourselves, from availability, recent starts and minutes, and the shape the side has been using. Every predicted starter carries a percentage. When the real line-up lands about an hour before kick-off it replaces the prediction, and the card tells you which one you are looking at.

Most models rate the club 1552 One number, moving slowly We rate the team sheet Eleven records, and they change with the team news
The bar under each player stands for his own record — what he creates, what is conceded while he is on the pitch. Three of them missing makes a different side, and the numbers move that day rather than weeks later.

Reading a match card

The chart down the middle compares the two sides stat by stat. A bar grows from the centre towards whichever side is ahead, and a full-length bar means the gap is about as big as that stat ever gets — measured from the real spread across nearly two thousand past matches, not a number picked by eye.

Roughly half the rows are the stats you would expect to see: recent form, goal difference, the same split home and away, expected possession, expected goals. The rest change from match to match. Those are the measures that most separate these two sides, and the one at the top is the single stat most likely to decide it — flagged when it points away from our own call, which is the most interesting thing a card can tell you.

Home win Away win Our call How far past the doubt the call has travelled The draw zone — as wide as a draw is likely in this match
A call that stops inside the middle band means the model cannot separate the two sides — it may still lean one way, and you can see by how much. Outside it, the further out, the more confident the call.

Where the numbers come from

Everything is free and public: the official Fantasy Premier League feed for squads, availability and per-player match stats; football-data.co.uk for results and bookmakers' odds back to 2015-16; BBC Sport for confirmed line-ups and per-match possession, passing and expected goals. Nothing is bought, and no single source is load-bearing — if one breaks, the rest still produce a prediction.

From players to probabilities

The two sides' figures go into a scoreline model: rather than guessing at a result, it works out how many goals each side should expect, then the likelihood of every plausible score — 1–0, 2–1, 3–3 and the rest. Add up the scorelines where the home side finishes ahead and that is the home win probability. It carries a correction for something the raw arithmetic gets wrong: real football produces rather more tight, low-scoring draws than chance alone would suggest.

The model also knows each side's full calendar. Cup and European matches count towards rest and congestion, playing midweek before a league game is a signal in its own right, and so is how many of the eleven have changed since the last match.

The probabilities are published exactly as the model produces them, with no cosmetic layer on top. We tested one and found the raw output already honest — when we say 60% it happens about 60% of the time — so the extra layer only added noise. If that ever stops being true, the chart on the track record page will show it before we do.

What separates them

This is the oldest idea in the project. Take every stat and set it against its opposite number, then weigh those measures in combination as well as on their own. That gives a large field of candidate comparisons. Score each one on how well it has actually told winners from losers — never on the match we are about to predict, only on matches already played — and keep the strongest for the two sides in question.

The score you see is the plain reading: of the matches where one side was ahead on that measure, how often that side went on to win. Which measures get combined, and how, is the part we keep to ourselves.

One honest note about what this layer does. We tested whether it should move the probability itself, and over four seasons it made no measurable difference — so it does not. The published number comes from the model above; this layer does the explaining, and chooses which stats are worth your attention for each match.

The match notes

No AI writes any part of this site. The notes are built straight from the numbers behind the chart: the call and its probabilities, the biggest gaps each way, the form with a note on where that form was actually played, who is missing. Each line is one fact with its figures attached, so nothing is asserted that you cannot check against the chart above it.

They are deliberately plain. An earlier version wrote them as paragraphs, and prose assembled by machine either repeats itself across a round of fixtures or reaches for phrasing it cannot quite control. The line for the side we have not tipped is always printed, even when the honest answer is that nothing in the measured stats favours them.

How we grade ourselves

Picking the winner is the easy half. The harder half is being right about how sure to be, and that is what our headline score measures: the distance between the probabilities we published and what actually happened. Always shrugging and saying a third each scores 0.667, so anything below that is doing some work.

0.01We said 90%Bold and right0.20We said 55%Cautious and right0.30We said 55%Cautious and wrong0.81We said 90%Bold and wrong
The cost of one call, four ways. Being bold and right is nearly free; being bold and wrong costs eighty times as much as being bold and right, and nearly three times as much as being wrong after hedging. That is why a model can call more winners than ours and still finish below it.

The same scores are calculated the same way for us, for the bookmakers, and for the stripped-down versions of our own model, so the comparison is fair. The full table is on the track record page.

What this can't do