Millwall’s summer, measured.
Twelve signings, eleven departures, three Premier League clubs landing in the division, and the window now shut. The full accounting, from 542 matches of event data and 20,000 simulated seasons.
The window ended the way the strategy said it would
Deadline day brought the window’s one big sale and its last two answers. Femi Azeez went to Brighton for £12.5m rising to £15m, two years after arriving from Reading and one season after making the division’s team of the year. Filip Marschall arrived from Stevenage to answer the goalkeeper question this page had been asking since July. And Romain Esse came home: sold to Crystal Palace for £12.4m in January 2025, back on a season loan to play on the flank Azeez has just left.
The shape of that matters more than any single deal. These accounts have never once shown a profit before player sales, in twelve years of them. What rescued last season’s bottom line was £21.6m of player trading, and the honest question in March was whether that was a cycle or a one-off. This window is the first evidence: another team-of-the-year player sold at peak, the fee reinvested across twelve arrivals profiled in the division they actually played in, and the squad’s spine kept. The cycle turned again.
The first test of the finished squad is tonight. The Wrexham preview reads it in full →
The season that ended better than it felt
The play-off semi-final against Hull — 0–2 on aggregate, the second leg dying at the Den — is how 2025/26 will be remembered. It shouldn’t be how it’s measured. Millwall finished third on 83 points, behind only two promoted sides, with the division’s third-best goal difference. Hull, who ended the season, finished nine points and three places below.
Every club that finished above Millwall has left the division. On last season’s numbers, this is the best team left in the Championship. That is the baseline the summer had to protect.
Twelve in, eleven out, every department answered
Read as a list, the departures look alarming: 27% of last season’s minutes have left the building. Read by position, the window resolves into something more deliberate: every department that lost someone has been answered, centre-back twice over, and the goalkeeper question that stood open all summer was settled in the window’s final hours.
9,627 OF 36,113 SQUAD MINUTES DEPARTED (27%) · THE #1 SHIRT: CROCOMBE, A RETURNING JENSEN, NOW MARSCHALL · RETAINED SPINE: COOPER + DE NORRE EXTENDED · AZEEZ SOLD FOR £12.5M RISING TO £15M, ESSE BACK ON LOAN · MOST FEES UNDISCLOSED
Twelve profiles and a data gap
Each player is measured per 90 minutes against his own league’s positional peers — a Belgian number is a Belgian number, a League One number is a League One number, and the card says so. The role rating is a weighted percentile over the metrics the position exists to deliver. For calibration: on the same template, Femi Azeez rates 77 and Jake Cooper 57.
Who actually stands in the way
Three clubs come down with parachute money; only one comes down intact. West Ham banked £145m for Fernandes and Summerville and have signed almost nobody — a promotion favourite on paper, currently thinning. Southampton, expelled from the play-offs for filming opponents’ training sessions, start the season on −4 points. And of last season’s top six, only Middlesbrough and the sanctioned Saints remain.
West HamWEAKENED — FOR NOW
Sold Fernandes (£85m) and Summerville (£60m), lost Wilson and both keepers. £145m banked, almost nothing spent. Fast-moving.
BurnleySTABLE → STRONGER
PL exodus, but Florentino Luís (£20.7m, Benfica) is a statement Championship signing at the base of midfield.
WolvesSTABLE, WITH A CONCERN
João Gomes sold for £38m; ageing frees in (Trippier, Jiménez). New manager mid-rebuild.
SouthamptonSANCTIONED
Five arrivals, £19.45m spent, nobody sold — but the season starts on −4 points.
MiddlesbroughSTABLE
Lost Hackney (£16.5m), the engine of the Wembley run, and Fry. Reinvested in Lankshear and Sarmiento.
WrexhamWATCH FLAG
Zero arrivals as of late July. Windass (16 goals) retained. A squad standing still after 7th.
DerbySTABLE
Bobby Clark (£6m) the eye-catcher; light business so far for a club with ambitions.
Where this squad should finish
Twenty thousand simulated seasons, played out match by match rather than drawn as a season total. The model is fitted on goals, not points, and that distinction is the story: Millwall took 82 points last season from goals worth 74. A projection built on points carries that eight-point overperformance forward as though it repeats. This one does not.
Ordered by median points, but the bands are what matter. The clubs at the top are separated by three or four points across ranges that almost entirely overlap, which is a cluster rather than a running order. The right-hand column is the number that decides anything: how often each club finishes in the top six.
Bivariate Poisson goals model with a low-score correction, fitted by maximum likelihood on 545 completed results, recent form weighted more heavily · each club keeps 70% of its fitted strength into next season, the rest regressing to the division mean — a figure measured across ten season-pairs, not chosen · relegated clubs enter at the strength of last season’s 5th-placed club and promoted clubs at 20th, both measured across 30 arrivals of each type over ten seasons rather than assumed — though the relegated spread runs from 1st to 17th, so one number badly understates how wrong this can be for any single club · churn adjustments from the 24 July transfer snapshot, Millwall’s revised on squad-quality grounds · Southampton’s −4 applied · bands are 10th to 90th percentile. Replaying last season, the model lands within 2.8 points per club; fitted on the first 60% of it, it beats the division’s own base rates by 3.7% on ranked probability score. The window closed on 1 September. This projection is the 24 July fit: re-running it honestly means refreshing all 24 clubs’ closed-window churn, not just ours, and that assessment is in progress. The updated projection and the diff will be published here when it is done.