Methodology
The first match-model candidates are now implemented. They remain deliberately unpublished until rolling out-of-sample backtesting and calibration determine what actually predicts best.
Five seasons stored. Recent football weighted more.
ProbGoal retains five completed seasons plus the current season where available. Candidate models use continuous exponential time decay so influence decreases smoothly with match age rather than changing abruptly at season boundaries.
Attack and defence are separate
The primary goals candidate estimates club attacking strength and defensive strength separately, together with home advantage. This allows two clubs with similar overall results but very different scoring and conceding profiles to remain statistically distinct.
European matches bridge domestic leagues
Domestic competitions estimate within-league club strength. Cross-league UEFA matches connect those domestic systems through an explicit league-strength bridge, instead of assuming that equal domestic positions imply equal European strength.
Goals model and dynamic benchmarks
The candidate layer includes a Poisson score model, optional low-score correction candidates, a sequential goal-rating model and a result-based Elo benchmark. Candidate parameters are intentionally not declared optimal yet.
Regulation-time integrity
Extra-time matches are excluded from the current 90-minute fitting layer when the historical source does not provide a guaranteed regulation-time score split. Penalty-shootout tallies are not counted as match goals.
Out-of-sample validation comes next
Execution 4 will evaluate model variants only on matches outside their training window, using Brier Score, Log Loss and calibration analysis. Public probabilities remain blocked until that process selects and validates the forecasting pipeline.
Simulation layer
Only after the match engine is validated will competition fixtures and rules be simulated at scale to estimate qualification, progression and title probabilities.