Millwall FC crest

Data science, for the love of it

Will Millwall win the Championship?

I have three great passions: data science, flying, and Millwall Football Club.

By admitting that last one I have just lost the majority of my target market. But as we say down at The Den: you don’t like me, I don’t care.

Just kidding. I genuinely appreciate you being here, and I appreciate even more that whoever you support, we are all united by the same daft, wonderful love of football.

So I pointed my other passion at this one. Below is an honest, living model of Millwall’s promotion chances, built up in four steps from a naive coin-flip to a full Monte Carlo simulation of the rest of the season. It refreshes around every matchday, and yes, I take the numbers personally.

0.0%

chance of promotion this season (top 6)

Dockers Derby

This one is not just another match

West Ham are the oldest enemy. The Dockers Derby goes back to the 1880s and 1890s, when Millwall’s men worked the docks and mills of the Isle of Dogs and West Ham grew out of the Thames Ironworks across the river. Two crews of dockers, one Thames between them, and well over a century of needle. It is one of the fiercest rivalries in English football, and it means everything.

Every Millwall fan will be watching this one. We do not just want it, we need it. Come on you Lions.

home vs West Ham United FC · Saturday 19 September
Millwall FC crest

The matchday update

Eleven games in and we sit 11th with 10 points from 7 matches, the model reckoning there's a 21.3% chance we sneak into the playoffs come May. The last few weeks have been a proper rollercoaster, truth be told, but that 4-0 demolition of Bolton showed what we're capable of when we get it right, and Saturday's home fixture against West Ham is our chance to build on any momentum. Come on you Lions.

Next up: home vs West Ham United FC · Saturday 19 September

Current position

11.

of 24

Projected finish

10.

range 5–17

Projected final points

67

57–77

Last five

LLWLD
Georg and Poling in Millwall shirts at The Den
Poling and me at The Den. She came along for me and stayed for the Lions.

Recent results weighted higher through an Elo-style update, then 20,000 simulations of the rest of the season. This is the headline number.

0.7%

Win the title

2.5%

Automatic promotion

21.3%

Reach the playoffs

Each figure is the share of 20,000 simulated seasons in which that outcome happened. Promotion means top two (automatic) or top six (through the playoffs); the title means finishing first.

Where the simulation says we finish

9th8.3%· most likely

1st24th
Auto promotion (top 2)Playoffs (3rd–6th)Outside top 6

The table today

PosTeamGDPts
1West Ham United+1114
2Southampton+1014
3Swansea City+614
4Middlesbrough+414
5West Bromwich Albion+314
6Queens Park Rangers+312
7Charlton Athletic-112
8Wolverhampton Wanderers+411
9Lincoln City011
10Birmingham City+110
11Millwall010
12Stoke City010
13Bristol City-210
14Norwich City09
15Sheffield United-19
16Blackburn Rovers08
17Watford-28
18Portsmouth-17
19Wrexham-47
20Bolton Wanderers-57
21Cardiff City-44
22Derby County-74
23Preston North End-73
24Burnley-83

Projected final table

PosTeamxPts
1West Ham United85
2Southampton81
3Swansea City80
4Wolverhampton Wanderers77
5Middlesbrough74
6West Bromwich Albion73
7Queens Park Rangers72
8Stoke City68
9Millwall67
10Norwich City66
11Birmingham City65
12Charlton Athletic65
13Lincoln City63
14Sheffield United61
15Blackburn Rovers61
16Bristol City60
17Portsmouth59
18Watford55
19Wrexham54
20Bolton Wanderers50
21Cardiff City50
22Burnley45
23Derby County45
24Preston North End43

Each team’s average points across 20,000 simulated seasons, ranked. The most likely shape of the final table, though every line carries a wide band.

How the model works

  1. 1

    Naive prior

    No knowledge at all: 24 teams, so a flat 1 in 24. The baseline every model must beat.

  2. 2

    Team strength

    Attack and defence ratings from goals scored and conceded, with home advantage, then a full season simulated from scratch. Position-blind.

  3. 3

    + Current standings

    Keeps the points already on the board and simulates only the remaining fixtures with those strength ratings.

  4. 4

    + Form & simulation

    Recent results weighted higher through an Elo-style update, then 20,000 simulations of the rest of the season. This is the headline number.

The data science, and why

Poisson goals model

Football goals follow a Poisson process closely enough to be useful, so each team’s scoring is a Poisson rate built from goals scored and conceded versus the league average, plus a home-advantage term. It is the workhorse of football forecasting: transparent, fast, and hard to overfit.

Shrinkage (a light prior)

Six games in, raw scoring rates are noisy. I pull each strength toward the league average with a small Bayesian-style prior, so one 5-1 does not hijack the whole forecast. It fades as real games accumulate.

Elo-style form

A season average treats August and last Saturday the same. An Elo update nudges each rating by how surprising a result was, letting recent form count for more without discarding the base rate.

Monte Carlo simulation

There is no tidy formula for “probability of finishing top six” once every remaining fixture and tie-breaker is in play. So I simulate the rest of the season 20,000 times, sampling each scoreline from the Poisson rates, and count how often Millwall land in each position. This is how FiveThirtyEight’s SPI and Opta’s supercomputer work.

Layered on purpose

Each tab adds exactly one idea, so you can watch the estimate move from a naive prior to a full simulation. A model you cannot explain is a model you should not trust, and I would rather show my working.

Honest limitations

  • Goals, not expected goals. Free xG data does not exist for the Championship, so the model learns from actual goals. Goals are noisier than xG, so early-season numbers swing a lot.
  • No context. It knows nothing of injuries, suspensions, transfers, new managers, fixture congestion or a derby-day mood. A key striker out until May only shows up once the results do.
  • Independence assumptions. Poisson treats goals as independent; real games have state effects (2-0 up and cruising). Dixon-Coles corrects the very low scores; the rest is accepted noise.
  • The table is not destiny. With most of the season to play, the bands are wide on purpose. The single number is the centre of a range, not a promise.
  • It is for the love of it. A personal project to show the method honestly. Not a betting model, not affiliated with the club.
Millwall FC crest

The real thing

This is my model, not the club. For the actual Lions, the fixtures, the tickets and the news, go to the source. And if you fancy it, the shop does a lovely shirt (Poling can vouch for it).

Fixtures, results and standings from football-data.org, refreshed around each matchday. Goals-based model (free expected-goals data does not exist for the Championship). A personal project, not affiliated with Millwall FC, and absolutely not betting advice.

17/09/2026 · 2026/20261 · 83 played

1%of every invoice goes to a UK charity you pick.

A donation, never sponsorship. You choose the cause at onboarding.

The story behind the pledge →

Stay ahead of your competition.

The latest innovative products and services, straight to your inbox before your competitors hear about them.

Get up to 5% off your first six months: 1% per topic you pick, the full 5% when you take everything. Limited offer · ends 31 December 2026.

New clients only. Terms apply.

* Up to 5% off your first six monthly invoices, new clients only. Full terms.

Questions about pricing, contracts or how we work together?

Read the FAQ