This page describes the simple attack–defence model we use on the football data page and in worksheet question 11. It is for teaching probability and averages only—not betting advice.
Important: Predictions are generated from cached past results and a fixed formula. They do not use team news, injuries, or live odds. Treat every figure as a classroom illustration.
How the model works
- Data: Finished league matches from our API-Football cache (
fixtures_ft_PL.json / fixtures_ft_ELC.json), refreshed with the rest of the football quiz data.
- Next fixtures: The same next-match list as elsewhere on the site—official ECAL calendars when we have a usable map for the league, otherwise a merge of API-Football and The Odds API caches—so each club’s “next match” matches the predictions table and question 11.
- Team strength: For each club we look at goals for and against at home and away. We blend 70% from the last five games at that venue with 30% from the full season at that venue (constants
BLEND_RECENT / BLEND_SEASON in code).
- League context: We compare each side to league-average goals at home and away, then combine home attack × away defence (and vice versa) to get expected goals for the fixture. Expected goals are capped before display.
- Scoreline display: We show mean expected goals (two decimal places) and a rounded integer scoreline for easy table-updates in class.
- Win / draw / loss: We use a simple Poisson model on a 0–8 goals grid for each side, then normalise to percentages.
- Notes column: Short text flags which factors (e.g. strong home attack, leaky away defence) nudged the forecast—again for discussion, not tipping.