Card Forecast Poisson: our betting-grade card distribution model
A hybrid Poisson model that combines referee history and team aggression profiles. Validated on ~400 matches with ≤0.3 mean error.
Card markets are the most-overlooked corner of football betting. Bookmakers price them lazily — they take the league average, nudge it slightly for "big match" reputation, and call it done. There's structure underneath that nobody's pricing in.
Our Card Forecast tries to capture that structure with a hybrid Poisson model.
The model
For each match, we estimate λ (expected cards) as:
λ = ref_baseline_per_match × team_A_aggression × team_B_aggression × home_bias
Then we plug λ into a Poisson distribution to get P(exactly N cards), and aggregate that into the over/under thresholds the market uses.
How we estimate each input
ref_baseline_per_match — average yellows per match for this specific referee, computed over their last 30 league games. We bin by competition (Premier League refs whistle differently in Champions League).
team_aggression — last 10 matches' yellow rate divided by league average over the same period. Captures momentary form (e.g. a team going through a dirty patch after losing 3 in a row).
home_bias — historical home/away referee tendency. Some refs whistle harder against the away side; we adjust λ by ±5%.
Validation
We back-tested the model on ~400 Premier League + La Liga + Serie A matches across 2024-25. Mean absolute error: 0.27 cards per match. The market's mean error on the same matches: 0.42. Improvement is roughly 35% on accuracy alone.
More importantly, our error distribution is symmetric — the market's is biased to under-predict on tense fixtures, giving us a consistent edge there.
Where it shines
- Derbies + cup finals — markets under-react; team_aggression captures the mood
- Sub-elite referee assignments — when a lesser-known ref is in charge, the market defaults to league average. We use their actual history.
- Late-season "nothing matches" — teams with nothing to play for often switch off discipline. We catch it through the recent form filter.
Where it doesn't
- Red card markets — the variance is too high for a Poisson assumption to hold cleanly
- Pre-season friendlies — completely unmodeled, sample bias makes inputs unreliable
- Brand-new refs — until we have 30+ matches of history, we default to league average
How to use it
Open any Pre-Match Lab page. The Card Forecast appears alongside the score forecast, with the expected card count plus a probability distribution chart. The numbers update live as referee assignments are confirmed.
One important note: this is a tool, not a tip. We don't tell you to bet — we tell you what we think λ is. If the market disagrees, that's a position to consider, not a guarantee.
Open any player or team and explore.
14-day Pro trial — no card needed.