Markets coveredMatch OddsCorrect ScoreOver / UnderFirst HalfSecond Half
Statometrics
Model Library · Staking, bankroll and portfolio

Value at Risk (VaR) and Expected Shortfall

Estimates how much you could lose on a bad day at a chosen confidence level, and the average loss when that bad day comes.

Intermediatestakingtradingevaluation

In one sentence

Value at risk (VaR) is the loss you should not exceed on, say, 95 days out of 100, and expected shortfall is the average loss on the remaining worst 5 days.

How it works

Before a busy Saturday you might have twenty bets and several trades open. VaR answers a simple question: how bad could today reasonably get? It picks a confidence level, usually 95% or 99%, and finds the loss at that point of the distribution of possible results.

VaR says nothing about how bad the worst days are once you pass that point. Expected shortfall (also called CVaR) fills the gap by averaging all the results beyond the VaR line. For betting, where a single day can go very wrong, expected shortfall is usually the more useful number.

The simplest way to calculate either is to simulate the day thousands of times using your probabilities and read off the bad tail.

The maths

VaRα=− Q1−α(P&L)\text{VaR}_{\alpha} = -\,Q_{1-\alpha}(\text{P\&L}) ESα=− E[P&L  ∣  P&L≤−VaRα]\text{ES}_{\alpha} = -\,E\big[\text{P\&L} \;\big|\; \text{P\&L} \le -\text{VaR}_{\alpha}\big]
  • α is the confidence level, for example 0.95.
  • Q with subscript 1 − α is the quantile: the P&L value that only 5% of outcomes fall below when α is 95%.
  • P&L is your profit or loss for the period.
  • ES is the average P&L across outcomes at or beyond the VaR point, turned into a positive loss figure.

In plain English: VaR is the edge of the bad tail, and expected shortfall is the average of everything in it.

Worked betting example

Saturday football card on Betfair, £50 on each of 20 independent bets, £1,000 staked in total. The chances are illustrative, and commission is left out to keep the sums clean:

  • 10 Over 2.5 goals bets at 2.00, each with a true 52% chance.
  • 10 away-win bets on Match Odds at 4.00, each with a true 27% chance.
  1. Expected profit: 10 × £50 × 0.04 + 10 × £50 × 0.08 = £20 + £40 = £60.
  2. Standard deviation of the day's P&L: £322.
  3. We simulated the card 1 million times. The chance of a losing day is 38%.
  4. 95% VaR: the 5th percentile result is −£400, so VaR is £400.
  5. 95% expected shortfall: the average of the worst 5% of days is a loss of £482.
  6. The worst possible day, every bet losing, is −£1,000.

A normal-distribution shortcut gives VaR of £470 and expected shortfall of £605. Here it overstates the risk, because the real results are lopsided rather than bell-shaped. On other books, such as a set of lays at long odds, it can understate it, so simulate where you can.

Correlation changes everything. If the bets share a common factor, for example the same model error, with a correlation of 0.3 in the simulation, the expected profit is still £60 but 95% VaR more than doubles to £900 and expected shortfall rises to £939.

Where it's good

  • Setting a daily or weekly loss limit before placing a batch of bets.
  • Checking that a card of bets does not risk more than you can afford in one go.
  • Trading: limiting the combined exposure of many open positions.
  • Comparing staking plans by their bad-day risk, not just average return.

Limitations and pitfalls

  • VaR ignores what happens beyond its threshold; two books can share a VaR but have very different worst cases. Always report expected shortfall too.
  • It depends entirely on your probabilities. If they are overconfident, VaR is too optimistic.
  • Correlation is the biggest hidden risk, as the example shows, and is hard to estimate.
  • Normal-distribution VaR is often wrong for betting, where results are lumpy and lopsided, especially at long odds.
  • A 95% VaR will be breached about one day in twenty by design; that is not a failure of the model.
  • In-play positions can jump when a goal goes in, so model the price after a goal, not just the price now.

How to build it

  • numpy for Monte Carlo: simulate each bet's result, sum the P&L, take the percentile and the tail average.
  • scipy.stats for the normal shortcut, used only as a quick check.
  • Model correlation with a shared random factor per match, league round or model.
  • Practical tip: set your limit on expected shortfall, not VaR, and include commission in each bet's payout.
Learn it step by step
18+ only. Educational content, not financial or betting advice. Past results do not guarantee future returns. If gambling stops being fun, get free, confidential help at BeGambleAware.org.
Members