WisePicks turns each fixture into a set of probabilities using two well-established statistical ideas. No magic, no insider information — just public match history and clear, simple maths. The whole model, step by step.
Predictions are estimates, not advice. WisePicks is a fan dashboard, not a betting product. The numbers come from a simple statistical model. They carry real uncertainty and can be wrong. We don't show odds or encourage gambling.
Every national team carries an Elo rating: a single number summarising long-run strength. The same system is used in chess. When a team wins, its rating rises; when it loses, the rating falls — and beating a strong opponent moves it more than beating a weak one. We also factor in the margin of victory, so a 4–0 counts for more than a 1–0.
We replay roughly 49,000 historical international matches in date order to arrive at each team's current rating. For a home game we add a modest home-advantage bonus; for neutral World Cup venues we don't.
The rating gap between two teams tells us who's favoured, but fans want scorelines. The Dixon–Coles model converts the gap into an expected number of goals for each side, then treats goals as a (lightly adjusted) Poisson process to build a grid of every plausible scoreline and its probability.
The “Dixon–Coles” part is a small correction that nudges the low-scoring results (0–0, 1–0, 0–1, 1–1) to match what really happens in football, where tight games cluster more than pure independence would predict. Summing that grid gives us win / draw / loss chances, a full distribution of scorelines, and over/under totals — all from one consistent source, so the numbers never contradict each other.
What we put forward as our call is the outcome — win, draw or loss — and its probability, not a single predicted scoreline. A lone most-likely scoreline is right only about one in nine, and in a knockout it can't even be the final word (those go to extra time and penalties) — so we don't predict or grade an exact score. The scoreline grid still powers the goal totals and the match simulator underneath, but the number we stand behind, and the only thing we grade ourselves on, is the outcome.
Confidence blends two things: how clearly the ratings separate the teams (a big gap → more confident), and how much match history backs each rating (thin history → less confident). A coin-flip fixture, or one involving a team we know little about, honestly reports low confidence.
Upset risk looks at how close the contest projects to be. A strong, clear favourite that's also unlikely to draw is stable; a near coin-flip is high upset risk. It is a read of volatility, not a tip.
Projected control and tempo are indicative leans we map from the rating gap and the expected goals — not measured possession or shot data. We damp control toward an even split because football is noisy and rarely as one-sided as raw win probability suggests. Treat them as flavour, not fact.
Set pieces decide a meaningful share of World Cup goals, so we now include a small set-piece factor — but we don't have a licensed per-team set-piece feed, so we estimate it from squad height (the FIFA-published heights of each squad's tallest outfield players). It is a rough proxy, not a measurement: height hints at aerial threat but says nothing about timing, delivery, or set-piece coaching. So the effect is deliberately tiny and capped — it leans slightly toward taller squads (a bit more on the defensive side, where the evidence is stronger) and can nudge a prediction by only a point or two, never decide it. We label it as a proxy wherever it appears.
The model also reads recent form — but through the quality of chances, not the scoreline. Our xG-form factor rates each team by the expected goals (xG) it has created and allowed in its recent matches: how good the chances it built were, and how good the ones it conceded were. That's a steadier read of form than raw results, which swing on a single deflection or a hot goalkeeper.
It is derived from StatsBomb's free (open) data, and — because a handful of recent games is a small sample — the estimate is shrunk toward the mean so a short good or bad run can't overstate itself. The adjustment is also Elo-capped: it can only nudge a team's effective rating within tight bounds, so form refines the call, never overrides the long-run strength picture. We credit the source and note that the non-commercial raw dataset isn't redistributed with the site.
The plain-English summary on each match is generated from the model's real numbers plus general, well-known team identity. It is labelled AI-generated wherever a language model wrote it, and falls back to a deterministic template when no model is configured. A strict guard discards any draft that invents current injuries, lineups, form, or stats we never supplied — so it states only what we actually know.
Because of all this, any single match can defy the model. That uncertainty is the whole point of watching. These numbers are for fun and context — they are not advice, and WisePicks is not a betting product.
A knockout tie can't end level, so for those rounds we add one extra read: each side's chance to advance. We take the same 90-minute model and fold in a conservative extra-time layer and a near-random penalty shootout — modelled as a coin flip with only a small lean toward the stronger side, and capped so it can never read as more than a 60/40 call. We don't have per-team penalty or goalkeeper data, so we don't pretend to predict shootouts: the advance figure is shown with that uncertainty, and the deeper a tie is likely to go, the more of it rests on a coin flip. Our core call stays the 90-minute regulation result; the advance figure sits beside it, never replacing it.
The first time we see a match before kickoff, we lock the model's prediction — the win/draw/loss chances, the confidence and the full scoreline distribution underneath — and never change it. The call we put forward is the outcome (win, draw or loss), not a single scoreline. Once the match finishes, the Results section shows that locked pre-match call against the real final result and a verdict: did we call the right outcome? That outcome — not any exact score — is the one thing we grade. A running tally keeps us honest over the day.
For clarity on what is being graded: the locked, track-record call is the output of the core model — Elo + Dixon–Coles — plus the small set-piece and xG-form factors. The extra context you may see in a match's deep-view read (player-availability notes, weather, and the AI tactical summary) refines only that on-page read; it does not feed the graded number.
We only ever grade against a real result from the live feed. If a match has finished but no football-data key is connected, we say “result pending” rather than invent a score — and a single match never validates or breaks a model either way.
The model can genuinely call a draw: if the most likely single outcome is a level result, “Draw” is the call we lock, and we grade it the same as any other.
A knockout is graded on two ledgers. The headline is the advance call: a card that says “X to win” is read as winning the tie, so we grade whether the side we favoured pre-kickoff actually advanced — extra time and the shootout folded in. That favoured side is derived only from the locked pre-match numbers (our win-probability lean, with the draw broken toward the stronger side), so it is never hindsight. Alongside it we keep the 90-minute ledger: a knockout that went long was level after 90 minutes, so on this ledger it grades as a draw at 90′ — a hit only if we called a draw. The 90-minute ledger is what our historical backtest reports (it has no extra-time data, so that number is 90-minute only). We never claim to have called a shootout — it is close to a coin flip, shown as context. An awarded (forfeit) result is shown but never graded, because it was never played out on the pitch.
An open page updates itself roughly every 45 seconds — no manual refresh. Statuses flip from upcoming to live to full-time as the real clock passes kickoff, and real scores appear when a football-data key is configured.
Honest caveat: on the free football-data tier, in-play scores can be delayed, so a live score may lag the broadcast by a little. Final results are reliable. With no key connected, we show the real status instead of a score and never fabricate one.