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

3. The three confidence bands

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

Bawler publishes statistical estimates. Model probabilities are not guaranteed outcomes, and past accuracy does not guarantee future accuracy.

See today's free predictions →