The math behind Card Forecast: Poisson model from scratch
Why hybrid Poisson beats league averages by 35% on Premier League and Serie A discipline markets — every assumption, every failure mode.
Why Poisson? Because the underlying process — a referee making a yellow-card decision — is approximately memoryless. Each minute has roughly the same probability of producing a yellow, conditional on team aggression + referee tendency.
The naive baseline
Pick the league average (3.8 yellows/game in Premier League last season), plug into Poisson, generate probabilities. Then check P(over 4.5) etc. against bookmaker odds. We back-tested this on 400 matches: mean error 0.42 cards/match.
Adding referee history
Some refs whistle more than others. Mike Dean's career average is 4.8 yellows/match; Andre Marriner's is 3.1. Substituting the ref's 30-match rolling average for the league baseline drops the error to 0.34.
Team aggression layer
Teams have streaks. After a controversial loss, fouls go up for the next 2-3 matches. We add a 10-match rolling factor: team yellows received / league average. Multiplicative with the ref baseline. Error: 0.31.
Where it breaks
- Derby + cup matches — sample size too small for stable team_aggression coefficient
- Brand-new refs (less than 30 matches) — fall back to league average
- Pre-season friendlies — completely unmodeled
- Red cards — variance too high for Poisson
Open any player or team and explore.
14-day Pro trial — no card needed.