How Bawler's football model works
Bawler turns team data into match probabilities, and probabilities into calls. This page explains exactly how — the model, the inputs, how calls are selected and settled, and where the model is weak. No black box.
1. The scoring model
We model each team's goals as a rate: how many they are expected to score, and how many they are expected to concede, with a linking term that captures how the two sides' scoring moves together. From the resulting spread of possible scorelines we derive every outcome probability — win/draw/win, over/under goals, both teams to score, correct score, and more.
2. The inputs
- Rolling expected goals (xG) — time-decayed, so recent matches weigh more than old ones.
- Form & opponent strength — adjusted for the quality of opposition faced.
- Home advantage — league- and venue-aware.
- Lineups & injuries — calls are finalised when official lineups drop, with availability adjustments.
- End-of-season motivation — title, European and relegation pressure in the final weeks.
3. The three confidence bands
- High confidence — the single outcome the model is surest of, typically ~70–80% model probability. Free.
- Medium confidence — an outcome the model rates meaningfully more likely than the consensus does. Free.
- Outside shot — a lower-probability call the model rates higher than most would expect. Free.
4. Logging & settlement — why the record is trustworthy
When lineups confirm (~75 minutes before kickoff) each prediction is written to an append-only log with a content hash. That hash makes it tamper-evident: it cannot be quietly changed or backdated after the fact. Results are settled automatically from live match data — we never hand-grade our own calls, and nothing is ever deleted. Every settled prediction and the live hit rate are on the public track record, which you can recompute yourself.
5. Weekly recalibration
The model is recalibrated weekly against actual results, so probability estimates stay honest over time rather than drifting. We track calibration (do things we call 70% happen ~70% of the time?), not just hit rate.
6. Limitations & known failure modes
- Low-data leagues and early-season fixtures have noisier xG and wider error.
- Derbies and cup one-offs are less predictable than the model's base rates imply.
- Late team news after lineup lock isn't captured.
- No model beats variance in the short run — judge it over large samples, not single weeks.
Bawler publishes statistical estimates. Model probabilities are not guaranteed outcomes, and past accuracy does not guarantee future accuracy.