Expected Value (EV)

Overview

Expected value (EV) in sports betting is the average amount a bettor expects to win or lose per unit wagered if they placed the same bet many times. It is the fundamental mathematical concept behind profitable betting: a bettor's edge comes from consistently finding bets with positive expected value (+EV).

The core formula: EV = (Probability of Winning × Amount Won) − (Probability of Losing × Amount Lost). A positive EV bet means the bettor has a mathematical edge over the sportsbook — over many bets, they expect to profit.

In the sports prediction pipeline, EV calculation is the core decision mechanism: the model outputs probabilities, de-vigged odds provide fair prices, and EV = (model_prob × decimal_odds) − 1 determines whether a bet is worth placing.

Why It Matters

EV is the foundation of profitable sports betting because:
1. It separates skill from luck: Over a large sample, only +EV bets produce profit. Individual outcomes are random.
2. It enables comparison: EV quantifies the edge in comparable units (% return on stake), allowing comparison across bets at different odds.
3. It drives Kelly sizing: EV determines the Kelly fraction — more EV means larger stake.
4. It identifies mispricings: Bookmaker odds that imply probabilities lower than the model's estimate create +EV opportunities.

The key insight: +EV bets should be placed consistently over time; individual outcomes are irrelevant to long-term profitability.

Key Formula

Basic EV formula:

$$EV = p \times b - q = p \times b - (1 - p)$$

Where p = probability of winning, q = 1 − p, b = net profit on winning bet.

EV for decimal odds:

$$EV = p \times d - 1$$

If p × d > 1, the bet is +EV. If p × d < 1, the bet is −EV.

Implied probability from decimal odds:

$$p_{implied} = \frac{1}{d}$$

Worked Example

  • Model estimates Brazil has 60% chance to win (p = 0.60)
  • Bookmaker offers odds of 1.80 (implied prob = 55.5%)
  • Fair odds (de-vigged) = 1.70 (implied prob = 58.8%)

EV vs bookmaker: EV = 0.60 × 1.80 − 1 = 1.08 − 1 = +0.08 (8% expected return)

EV vs fair odds: EV = 0.60 × 1.70 − 1 = +0.02 (2% edge over fair price)

Interpretation: Over 100 identical $100 bets, expect to profit $800 gross from the bookmaker, $200 net of fair value.

Code Snippet

def expected_value(prob_win, decimal_odds):
    """Calculate expected value of a bet."""
    return prob_win * decimal_odds - 1

def implied_probability(decimal_odds):
    """Convert decimal odds to implied probability."""
    return 1 / decimal_odds

def is_positive_ev(model_prob, decimal_odds):
    """Check if bet has positive expected value."""
    return model_prob * decimal_odds > 1

def ev_with_vig(model_prob, bookie_odds, fair_odds):
    """Calculate EV relative to fair odds (de-vigged)."""
    return model_prob * fair_odds - 1

# Example
prob = 0.60
bookie = 1.80
fair = 1.70
print(f"EV vs bookie: {expected_value(prob, bookie):.3f}")  # +0.080
print(f"EV vs fair: {ev_with_vig(prob, bookie, fair):.3f}")  # +0.020
print(f"+EV: {is_positive_ev(prob, bookie)}")  # True

Pitfalls

  • EV calculations are only as good as the probability estimates: A model with systematically biased probabilities will give misleading EV.
  • Small samples: World Cup has only 64 matches. Individual match EV can be wildly different from theoretical EV.
  • Vig must be removed first: Computing EV against inflated bookmaker odds overstates the market edge. Always de-vig first.
  • Odds change: By the time you place a bet, odds may have moved. EV at placement time ≠ EV at settlement time.

See Also