Methodology
How MatchPredictor builds the daily card
Overview
MatchPredictor publishes a filtered subset of football market forecasts twice a day (West Africa Time). The goal is not to list every available fixture — it is to surface picks whose calibrated probabilities clear a publish threshold, then settle them against real scores so the system can learn.
The pipeline has four stages: ingest market and model inputs, blend them into a single probability, calibrate and threshold that probability, then settle finished matches and retrain overnight.
Inputs we use
- Bookmaker prices — decimal odds from a major sportsbook, converted to implied probabilities with margin removed (Shin for three-way markets; power method for two-way markets such as Over/Under and BTTS). These act as a market anchor.
- Statistical models — a Dixon-Coles goals model with time decay and team attack/defence strengths, blended with Elo ratings for form and home advantage. Sparse teams fall back toward a global model rather than inventing unstable numbers.
- Third-party probability feeds — an independent probability source that is quality-checked on ingest. When that feed is unavailable, the pipeline degrades to bookmaker-sourced fixtures so the site still has a coherent card.
- Optional machine-learning signal — per-market LightGBM classifiers that are only promoted into the live blend when they improve holdout Brier score versus the incumbent ensemble.
Ensemble blending
Available signals are combined in logit space (a weighted geometric mean of probabilities). Null or missing signals are skipped so the blend degrades gracefully. After blending, 1X2 probabilities are renormalised to sum to one, and Under 2.5 is treated as the complement of Over 2.5.
Per-market stacking weights are learned on a walk-forward schedule and only replace the live profile when the holdout Brier score improves by a meaningful margin. That promotion gate exists specifically to stop short hot streaks from rewriting the model.
Calibration and publish thresholds
Raw ensemble probabilities are passed through a correction step and then a calibrator (bucket, beta, or isotonic — whichever is currently promoted). Calibration asks a simple question: when we say 70%, do outcomes land near 70% over time?
A pick is published only when its calibrated probability clears a market-specific threshold. Thresholds themselves are tuned on recent settled history with a holdout check. Configured defaults remain live until a tuned threshold is promoted. BTTS picks additionally require an explicit BTTS market quote — a Poisson-only estimate is not enough to appear on the card.
Published markets
| Market | What “published” means |
|---|---|
| Both Teams to Score | Both sides are expected to score at least once |
| Over / Under 2.5 | Total goals expected above or at/below 2.5 |
| Straight Win | Home or away side backed to win in 90 minutes |
| Draw | Low-separation fixtures where the draw angle clears its threshold |
Settlement and learning
After matches finish, scores are matched from multiple result sources and each published pick is marked correct or incorrect. Those settled forecasts feed nightly loops that retune ensemble weights, optional ML models, probability correction, calibrators, and thresholds — always behind walk-forward promotion gates.
The public Results page shows recent settled published picks without cherry-picking wins. Operator analytics (Brier, ECE, CLV, ROI) remain available for site maintenance; the public site focuses on the card, the lists, and the track record.
What this is not
- Not a guarantee of profit or of any single match outcome.
- Not insider information, tipster “locks,” or financial advice.
- Not a bookmaker — we do not accept stakes.
Confidence scores are calibrated probabilities, not marketing labels. A 62% pick should land roughly six times in ten over a large sample — and that still means four losses. Read more in the FAQ or review the responsible use policy.