How our numbers work
The maths behind match predictions, season simulations, fixture difficulty and the texts on our match pages.
1. The match model
We use a Poisson goals model. For every club we measure four ratings from the current league table: attack and defence at home, and attack and defence away, each relative to the league average.
Expected goals for the home side = league average home goals × home attack rating × away defence rating of the opponent (and the same in reverse for the away side). Early in the season every rating is blended with four "average" matches so that a couple of freak results do not dominate.
From the two expected-goals figures we compute the probability of every scoreline from 0–0 to 10–10, which gives the home win, draw and away win percentages and the most likely score.
For cup ties between different divisions, each club is rated inside its own league and a division-strength factor is applied. Finals are treated as neutral venues.
2. The season simulator
We play every remaining league fixture 10,000 times using the match model, add the simulated points to the real table, rank clubs by points, goal difference and goals scored, and count how often each club finishes in each position.
Scottish Premiership: we simulate up to the split after round 33, divide the table into top and bottom six, and — if the post-split fixtures have not been published — generate the five remaining rounds inside each half. Clubs cannot move between halves after the split, exactly as in the real competition.
3. Fixture difficulty
Each upcoming opponent is rated from 1 (easiest) to 5 (hardest) according to its current league position, with half a point added for away matches.
4. Match texts
Previews and reports are written from facts computed by our code: positions, points, form, head-to-head records and model probabilities. Where an AI writing assistant is used, it receives only those facts, and every number in its text is automatically checked against them. Texts that fail the check are discarded and replaced by our template text. Betting vocabulary is blocked.
5. What the model doesn't know
- Injuries, suspensions and squad rotation
- Managerial changes and transfers
- Points deductions
- Weather, pitch conditions or motivation
Probabilities describe uncertainty; they are not guarantees. Football Today does not provide betting advice.
Data
Fixtures, scores, line-ups, statistics and tables come from our football data provider and are refreshed continuously — every 15 seconds for live matches.