SPORTS BETTING MATH APPLIED PROBABILITY INSTITUTE
RESEARCH ARTICLE

Deriving Over/Under Probabilities from Poisson Distribution: A Mathematical Guide

A formal mathematical derivation of Over/Under goal probabilities using the Poisson convolution theorem, cumulative distribution functions, 2D score matrices, and Asian totals.

14 min read Beginner Last updated 2026-09-20

SBM Stochastic Modeling Lab

Poisson Models & Bankroll Optimization Team

Research laboratory focused on Poisson goal distribution modeling, Kelly criterion staking optimization, and Monte Carlo risk-of-ruin simulations for sports wagering.

Bivariate Poisson Match Outcome Modeling Kelly Criterion Geometric Growth Optimization Monte Carlo Risk-of-Ruin Simulation (10M+ Runs)

1. Introduction: The Mechanics of Total Goals Betting

In sports wagering markets, few propositions command as much global liquidity as the Over/Under Total Goals market. Across football, ice hockey, and futsal, the binary question of whether a match will witness more or fewer goals than a stated threshold—most ubiquitously 2.5 Goals—accounts for over 30% of pre-match secondary betting turnover.

To the recreational bettor, wagering on total goals is an exercise in qualitative intuition. Bettors evaluate recent form, head-to-head narrative history, weather forecasts, or whether a team employs an attacking versus defensive tactical system. In institutional quantitative trading desks, however, total goal propositions are treated as mathematical derivatives of continuous Poisson point processes.

The Quantitative Foundation of Over/Under Pricing: Goal totals are not independent phenomena. They are the sum of two underlying stochastic arrival processes: the home team's goal expectancy ($lambda_H$) and the away team's goal expectancy ($mu_A$). By modeling these intensities, a bettor can derive the fair probability and no-vig odds for any goal line—from Under 0.5 to Over 4.5—with mathematical precision.

This technical guide details the formal derivation of Over/Under probabilities from Poisson models. We prove the Poisson convolution theorem, derive the cumulative distribution function for integer and half-goal thresholds, analyze 2D score matrix summation versus 1D convolution, model Asian split totals (2.25 and 2.75 lines), and reveal the structural bookmaker margins embedded in two-way total markets.

2. Mathematical Derivation: The Poisson Convolution Property

In classical match modeling, the number of goals scored by the home team ($X$) and the away team ($Y$) across standard 90-minute regulation time are assumed to follow independent Poisson distributions with parameters $lambda_H > 0$ and $mu_A > 0$:

$$P(X = x) = rac{lambda_H^x e^{-lambda_H}}{x!}, quad P(Y = y) = rac{mu_A^y e^{-mu_A}}{y!}$$

Where $x, y in {0, 1, 2, dots}$. The total goals scored in the match is the random variable $T = X + Y$.

Proof of the Convolution Theorem

A fundamental property of the Poisson distribution is that the sum of two independent Poisson random variables is itself a Poisson random variable whose parameter is the sum of the individual parameters: $T sim ext{Pois}(lambda_{ ext{tot}})$, where $lambda_{ ext{tot}} = lambda_H + mu_A$.

We prove this formally using the discrete convolution of the joint probability mass function:

$$P(T = k) = P(X + Y = k) = sum_{j=0}^k P(X = j, Y = k - j)$$

Because $X$ and $Y$ are independent random variables, the joint probability factorizes into the product of their marginals:

$$P(T = k) = sum_{j=0}^k P(X = j) P(Y = k - j) = sum_{j=0}^k left( rac{lambda_H^j e^{-lambda_H}}{j!} ight) left( rac{mu_A^{k-j} e^{-mu_A}}{(k-j)!} ight)$$

Factoring out the term $e^{-(lambda_H + mu_A)}$ and dividing and multiplying by $k!$ inside the summation yields:

$$P(T = k) = rac{e^{-(lambda_H + mu_A)}}{k!} sum_{j=0}^k rac{k!}{j!(k-j)!} lambda_H^j mu_A^{k-j} = rac{e^{-(lambda_H + mu_A)}}{k!} sum_{j=0}^k inom{k}{j} lambda_H^j mu_A^{k-j}$$

By the Binomial Theorem, the summation $sum_{j=0}^k inom{k}{j} lambda_H^j mu_A^{k-j}$ is exactly equal to $(lambda_H + mu_A)^k$. Substituting this back into the equation produces the definitive closed-form solution:

$$P(T = k) = rac{(lambda_H + mu_A)^k e^{-(lambda_H + mu_A)}}{k!} = rac{lambda_{ ext{tot}}^k e^{-lambda_{ ext{tot}}}}{k!}$$

This proof demonstrates that as long as goal scoring between opponents remains statistically independent, the distribution of total match goals depends exclusively on the total expected goals ($lambda_{ ext{tot}}$), irrespective of how those goals are apportioned between the home and away clubs.

3. Calculating Cumulative Over/Under Probabilities

In sports betting, lines are set at half-integers ($0.5, 1.5, 2.5, 3.5, 4.5$) to eliminate the possibility of a push (tie). An "Under $K.5$" wager wins if total goals $T le K$, while an "Over $K.5$" wager wins if $T ge K + 1$.

General Cumulative Formula for Under Lines

The cumulative probability $P( ext{Under } K.5)$ is the sum of the Poisson probability mass function from $k = 0$ to $K$:

$$P( ext{Under } K.5) = F(K; lambda_{ ext{tot}}) = sum_{k=0}^K rac{lambda_{ ext{tot}}^k e^{-lambda_{ ext{tot}}}}{k!} = e^{-lambda_{ ext{tot}}} sum_{k=0}^K rac{lambda_{ ext{tot}}^k}{k!}$$

Since the market is strictly binary, the complementary probability $P( ext{Over } K.5)$ is simply:

$$P( ext{Over } K.5) = 1 - P( ext{Under } K.5) = 1 - e^{-lambda_{ ext{tot}}} sum_{k=0}^K rac{lambda_{ ext{tot}}^k}{k!}$$

The Benchmark Over/Under 2.5 Formulation

For the ubiquitous 2.5 goals line ($K = 2$), the formula expands directly to:

$$P( ext{Under } 2.5) = e^{-lambda_{ ext{tot}}} left(1 + lambda_{ ext{tot}} + rac{lambda_{ ext{tot}}^2}{2} ight)$$ $$P( ext{Over } 2.5) = 1 - e^{-lambda_{ ext{tot}}} left(1 + lambda_{ ext{tot}} + rac{lambda_{ ext{tot}}^2}{2} ight)$$

Step-by-Step Numerical Example: Premier League Match

Suppose an econometric regression model estimates the goal expectancies for an English Premier League clash between Arsenal ($lambda_H = 1.74$) and Chelsea ($mu_A = 1.16$):

  1. Total Goal Expectancy: $lambda_{ ext{tot}} = 1.74 + 1.16 = 2.90$
  2. Probability of Exactly 0 Goals: $P(T = 0) = rac{2.90^0 e^{-2.90}}{0!} = e^{-2.90} approx 0.05502$ ($5.50%$)
  3. Probability of Exactly 1 Goal: $P(T = 1) = rac{2.90^1 e^{-2.90}}{1!} = 2.90 imes 0.05502 approx 0.15956$ ($15.96%$)
  4. Probability of Exactly 2 Goals: $P(T = 2) = rac{2.90^2 e^{-2.90}}{2!} = rac{8.41}{2} imes 0.05502 approx 0.23164$ ($23.16%$)
  5. Cumulative Under 2.5 Probability: $$P( ext{Under } 2.5) = 0.05502 + 0.15956 + 0.23164 = 0.44622 quad (44.62%)$$
  6. Cumulative Over 2.5 Probability: $$P( ext{Over } 2.5) = 1 - 0.44622 = 0.55378 quad (55.38%)$$
  7. Fair No-Vig Decimal Odds: $$ ext{Fair Odds}_{ ext{Under 2.5}} = rac{1}{0.44622} approx 2.241$$ $$ ext{Fair Odds}_{ ext{Over 2.5}} = rac{1}{0.55378} approx 1.806$$

If a bookmaker offers $2.35$ on Under 2.5 while fair odds are $2.241$, the bettor possesses a theoretical positive expected value ($ ext{EV} = (0.44622 imes 2.35) - 1 = +4.86%$).

4. Matrix Summation vs. 1D Convolution: When Does Independence Fail?

While the 1D convolution property $T sim ext{Pois}(lambda_{ ext{tot}})$ is computationally instantaneous, quantitative trading syndicates frequently compute total goals by constructing a full 2D Joint Score Matrix:

$$M_{x,y} = P(X = x, Y = y) quad ext{for } x, y in {0, 1, dots, N_{max}}$$

Under matrix summation, $P( ext{Under } K.5)$ is computed by summing all cells located in the lower-left triangle where $x + y le K$:

$$P( ext{Under } K.5) = sum_{x=0}^K sum_{y=0}^{K - x} M_{x,y}$$
Approach Computational Complexity Handles Correlation (Dixon-Coles)? Handles Score Caps / Asymmetry? Primary Use Case
1D Convolution ($T sim ext{Pois}$) $mathcal{O}(K)$ (Microseconds) No (Assumes zero correlation) No (Treats home and away identically) High-frequency screening across thousands of matches
2D Matrix Summation $mathcal{O}(N_{max}^2)$ Yes (Allows cell-by-cell adjustments) Yes (Supports independent team distributions) Production trading desks, derivative pricing (BTTS + Totals)
The Low-Scoring Correlation Flaw: In real football matches, goals are not purely independent. Low-scoring results (especially 0-0 and 1-1) occur with higher empirical frequency than pure independent Poisson models predict. Applying the Dixon-Coles adjustment parameter ($ ho approx -0.12$) increases the probability of 0-0 and 1-1 while decreasing 1-0 and 0-1. In a Dixon-Coles framework, the 1D convolution property is invalid; bettors must sum the bivariate probability matrix directly.

5. Asian Totals: Push Conditions and Quarter Lines

In Asian handicap markets, total lines are offered as whole numbers ($2.0, 3.0$) and quarter-splits ($2.25, 2.75$). These structures require modified probability and payout formulas.

Whole Goal Lines (e.g., Under 2.0 Goals)

When the line is set at integer $K$, three mutually exclusive outcomes exist:

  • Win: $T le K - 1$
  • Push (Refund): $T = K$ (Stake returned: net payout = $0$)
  • Loss: $T ge K + 1$

The expected return on a $$1$ wager on Under $2.0$ at decimal odds $O$ is:

$$mathbb{E}[R] = P(T le 1) cdot (O - 1) + P(T = 2) cdot 0 - P(T ge 3) cdot 1$$

To compute the push-adjusted fair odds, we condition the probability on a non-push settlement:

$$P( ext{Win} mid ext{Decisive}) = rac{P(T le 1)}{P(T le 1) + P(T ge 3)} = rac{P(T le 1)}{1 - P(T = 2)}$$ $$ ext{Fair Odds}_{ ext{Under 2.0 (Push-Adjusted)}} = rac{1}{P( ext{Win} mid ext{Decisive})} = rac{1 - P(T = 2)}{P(T le 1)}$$

Quarter Lines (e.g., Over/Under 2.25 Goals)

A quarter line is an equal 50/50 synthetic split across the two adjacent half and whole lines. For Under 2.25, the stake is split equally between Under 2.0 and Under 2.5:

Match Goals ($T$) Under 2.0 Leg ($50%$ Stake) Under 2.5 Leg ($50%$ Stake) Net Wager Settlement
0 or 1 Goal Win ($+0.5 imes (O-1)$) Win ($+0.5 imes (O-1)$) Full Win ($+ (O - 1)$)
Exactly 2 Goals Push (Refund $$0.50$) Win ($+0.5 imes (O-1)$) Half Win / Half Push ($+ 0.5 imes (O - 1)$)
3 or More Goals Loss ($-$0.50$) Loss ($-$0.50$) Full Loss ($-$1.00$)

The expected payout of Under 2.25 is formulated as:

$$mathbb{E}[ ext{Payout}_{ ext{Under 2.25}}] = P(T le 1) cdot O + P(T = 2) cdot left(0.5 cdot O + 0.5 ight)$$

6. Market Microstructure: Vig Removal & The Public Over Bias

Sportsbook retail markets on Over/Under lines are characterized by structural behavioral inefficiencies. In psychological finance, this is known as the Public Over Bias.

Recreational bettors overwhelmingly wager on the Over. Spectators prefer rooting for goals, excitement, and forward momentum rather than defensive stalemates. Bookmakers exploit this preference by shading Over lines: pricing the Over 1.5% to 3.0% below fair mathematical value while artificially widening the odds on the Under.

Removing the Vig on Two-Way Totals

Given quoted odds $O_{ ext{over}}$ and $O_{ ext{under}}$, the market overround is:

$$ ext{Overround} = rac{1}{O_{ ext{over}}} + rac{1}{O_{ ext{under}}} - 1$$

Under the standard Multiplicative (Proportional) devig method, fair probabilities are extracted via:

$$P_{ ext{fair, over}} = rac{1/O_{ ext{over}}}{1/O_{ ext{over}} + 1/O_{ ext{under}}}, quad P_{ ext{fair, under}} = rac{1/O_{ ext{under}}}{1/O_{ ext{over}} + 1/O_{ ext{under}}}$$

However, when the market exhibits heavy public one-way flow, the Power devig method ($P_i^* = (1/O_i)^{1/k}$ such that $sum P_i^* = 1$) provides superior empirical calibration by shifting more of the bookmaker margin onto the favorite side (the Over in high-total games).

7. Python Implementation: Full Over/Under Valuation Engine

The following production-ready Python script computes Poisson goal probabilities, calculates all standard Over/Under lines (0.5 through 4.5), and outputs no-vig fair odds:

import math

def calculate_over_under_probabilities(lambda_home, mu_away, max_goals=10):
    lambda_tot = lambda_home + mu_away
    
    # Compute exact probability mass function for total goals
    pmf = []
    for k in range(max_goals + 1):
        prob = (lambda_tot**k * math.exp(-lambda_tot)) / math.factorial(k)
        pmf.append(prob)
        
    lines = [0.5, 1.5, 2.5, 3.5, 4.5]
    results = {}
    
    for line in lines:
        threshold = int(math.floor(line))
        under_prob = sum(pmf[:threshold + 1])
        over_prob = 1.0 - under_prob
        
        results[f"Under {line}"] = {
            "probability": under_prob,
            "fair_odds": 1.0 / under_prob if under_prob > 0 else float('inf')
        }
        results[f"Over {line}"] = {
            "probability": over_prob,
            "fair_odds": 1.0 / over_prob if over_prob > 0 else float('inf')
        }
        
    # Asian 2.0 Push Analysis
    p_win_under_2 = sum(pmf[:2]) # 0 or 1 goal
    p_push_2 = pmf[2]           # exactly 2 goals
    p_decisive = 1.0 - p_push_2
    fair_odds_under_2_push_adj = p_decisive / p_win_under_2 if p_win_under_2 > 0 else 0
    
    results["Under 2.0 (Asian)"] = {
        "p_win": p_win_under_2,
        "p_push": p_push_2,
        "push_adj_fair_odds": fair_odds_under_2_push_adj
    }
    
    return results

if __name__ == "__main__":
    # Test case: EPL average match (Home 1.65, Away 1.20)
    data = calculate_over_under_probabilities(1.65, 1.20)
    print("=== OVER/UNDER PROBABILITIES & FAIR ODDS ===")
    for market, val in data.items():
        if "probability" in val:
            print(f"{market:12} | Prob: {val['probability']*100:6.2f}% | Fair Odds: {val['fair_odds']:.3f}")
        else:
            print(f"{market:12} | Win: {val['p_win']*100:5.2f}% | Push: {val['p_push']*100:5.2f}% | Fair: {val['push_adj_fair_odds']:.3f}")

8. Conclusion: Strategic Application in Market Trading

Deriving Over/Under probabilities from Poisson models transforms subjective match guessing into systematic quantitative pricing. By understanding the Poisson convolution theorem, sports bettors can instantaneously price any half-goal threshold from aggregate team intensities ($lambda_{ ext{tot}}$). Furthermore, recognizing the Public Over Bias and deploying Asian handicap split models allows traders to systematically identify positive expected value wagers across global sportsbooks.

Frequently Asked Questions

RELATED RESEARCH

Cross-Referenced Studies

18+ RISK NOTICE