We rebuilt 120 clubs' summer 2024 windows with their own budgets. At first our picks looked far better. When we re-ran it fairly, with each player available to one club only, they weren't. The first result came from many clubs sharing a few players.
- The fair re-run: the clubs' real signings out-produced 61% of the players in their position, on average. Our picks: 56%. A random pick of players they could afford: 57%.
- Formally, no verdict. Once players were taken, 49 of 127 clubs couldn't fill their squads. We had said in advance that more than 30 would make the test inconclusive.
- Every other version agrees. Clubs picking in 200 random orders: clubs 61%, ours 59%, random 57%. Same division only: clubs 61%, ours 58%, random 56%.
- The first run said 75% for us. That figure came from a rule that let many clubs sign the same player. The rest of this page is the original test, kept so you can see how we got there.
Update, 13 October 2026: the re-run is in. We wrote the new rule down and committed it to git before running anything: clubs pick in order of budget, largest first, and a player one club picks is gone for everyone after it. The random squads ran under the same rule. Of the 78 clubs that could be filled, our picks came out 5 points behind the clubs' own signings (95% range 10 behind to 1 ahead) and level with random (5 behind to 3 ahead). We expected the gap to shrink. It went.
Correction, 13 October 2026, written before the re-run. This test flatters our picks, and the first version of this page didn't say how. Nothing stopped two clubs signing the same player, and a few players turn up again and again in our alternative squads. In a 13 October repeat of the first run (the original run did not save who was picked), 120 clubs needed 267 signings and only 50 different players filled them. Six players filled 46% of the slots. One went to 31 clubs. A player joins one club. Count each player once and our picks average 70%, not 75%. Leave out those six and the remaining picks also average 70%. (The re-run above shows the gap does not survive.) But the ranges below treat 120 clubs as 120 separate choices, and they weren't, so they are too narrow.
Those players also earned their numbers in their own divisions, and a defender (the most-picked player is one) who out-produced most of one league would not necessarily out-produce the buyer's. We said we would re-run it with each player available to one club only, rules written down first. That re-run is at the top of this page.
| Most-picked player | His real move, summer 2024 | Position | Clubs we "bought" him for | Out-produced, in his own division |
|---|---|---|---|---|
| R. Pröpper | Twente to Rangers | Defender | 31 | 82% |
| M. Coda | Genoa to Sampdoria | Attacker | 25 | 88% |
| P. Groß | Brighton to Borussia Dortmund | Midfielder | 18 | 94% |
| Jota Silva | Vitória SC to Nottingham Forest | Attacker | 18 | 50% |
| Iván Calero | FC Cartagena to Zaragoza | Defender | 15 | 73% |
| V. Pavlidis | AZ Alkmaar to Benfica | Attacker | 15 | 99% |
Two of the six earned their numbers in Italy's and Spain's second divisions, and one in Scotland. Our test "bought" Pröpper for nine Premier League clubs and five in the Bundesliga, and Coda for eight in the Championship and three in the Premier League. How they would have done there is exactly what this test can't say. The re-run registered a club-by-club list for the ten largest budgets. It isn't on this page yet; we'll add it here.
The original test
The question
Every club makes the same bet each summer: with this money, for these positions, who do we sign? You can't rerun a transfer window. You can rebuild one on paper, using a model that learned from the previous summer only, and see how the alternative would have done.
We wrote the rules down and committed them to git on 6 October, before building a single alternative squad. The rules were not changed after the results came in.
The rules
- Our signing model learned from summer 2023 alone. No 2024 result touched it.
- Every club that paid a reported fee in summer 2024 and had a workable alternative (120 club-windows) gets the budget it actually spent on its outfield signings, and must sign the same number of defenders, midfielders and attackers it did.
- Who it could have bought: every other summer 2024 signing with a reported fee who joined a club of similar strength to the buyer, on our rating as it stood on 1 June 2024. A player who joined a far stronger club was not realistically on a smaller club's list, and the reverse. The typical club had 138 to choose from.
- Our picks: the players we rated highest that fit the budget and the positions.
- The random pick: 200 random squads per club from the same affordable list, same positions, same budget.
How we scored it
Each signing gets one number: the share of players in his position, in his division, that season, that he out-produced. Players level with him count as half. 50% is the middle. 75% means he did more than about three in four of them.
An example. A Championship attacker on 75% had more goals plus assists that season than 75% of the Championship attackers who played.
- Attackers: goals plus assists.
- Midfielders: goals, assists and key passes.
- Defenders: tackles, interceptions and duels won.
It counts season totals at the club he joined, not rates per 90. A signing who never played lands near the bottom. Flops stay in.
We average that number over each club's signings, then over the 120 clubs. A gap of 15 points means our picks out-produced 15 more players in every 100 in their position. On a list of 100, that is about 15 places higher, on average.
The result, first run
Replaced by the re-run at the top of this page.
| Squad | Out-produced, on average |
|---|---|
| Our picks | 75% |
| The clubs' real signings | 60% |
| Random affordable pick | 57% |
- Ours against the clubs: 15 points better, with a 95% range of 10 to 20 points. That range is too narrow (see the correction). Our picks beat the club's own in 89 of 120 windows.
- Ours against random: 18 points better, range 16 to 21. Also too narrow. This is the comparison that matters. If a random squad had beaten the clubs by as much, the gain would have come from the rules, not from our ratings.
- The clubs against random: 4 points better, range from just below zero to 8. Clubs beat the random pick in 70 of 120 windows.
- Weighted by money spent: 77% ours, 60% clubs, 58% random. Same picture. This was in the plan, and we computed it afterwards from the registered per-club results.
What the clubs' number means, and what it doesn't
On this test, in this window, we can't tell the clubs' choices apart from a random pick of players they could afford. The re-run says the same: clubs 4 points ahead of random, range 1 behind to 9 ahead.
That is not the same as saying recruitment is random. Clubs pay wages we can't see, sign for reasons a season total doesn't capture, and know who would actually come. One window is not much. We say "can't tell apart", not "no better".
It didn't improve with more signings. For the 44 clubs that made three or more paid signings, the real intake scored 56% against 57% for random. We decided before the test that this split would decide nothing, and it doesn't.
Why we thought a weak model could win this
Our ratings aren't sharp. Across these signings, what we predicted and what happened line up only loosely: a correlation of about 0.27. We argued that picking the best one or two in each position out of dozens, even on a rough guide, would land well above the average of the list.
The re-run says it didn't. Most of the gain was the same few players, picked over and over.
The catch we looked for
We expected a wash, so we went looking for a flaw. The obvious one: a player's number was earned at the club he actually joined. If our picks had all joined stronger clubs, they'd be borrowing their teammates' quality.
It runs the other way. Our picks joined clubs about 30 rating points weaker than the buyer on our club-strength rating, against about 13 weaker for the random picks. So they weren't borrowing stronger teammates. Across all these signings, the strength of the club a player joined and his number are barely related (-0.01), because the number is measured inside his own division.
That rules out one catch and points at another. A player at a weaker club is more likely to start, and season totals reward minutes. Whether our picks would have played as much at the buyer is the assumption this test can't check.
What this test can't tell you
- We rated each player where he actually went. Our rating used the club he joined: its strength, the minutes open there, who else it signed that summer. It did not rate him for the buyer's squad. Some of that was only known once the window shut.
- No wages. A club's real limit is fees plus wages, and we have no wage data.
- Fees for a small slice. Reported fees cover about 9% of moves, mostly the bigger deals. This tests the visible end of the market.
- Who could sign whom is a guess. We only know a player was for sale, and at what price, because somebody bought him. Selling clubs pick buyers, players pick clubs, and agents get involved.
- It assumes the player would have done as well at the buyer. A player who starts every week at a weaker club might not at a stronger one, and totals reward minutes.
- One window. Our feed stopped reporting fees after summer 2024, so no later window can be tested with a budget.
- Defending is counted, not judged. Tackles and interceptions reward ball-winners over positionally good defenders.
- In the first run, the same player could go to many clubs. The re-run fixed that, and the advantage went. The re-run has its own limit: 49 clubs couldn't be filled, so it compares only the 78 that could.
- No goalkeepers. Our data has no saves or clean sheets.
What this changes
We had planned to run this test on single clubs' records. On this evidence we won't: once each player can go to one club, we found no sign our ratings pick better than the clubs, or than chance. Our model still sorts signings by how likely they are to play (see the summer 2024 back-test). It doesn't yet pick better squads.
Data sources
- API-Football: transfers and reported fees, player season statistics, league fixtures and results.
- Club strength: our own rating, built from those results.
- The rules were committed to git before any result was seen: on 6 October 2026 for the first run, and on 13 October for the re-run.
First run repeated on 13 October 2026 on current data, same rules as 6 October: our picks changed for 8 of the 120 clubs, and the gap over the clubs came out at 15.1 points instead of 14.9. The first-run figures above are from the original, registered run.
