Back to Blog
mathematics poisson football analytics architecture

How the Poisson Distribution Predicts Football Scores (And Why BetSignal Moved Beyond It)

BetSignal Team ·

Poisson models are the workhorse of early football analytics. They turn team strength ratings into full probability distributions over every possible scoreline and, from there, into prices for 1X2, Over/Under, BTTS, and Double Chance markets.

BetSignal used to lean on a large Poisson engine for its edge detection. As of March 2026 we have intentionally removed that engine and now rely on a Claude-based forecasting pipeline instead. This article keeps the useful part - understanding Poisson - and is explicit about where our production system has moved on.

1. The core Poisson idea

The Poisson distribution gives the probability of seeing exactly (k) events in a fixed interval when you expect ( \lambda ) events on average:

\[ P(k) = \frac{e^{-\lambda} \lambda^k}{k!} \]

For football, the “events” are goals. If you can estimate how many goals a team is expected to score, Poisson tells you the probability of 0, 1, 2, 3, … goals.

If Team A has expected goals ( \lambda = 1.5 ):

  • P(0 goals) ≈ 22.3%
  • P(1 goal) ≈ 33.5%
  • P(2 goals) ≈ 25.1%
  • P(3 goals) ≈ 12.6%
  • P(4+ goals) ≈ 6.5%

Do this for both teams and you can construct a probability for every scoreline: 0–0, 1–0, 1–1, 2–1, and so on.

2. From team strength to expected goals

A practical Poisson model lives or dies on its estimate of ( \lambda ). A common recipe is:

  • League baselines - e.g. average home goals and away goals per game in the league.
  • Attack strength - how many goals a team scores relative to the league.
  • Defence strength - how many it concedes relative to the league.

For example:

  • Attack strength = team goals scored ÷ league average goals scored.
  • Defence strength = team goals conceded ÷ league average goals conceded.

Then:

  • Expected home goals = home attack strength × away defence strength × league average home goals.
  • Expected away goals = away attack strength × home defence strength × league average away goals.

Those two expected goal numbers feed the Poisson formula and give you a full distribution over scorelines for each team.

3. Turning scorelines into markets

Once you have probabilities for scorelines, you can aggregate them into market-level probabilities:

  • Match Result (1X2) - sum probabilities of all scorelines where the home team wins, where it’s a draw, and where the away team wins.
  • Over/Under 2.5 Goals - sum scorelines with 3+ goals for Over 2.5, and 0–2 goals for Under 2.5.
  • Both Teams To Score (BTTS) - sum scorelines where both teams score at least once versus those where at least one is on zero.
  • Double Chance - combine relevant buckets, e.g. Home or Draw, Away or Draw, Home or Away.

Once you have your own probabilities for these markets, you can compare them to bookmaker implied probabilities (1 / decimal odds) and identify where the odds are mispriced.

That basic “model vs market” comparison is the foundation of value betting.

4. Where Poisson breaks down in practice

Poisson is elegant, fast, and explainable. It is also built on assumptions that are only approximately true:

  • Independence and stationarity - it treats goals as independent events with a constant rate. Real matches have game states (1–0, 2–0, red cards, late pushes) that change how teams play.
  • Limited context - classic implementations only see goals for and against, not tactical matchups, injuries, schedule congestion, or qualitative factors.
  • Calibration drift - naive Poisson models are often overconfident in certain ranges (e.g. big favourites) and underconfident in others, unless you do careful calibration work.

In BetSignal’s previous architecture, we had a full Poisson stack plus a second layer to dampen its edges, add caveats, and try to reconcile it with qualitative signals. That complexity proved fragile and, worse, occasionally produced numbers that looked precise but were directionally wrong.

5. Why BetSignal moved to Claude-based forecasting

In March 2026 we removed the internal Poisson prediction engine entirely. The current production flow looks like this:

  • We gather structured match data: recent form, scoring distributions, head-to-head scores, league context, and live odds.
  • We build a prompt that exposes that data to Claude and ask for a probability_estimates block plus a small set of trackable_picks (concrete bets settleable from the final score).
  • Claude returns probabilities for the same core markets Poisson used to power (1X2, Over/Under 2.5, BTTS, Double Chance), along with expected goals, suggested selections, confidence levels, and a risk assessment.
  • We write those probabilities and picks into the database and the app surfaces only the highest-quality selections.

Two things matter here:

  • We still need probabilities that behave like a good model (well calibrated over time, consistent across markets).
  • We are no longer constrained to the rigid structure and assumptions of Poisson - Claude can reason about context, matchup quirks, and qualitative signals directly.

The Poisson concepts you’ve just seen remain useful mental models and are still reflected in the goal-distribution summaries we feed into Claude. They are not the final decision-maker any more.

6. How to think about Poisson now

If you are building your own betting models from scratch, Poisson is still a great starting point:

  • It forces you to think in probabilities, not picks.
  • It makes the link between expected goals and market pricing explicit.
  • It is easy to backtest and calibrate on historical data.

If you are using BetSignal, treat Poisson as background theory, not a description of how the app currently prices matches.

Behind the scenes, BetSignal now:

  • Uses Claude to generate probability estimates from rich match context.
  • Tracks every prediction and its outcome in the database.
  • Uses that history to monitor which markets and pick types are truly robust.
  • Surfaces only a small, high-conviction shortlist each day.

The philosophy is unchanged: find mispriced odds and avoid forcing action. The machinery has evolved past pure Poisson to something that can absorb both numbers and nuance.

Start using BetSignal with the current Claude-based engine →

Ready to see the shortlist?

BetSignal's AI-powered, data-driven engine with self-learning calibration scans 13 competitions (9 leagues + 4 cups) and only shows recommendations where our numbers beat the book. Free tier available.

Get Free Predictions