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.
- Team news — availability is taken into account where it is known when a call is made. Calls are locked at about 5pm UK time, typically 2 days before kickoff, so later news, including the confirmed lineups, is not in them.
- End-of-season motivation — title, European and relegation pressure in the final weeks.
3. The three calls on each match
- Most likely — the model's main call. If one side is a clear favourite to win outright, that win is the call. Otherwise it is the most likely of the outcomes the model rates well above even, which is often a goals call such as “over 1.5 goals” or a “win or draw”. Most of these calls have been stated at 69–84%.
- Close call — an outcome the model rates at around even, pointing the same way as its favourite and saying something different from the main call. Many matches have none: 742 of 2,241 settled matches carried no close call. Most have been stated at 46–64%.
- Outside shot — a less likely outcome that still has a real chance, chosen so it does not clash with the other two calls. Most have been stated at 23–34%.
All three are free.
4. Logging & settlement — why the record is trustworthy
Calls are published and locked at about 5pm UK time, typically 2 days before kickoff. Since 28 May 2026, a snapshot of every published call is taken each morning (recently between 07:36 and 09:13 UK time), and its fingerprint is written into the Bitcoin blockchain, so that snapshot cannot be changed or backdated without it showing. Since 21 June 2026, 486 matches have also had their own proof taken shortly before kickoff. Of the 2,241 calls settled so far, 1,489 are covered by a proof made before kickoff. The other 752 are not — 710 of them date from before 28 May 2026. You can check any snapshot on the verify page.
Results are settled automatically from live match data — we never hand-grade our own calls, and losing calls stay on the record. A call can be revised when we fix a fault in the model — 102 have been, 101 of them before kickoff — and the original is kept alongside the revision. Matches that are cancelled or postponed are marked void rather than graded (16 so far). 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.
- Team news that arrives after a call is locked, including the confirmed lineups, isn't in the call.
- 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.