Methodology

How the ImpliedScore calculator works — from decimal odds to score probability matrix. Every step documented. No black boxes.

Step 1

Input

Decimal odds (1X2 + O/U)

Step 2

Devig

Remove bookmaker margin

Step 3

Model & ρ

Choose before fitting λ

Step 4

Fit λ

Use the selected model

Step 5

Matrix

Calculate score probabilities

Step 6

Output

Markets, fair odds, fit


Step 1 — Input: decimal odds

The calculator accepts 1X2 (Home / Draw / Away) — required, and Over/Under 2.5 — optional but recommended.

Decimal odds represent the total payout per unit staked. An odds value of 2.50 means a €1 bet returns €2.50 if it wins. The implied probability is the inverse: 1 / 2.50 = 40%.

For a single-price conversion, including decimal, American and fractional odds or probability-to-odds conversion, use the Implied Probability Calculator.

For reproducible analysis, use a consistent bookmaker or market-average source and a clearly defined timestamp. For a match that has not started yet, use the latest available pre-match prices and record the timestamp. The historical calibration dataset described below uses Football-Data.co.uk market-average AvgH/AvgD/AvgA columns; it does not use the separate closing-odds columns.

Step 2 — Remove the bookmaker margin

For a single bookmaker's complete 1X2 market, the sum of raw implied probabilities is normally above 100%. Call that sum the booksum Q. The overround is Q − 1. If the alternative margin-as-share-of-booksum measure is shown, it is (Q − 1)/Q and must be labelled separately.

Home 2.10 → 47.6%  |  Draw 3.50 → 28.6%  |  Away 3.40 → 29.4%
Booksum Q = 105.6%  |  Overround = 5.6pp  |  Margin / booksum ≈ 5.3%

Proportional overround removal: divide each probability by the total.

Fair Home = 47.6% / 105.6% = 45.1%
Fair Draw = 28.6% / 105.6% = 27.1%
Fair Away = 29.4% / 105.6% = 27.9%
Unrounded total: 100.0% (displayed values are rounded)

Each market (1X2, O/U) is de-vigged independently. Proportional normalization is the current reproducible production baseline. Shin, power, additive and odds-ratio methods can produce different fair targets; see the No-Vig Calculator and method comparison. Alternative methods are comparison/sensitivity outputs unless a production change is explicitly validated and versioned.

Step 3 — Choose the model and ρ

Select independent Poisson (ρ = 0) or a Dixon-Coles setting before fitting λ. The same setting must be used in the fitting objective and final matrix. In this implementation, require every τ multiplier to be strictly positive for each candidate pair of positive rates:

max(−1/λhome, −1/λaway) < ρ < min(1, 1/(λhomeλaway))

The interval changes with λ. An inadmissible candidate must be rejected during fitting; a league preset is not automatically valid for every possible match.

ImpliedScore uses heuristic league-level ρ presets fitted at league-average λ by minimizing error across 0:0, 1:0, 0:1 and 1:1 frequencies. These are aggregate calculator presets, not full team-level Dixon-Coles maximum-likelihood estimates and not permanent league constants.

LeagueMatchesλ homeλ awayPreset ρδ per cellCharacter
EPL3,8001.561.28−0.010+0.117ppMinimal correction
Bundesliga3,3661.711.36−0.096+1.036ppLargest preset shift in this sample
Serie A4,1791.481.25−0.020+0.241ppModerate
La Liga4,1801.501.13−0.007+0.086ppNear-zero aggregate preset
Ligue 13,8561.511.20−0.025+0.301ppModerate

The probability actually moved in each affected cell is δ = −ρλhomeλawaye−(λhome+λaway), so raw ρ values are not directly comparable without the scoring environment. The table reports δ at the listed league-average λ values. A higher λ does not by itself imply that a stronger ρ is required. Full league data →

Presets estimated from the full historical sample are descriptive in-sample summaries. To test forecasts on later matches, estimate or freeze ρ using only information available before each forecast cutoff. A value tuned on the evaluated outcomes is not an out-of-sample estimate.

Step 4 — Fit expected goals (λ)

The model needs two parameters: λ home and λ away — market-implied expected goals per team. These are not xG from shot data; they are goal rates that best reproduce the fair probabilities.

Two-pass grid search:

1. Coarse: all (λ_h, λ_a) from 0.20 to 6.00 in steps of 0.05.
2. Fine: ±0.08 around the best result in steps of 0.005.

Error = (H_model − H_fair)² + (D_model − D_fair)² + (A_model − A_fair)² + 2×(O2.5_model − O2.5_fair)²

With 1X2 alone, omit the O2.5 residual. With both markets there are three independent probability constraints: two from 1X2 and one from totals. A fixed-ρ model has two free rates, so an exact joint fit is generally unavailable. The fair 1X2 targets sum to one and therefore provide two independent constraints. A truncated, unnormalized model grid can sum slightly below one; that deficit is computational tail error, not a fourth independent market signal.

Over 2.5 gets double weight as a design choice to anchor total goal expectation, not as a universally estimated market-reliability ratio. The production fitting grid is 16×16 = 256 scorelines (0–15 goals per team). Coverage depends on λ: at the illustrative pair λhome = λaway = 6, the 0–15 × 0–15 grid captures about 99.898% of the independent-Poisson joint mass, leaving about 0.102% outside. Typical football λ values leave a much smaller tail. The grid is not renormalized to 100%.

Step 5 — Generate the score matrix

Standard Poisson: P(i, j) = P_Poisson(i, λ_home) × P_Poisson(j, λ_away). Assumes independent scoring.

Dixon-Coles (1997): adjusts four low-score cells with a correction factor τ:

0:0 → ×(1 − λ_h·λ_a·ρ)
1:0 → ×(1 + λ_a·ρ)
0:1 → ×(1 + λ_h·ρ)
1:1 → ×(1 − ρ)

Negative ρ increases 0:0 and 1:1 probability, decreases 1:0 and 0:1. All other scorelines unchanged.

Important: when DC model is selected, λ fitting includes the τ correction. Parameters and output matrix are internally consistent.

At fixed λ, the standard four-cell τ correction preserves total probability and both team goal marginals. O/U 2.5 is also unchanged directly; O/U 0.5 and O/U 1.5 can change. When ρ is active during fitting, λ itself may move, so derived markets can still change indirectly.

Step 6 — Derived markets & output

From the 16×16 computational matrix, the production calculator computes:

1X2 fair odds — 1 / sum of win/draw/loss cells. Over/Under — sum above 1.5, 2.5, 3.5, 4.5. BTTS — all cells where both teams scored. Outside grid — probability mass beyond the displayed 7×7 heatmap.

The main odds-based calculator uses the 256-cell computational grid, not the smaller visible heatmap. Probability outside the visible grid and the smaller tail beyond the computational grid are different quantities. Report or bound both; never redistribute either into visible cells by renormalizing the heatmap.

Standalone Poisson and xG tools use their own adaptive computational grids; the 16×16 specification above describes the main odds-based calculator. For fitting details, see market-implied goals from odds. To evaluate a supplied 1X2 forecast sample, use the probability evaluation calculator. A small fitting residual measures approximation to the input markets, not predictive validation.


Model limitations

2 rates, 3 independent targets

With fixed ρ and both markets supplied, three independent targets generally cannot all be matched by two rates. Inspect each Model Fit residual.

Time and game state compressed

A full-time Poisson count can allow deterministic time-varying intensity, but one pre-match λ cannot represent stochastic game-state changes, red cards or substitutions unless they are modelled explicitly.

No tactical model

No squad data, injuries, form, xG. All presumably priced into the odds already.

DC corrects only 4 cells

τ applies to 0:0, 1:0, 0:1, 1:1. Higher-score correlations not captured. ρ is aggregate, not per-match.


Data integrity

Source

football-data.co.uk — free CSV files of results and odds

Coverage

19,381 matches, 5 leagues, 11 seasons (2015/16–2025/26; EPL from 2016/17)

Odds priority

Market average (AvgH/D/A; non-closing columns). Fallback: mean of Bet365 + Pinnacle + Betway

Excluded

Missing odds/results. Ligue 1 2019/20: 279/380 (COVID cancellation)

Margin removal

Proportional overround, independently per market

Data last updated

May 2026. Derived outputs only — no raw data redistribution.


References

Dixon, M. J. & Coles, S. G. (1997). Modelling Association Football Scores and Inefficiencies in the Football Betting Market. JRSS: Series C, 46(2), 265–280.

Football-Data.co.uk — Historical football results and odds data. football-data.co.uk

Scroll to Top