Research sequence
Apply provider definitions such as Opta's football-statistics definitions, then reserve later observations for evaluation as described by scikit-learn's TimeSeriesSplit documentation. The sequence is:
- Write the exact event, market, line, period and settlement source for every leg.
- Choose provider fields whose definitions and coverage match those events.
- Freeze all features at one decision timestamp and retain missing-data states.
- Estimate a complete probability distribution with a versioned method.
- Validate on later matches and report calibration, proper scores and uncertainty.
- Map every shared match, team, player, data source and model component.
- Compare the joint forecast with an executable accepted price.
- Preserve settlement, corrections and cash return without editing the forecast.
Start with the contract
Do not begin with a list of teams. Begin with the event that will settle: regulation home win, over 2.5 match goals, player over 1.5 shots on target, or team to advance. The same fixture can support many incompatible events.
| Contract field | Research consequence |
|---|---|
| Qualifying period | Determines which match data and outcomes count |
| Line | Determines threshold and push states |
| Provider | Determines event definitions and corrections |
| Participation | Determines player opportunity and void states |
| Decision time | Determines which lineups, injuries and prices were knowable |
Use defined data
Opta's football-statistics definitions demonstrate why possession, sequences, pressure and defensive events need a named provider. StatsBomb Open Data is one first-party example of documented match, event, lineup and selected 360 data with explicit file structure and licence conditions.
Do not merge similarly named provider fields without a tested mapping. Record competition and season coverage, corrections, missingness and whether the data was available before the decision.
Freeze lineups and availability
Sportmonks' lineup documentation distinguishes confirmed from predicted lineups and includes sidelined-player context. Store the provider status and retrieval timestamp rather than converting a prediction into a confirmed fact.
For player markets, model start, substitute and no-appearance states. For team markets, preserve the probability impact of multiple plausible lineups instead of using one lineup as certain.
Build and validate probabilities
Separate model development from final evaluation. scikit-learn's TimeSeriesSplit documentation explains why later observations cannot train an earlier forecast.
| Validation record | Required output |
|---|---|
| Scope | Eligible competitions, markets and dates |
| Baseline | Base rate or stated market-implied method |
| Probability quality | Calibration curve and proper score |
| Coverage | All eligible forecasts, not selected winners |
| Uncertainty | Interval, ensemble spread or sensitivity range |
| Failure analysis | Missing data, drift and rule changes |
scikit-learn's calibration guide explains probability reliability, while the Brier paper supplies a reproducible proper score.
Map dependence before combining
Create one edge for each shared cause:
| Leg A | Leg B | Shared cause | Treatment |
|---|---|---|---|
| Home win | Over 2.5 | Same score state | Direct joint model |
| Player shots | Team goals | Minutes and attacking state | Conditional model |
| Two separate fixtures | Two separate fixtures | Same weather system or model | Scenario sensitivity |
OpenStax's independence rule must be justified before marginal probabilities are multiplied.
Capture the executable price
Record operator, state, event ID, signed American price, decimal conversion, stake, potential return, timestamp and acceptance result. Keep unavailable or rejected tickets in the research log; excluding failed execution can make retrospective results look better than the actual process.
Post-settlement review
Reconcile the official outcome, operator settlement, corrections and cash return. Using a proper probability score such as the one defined in the Brier paper, score the original forecast before reading the match story. Separate model quality, price quality, settlement accuracy, stake choice and the single outcome.
Next step
Use Football Statistics Betting for the next part of this topic.
Continue learning
- Next guide: Live Soccer Parlays
- Related guide: How Soccer Parlays Work
Assumptions and limitations
The workflow does not identify current picks or guarantee that more data improves a model. Data coverage, provider definitions, lineups, odds and competition conditions change. A well-recorded forecast can still be wrong, mispriced or too uncertain to use.

