Markets coveredMatch OddsCorrect ScoreOver / UnderFirst HalfSecond Half
Statometrics
Model Library · Distributions

Log-Normal Distribution

Models positive, right-skewed quantities such as exchange prices and matched volume, where changes behave like percentages rather than fixed amounts.

Intermediatetradingin-playpre-match

In one sentence

A quantity is log-normal when its logarithm follows a normal distribution, giving a skewed, always-positive shape well suited to prices and volumes.

How it works

Prices move in percentages, not fixed steps. A team drifting from 5.0 to 6.0 is a 20% move; one drifting from 50 to 51 is 2%. Working with the log of the price turns those percentage moves into additive steps, and additive steps often look roughly normal.

So the log-normal says: the log of the future price is normal around the log of today's price. Converted back, the price itself can never go below zero, drifts up by more in absolute terms than it shortens, and has a long right tail. That matches the shape of pre-match price movement quite well.

The same shape fits matched volume per market and bet sizes.

The maths

ln⁡X∼N(μ,σ2)\ln X \sim \mathcal{N}(\mu, \sigma^2) P(X>x)=1−Φ ⁣(ln⁡x−μσ),median=eμ,mean=eμ+σ2/2P(X > x) = 1 - \Phi\!\left(\frac{\ln x - \mu}{\sigma}\right), \qquad \text{median} = e^{\mu}, \qquad \text{mean} = e^{\mu + \sigma^2/2}
  • X is the positive quantity (a future price, a volume).
  • ln is the natural log.
  • μ and σ are the mean and standard deviation of ln X, not of X itself.
  • Φ is the standard normal cumulative probability.

In words: take logs, use the bell curve, then convert back. The mean sits above the median because of the right tail.

Worked betting example

Match Odds, illustrative inputs. The away team is 5.0 on Betfair an hour before kick-off. From past matches you estimate the log of the price change to kick-off has mean 0 and standard deviation 0.25.

  1. P(price at kick-off above 6.0): z = ln(6.0 ÷ 5.0) ÷ 0.25 = 0.1823 ÷ 0.25 ≈ 0.729, so P ≈ 23.29%.
  2. P(price at kick-off below 4.0): z = ln(4.0 ÷ 5.0) ÷ 0.25 ≈ −0.893, so P ≈ 18.60%.
  3. The median price at kick-off is 5.0, but the mean is 5.0 × e to the power (0.25² ÷ 2) ≈ 5.16, because drifts can run further than steamers.
  4. A 90% range for the price at kick-off is about 3.31 to 7.54.
  5. For a trader: a lay-then-back plan needing a drift to 6.0 works out less than one time in four under this model.

Where it's good

  • Modelling pre-match price drift for trading decisions.
  • Setting sensible stop-loss and target levels in percentage terms.
  • Matched volume, stake sizes and other positive, skewed quantities.
  • Judging how far a price should move on team news.

Limitations and pitfalls

  • Price moves are not smooth. Team news, late injuries and big gambles cause jumps that the log-normal badly underestimates.
  • Volatility changes over time: markets move much faster in the final minutes before kick-off.
  • Betfair's tick ladder makes prices discrete, and increments widen at higher prices; model in ticks for short-term trading.
  • The drift (μ) is not reliably zero. Favourites and outsiders move differently, and assuming zero drift hides a bias.
  • Probabilities (1 ÷ price) are bounded between 0 and 1, which a log-normal on price does not respect near odds of 1.01.
  • σ estimated from quiet markets will understate risk in busy ones.

How to build it

  • scipy.stats.lognorm (shape = σ, scale = e to the power μ) or simply scipy.stats.norm on log prices.
  • Data: time-stamped Betfair price history, such as the Betfair historical data service.
  • Tip: estimate σ separately by time to kick-off and by price band; one number for all markets is misleading.
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