EdgeworthArena
Live dataSign in
Quant Library · Match pricing · Football

Match Price Engine

Two teams in, a probability for all forty-nine scorelines out.

A Dixon–Coles bivariate Poisson fitted by weighted maximum likelihood on results, blended with a second fit on shots on target. It is the model every football number on the platform starts from.

Inputs

What it takes

5
NameTypeUnitsWhere it comes from
matcheslist of (date, home, away, home goals, away goals)countsyour database, or the platform's football-data ingest
shots optionallist of (date, home, away, home shots on target, away shots on target)countsthe same ingest · omit it and the engine fits on goals alone, which is slower to learn and noisier
as_ofdatetime-the moment you are pricing at · every match after it is excluded, which is what makes a backtest walk-forward
half_life_days optionalfloatdaysyour choice; 240 is what the platform's backtest chose
blend_weight optionalfloat0 to 1your choice; 0.4 on shots is what the backtest chose
Outputs

What it gives back

5
NameTypeUnitsNotes
attack, defencedict per teamlog goal rate
home_advantagefloatlog goal rate
rhofloat-the low-score correction, about −0.05 in every league we have fitted
rates(home, away)(lambda, mu)goals per match
score_matrix11 x 11 arrayprobability
Method

How it works

  1. Weight every past match by w = exp(−ξ (T − t)), with ξ set from the half-life you chose.
  2. 4 further steps in the licensed specification
Assumptions
  • Goals arrive at a rate that is constant within a match and independent between the two sides, except for the four scorelines τ corrects.
  • 2 further assumptions in the licensed specification
Limits
  • It knows nothing about team news, and team news is most of the gap to the closing line.
  • 2 further limits in the licensed specification
Validation

What it was measured at

ok

Walk-forward across every covered league: refit weekly, price the week, score it against the closing line with the margin removed.

Leagues1
Matches priced before they were played419
Brier, shots blend0.637 to 0.637a coin scores 0.667
Brier, goals only0.646 to 0.646the blend is better in almost every league
Skill against the closing line-2.0% to -2.0%negative: the market forecasts better, in every league
Calibration error0.041 to 0.041expected calibration error
In the package
  • The full specification: inputs, method, assumptions and limits
  • The validation panel as measured on the day of purchase
  • A reference implementation extracted from the running source
  • Perpetual commercial use for one entity

Reference modules:

  • 3 module(s), named in the licensed specification and shipped in the package
Read this before you buy. The platform's own walk-forward tests say the closing line forecasts football better than these models do. What they give you is a coherent price for every market and match, before the market opens, with the band and the working attached. Any model here that has been beaten by something simpler says so in its limits, and the validation panel above is generated from the platform's result files rather than typed in.