Skip to main content

The Model

How ForzaPitch predicts football matches

01  Methodology

ForzaPitch uses a Poisson regression model enhanced with the Dixon-Coles correction to predict football match outcomes. For each match, we estimate the expected goals (xG) for each team from their attacking and defensive form, Elo rating, home advantage and league-wide scoring averages, then adjust for recent momentum, rest and fixture congestion, weather conditions, and table position or end-of-season stakes. The Poisson distribution gives us the probability of every possible scoreline, from which we derive 1X2, over/under, and other markets. Predictions are also blended with bookmaker odds, more heavily when the market is moving sharply.

02  Elo Ratings

Each team carries a global Elo rating updated after every match — and Elo isn't just used for cross-league cup ties, it's blended directly into the win/draw/loss probability alongside our Poisson estimate for every match, with the weight tuned per competition. For cup fixtures where two teams from different leagues meet, we also use Elo-weighted league baselines to correct for the difference in competitive level.

03  Match Context Adjustments

Beyond the base xG estimate, the model layers on contextual adjustments: recent form (weighted more heavily toward the last few matches), rest and fixture congestion (short-rest teams are penalised, well-rested teams get a small boost), weather (heavy wind or rain trims expected goals), and standings context (title races, relegation battles and dead rubbers shift motivation). Predictions with limited historical data are pulled toward a neutral baseline until enough matches have been played.
Weekly accuracy — last 8 weeks
40% 55% 70% 1 Jun 8 Jun 15 Jun 22 Jun 29 Jun 6 Jul 13 Jul 20 Jul
Period average: 63.4%
61.9%
Global Accuracy
Analysed: 2554 matches
Calibration

A well-calibrated model predicts 60% probability events correctly about 60% of the time. The table below compares our predicted confidence bands against actual outcomes.

25% 50% 75% 100% 0% 25% 50% 75% 100% perfect 55% previsto → 56.7% reale (n=930) 65% previsto → 61.0% reale (n=988) 75% previsto → 67.8% reale (n=447) 85% previsto → 77.1% reale (n=170) 95% previsto → 84.2% reale (n=19) Predicted probability Actual frequency
model perfect calibration ● <7pp deviation: good / mid / far
Confidence band Matches Expected (mid) Actual
50–60% 930 55.0% 56.7%
60–70% 988 65.0% 61.0%
70–100% 636 85.0% 70.8%