Poisson Distribution for Football Betting: Build a Score Model
Football is one of the few sports where a simple probability model gets you surprisingly far. Goals are rare, they arrive at a roughly steady rate across a match, and one goal does not make the next one much more likely. That is close to the exact setup the Poisson distribution was built for, which is why it has been the starting point for football models for decades.
This is a working guide, not a theory lecture. By the end you can take two numbers, how many goals each team is expected to score, and turn them into the probability of any scoreline, the over/under, both teams to score, and the match result. Then you put those probabilities next to a sportsbook's odds and see where the price is wrong.
The one input that matters: goal expectancy
Everything starts with expected goals for each team in this specific match. People call it lambda. Call it whatever you like; it is the average number of goals you would expect a team to score if this match were played a thousand times.
Where do you get it? A few common ways:
- Team xG over recent matches, adjusted for the opponent.
- A simple attack and defense rating: league-average goals, times the team's attacking strength, times the opponent's defensive weakness.
- A power rating or Elo-style model that outputs a goal expectancy directly.
For this guide I will use a home side expected to score 1.6 and an away side expected to score 1.1. A mild home favorite, nothing exotic.
The formula
The Poisson probability of a team scoring exactly k goals, given an expectancy of lambda, is:
P(k) = (lambda^k × e^(-lambda)) / k!
That is the whole thing. e is about 2.718, and k! is the factorial (3! = 3 × 2 × 1 = 6). Plug in lambda = 1.6 and you get the chance of the home team scoring 0, 1, 2, 3 goals, and so on.
Here is the home side at 1.6 and the away side at 1.1:
| Goals | Home (1.6) | Away (1.1) |
|---|---|---|
| 0 | 20.2% | 33.3% |
| 1 | 32.3% | 36.6% |
| 2 | 25.8% | 20.1% |
| 3 | 13.8% | 7.4% |
| 4+ | 7.9% | 2.6% |
Already this tells you something. The single most likely number of goals for the home team is 1, not 2, even though their average is 1.6. Averages hide the shape.
Building the score grid
To get a scoreline, you multiply. The two teams' goal counts are treated as independent, so the chance of a 2-1 home win is the chance the home team scores 2 (25.8%) times the chance the away team scores 1 (36.6%), which is about 9.5%.
Do that for every combination and you get a score matrix. The top scorelines for this match:
- 1-1: 11.8%
- 1-0: 10.8%
- 2-1: 9.5%
- 2-0: 8.6%
- 0-0: 6.7%
The most likely single result is a 1-1 draw, just ahead of 1-0. If someone made you call one score, 1-1 is the answer. But predicting one score is a mug's game. The value is in the full distribution.
From the grid to bettable markets
Add up the right cells of the matrix and you have a fair probability for every main market.
Match result (1X2):
- Home win: 49.0% (fair odds 2.04)
- Draw: 24.9% (fair odds 4.02)
- Away win: 26.1% (fair odds 3.83)
Over/under 2.5 goals. A useful shortcut: total goals in the match also follow a Poisson distribution, with lambda equal to 1.6 + 1.1 = 2.7. That gives:
- Over 2.5: 50.6% (fair odds 1.98)
- Under 2.5: 49.4% (fair odds 2.02)
Both teams to score: 1 minus the chance the home team is shut out, times 1 minus the chance the away team is shut out: (1 - 0.202) × (1 - 0.333) = 53.2% (fair odds 1.88).
Fair odds are just 1 divided by the probability. They are the odds with no margin, the price you would need for the bet to break even over the long run.
Where the money actually is
The model earns its keep by disagreeing with the bookmaker.
Say your model puts the home win at 49.0%, so fair odds of 2.04. You check a sportsbook and they are offering 2.20. Their price implies a 45.5% chance; you think it is 49%. That gap is your edge:
EV per $1 staked = 0.49 × (2.20 - 1) - 0.51 = +7.8 cents.
A positive number means a bet worth making, if your goal expectancies are any good. That is the core of value betting: bet only when your fair price beats the book's.
Getting the goal expectancies right is what separates winning bettors from losing ones. A perfect Poisson grid built on lazy inputs just gives you confident wrong answers. Spend your time on lambda, and on finding a book that is slow to move.
In practice, most serious value bettors do not compute lambda by hand for every match. They let a model estimate the fair price, compare it against hundreds of sportsbooks at once, and bet when a soft book is off. That is what a value bet scanner automates: fair price in, mispriced book out.
Where Poisson breaks (read this part)
Plain Poisson is a starting point, not a finished model. It is wrong in specific, knowable ways:
- It assumes goals are independent. They are not. A team that goes 1-0 up changes how both sides play, and game state matters.
- It slightly underrates draws and low scores. Real football has a few more 0-0s and 1-1s than independent Poisson predicts. The usual fix is the Dixon-Coles adjustment, which nudges the low-score cells.
- It ignores everything outside goal expectancy: red cards, injuries, weather, a team resting players before a cup tie.
None of that makes the model useless. It makes it a baseline you adjust. If you only ever learn one scoring model, start with this one, and plenty of profitable bettors never need anything fancier for totals and correct-score markets. Just respect variance: a sound model still has losing weeks.
Doing it faster
The full grid is a quick spreadsheet job: use POISSON.DIST for each team's goal counts, then multiply the two columns into a score matrix. For the over/under you do not even need that. Our Poisson calculator takes an expected total and a line (enter 2.7 and 2.5 for this match) and returns the over/under plus the probability of each exact total. Run it once per team and you have both goal distributions ready to multiply. Pair it with the expected value calculator to turn any gap against the bookmaker into an edge number.
Frequently Asked Questions
Is Poisson betting actually profitable?
What goal expectancy should I use?
Why does the model like the draw so much?
Can I use Poisson for other sports?
Related Calculators

Juan Sebastian Brito is the CEO and Co-Founder of Bet Hero, a sports betting analytics platform used by thousands of bettors to find +EV opportunities and arbitrage. With a background in software engineering and computer science from FIB (Universitat Politècnica de Catalunya), he built Bet Hero to bring data-driven, mathematically-proven betting strategies to the mainstream. His work focuses on probability theory, real-time odds analysis, and building tools that give bettors a quantifiable edge.
View all articles →Put this into practice
Bet Hero scans 400+ sportsbooks in real-time to find +EV bets and arbitrage opportunities so you don't have to.
Keep reading
Poisson Distribution in Sports Betting: Model Goals, Runs & Totals
How to use the Poisson distribution to model sports outcomes, calculate over/under probabilities, and find value in totals and correct score markets.
NFL Value Betting Guide: Finding +EV Bets Every Week
Master NFL value betting with this comprehensive guide. Learn how to find +EV opportunities on spreads, totals, and player props throughout the NFL season.