Track record
We put a number on every graduate. When one of them actually moves, the market marks our homework — and we publish the marking here.
Every row is one call: the estimate that was standing before the transfer, the fee that was really paid, and the gap between the two. Sharp calls and embarrassing ones, same table, same rules. Aggregators do not do this. That is rather the point.
- Calls judged
- 10graduates we valued who then moved for a fee
- Mean absolute error
- €11.2maverage distance between our number and the fee
- Within 25%
- 40%4 of 10 priced moves
- Median gap
- 32%the typical miss, either direction
sharpestour best call
Danny Welbeck
we said €6m EST · they paid €5.9m FEE
+2% — a shade high
softestour worst call
Kerim Alajbegović
we said €70.4m EST · they paid €32m FEE
+120% — we were well over
Every call, judged
Newest move first. A positive gap means we were high, a negative one means the market paid more than we said. Anything past 25% is flagged in sienna — no hiding it.
- we said€46.8mESTas of 2026-08-17they paid€35.1mFEE2026-08-18
+33%we were well overreceipt
S.L. Benfica → Newcastle United F.C.
- we said€9.1mESTas of 2026-08-06they paid€25.7mFEE2026-08-15
-65%we were well underreceipt
Celtic F.C. → West Ham United F.C.
- we said€34.9mESTas of 2026-08-06they paid€30mFEE2026-08-15
+17%we were highreceipt
Tottenham Hotspur F.C. → Inter Milan
- we said€16.9mESTas of 2026-08-06they paid€30.4mFEE2026-08-11
-44%we were well underreceipt
Southampton F.C. → Fulham F.C.
- we said€28.7mESTas of 2026-08-06they paid€30.1mFEE2026-08-09
-4%a shade lowreceipt
Chelsea F.C. → Como 1907
- we said€15.6mESTas of 2026-08-06they paid€9.9mFEE2026-08-09
+56%we were well overreceipt
Aston Villa F.C. → Paris Saint-Germain FC
- we said€36.4mESTas of 2026-08-05they paid€52.7mFEE2026-08-06
-31%we were well underreceipt
Manchester City F.C. → Leeds United F.C.
- we said€43.6mESTas of 2026-08-02they paid€39.8mFEE2026-08-03
+10%a shade highreceipt
Real Madrid CF → Fulham F.C.
- we said€70.4mESTas of 2026-08-01they paid€32mFEE2026-08-02
+120%we were well overreceipt
Bayer 04 Leverkusen → Juventus FC
- we said€6mESTas of 2026-07-31they paid€5.9mFEE2026-08-01
+2%a shade highreceipt
Brighton & Hove Albion F.C. → Chelsea F.C.
| Player | Academy | We said | They paid | Gap | Date | Source |
|---|---|---|---|---|---|---|
| Amar Dedić | Red Bull Salzburg | €46.8m ESTas of 2026-08-17 | €35.1m FEES.L. Benfica → Newcastle United F.C. | +33%we were well over | 2026-08-18 | receipt |
| Arne Engels | Club Brugge KV | €9.1m ESTas of 2026-08-06 | €25.7m FEECeltic F.C. → West Ham United F.C. | -65%we were well under | 2026-08-15 | receipt |
| Djed Spence | Fulham F.C. | €34.9m ESTas of 2026-08-06 | €30m FEETottenham Hotspur F.C. → Inter Milan | +17%we were high | 2026-08-15 | receipt |
| Shea Charles | Manchester City F.C. | €16.9m ESTas of 2026-08-06 | €30.4m FEESouthampton F.C. → Fulham F.C. | -44%we were well under | 2026-08-11 | receipt |
| Trevoh Chalobah | Chelsea F.C. | €28.7m ESTas of 2026-08-06 | €30.1m FEEChelsea F.C. → Como 1907 | -4%a shade low | 2026-08-09 | receipt |
| Lucas Digne | Lille OSC | €15.6m ESTas of 2026-08-06 | €9.9m FEEAston Villa F.C. → Paris Saint-Germain FC | +56%we were well over | 2026-08-09 | receipt |
| James Trafford | Manchester City F.C. | €36.4m ESTas of 2026-08-05 | €52.7m FEEManchester City F.C. → Leeds United F.C. | -31%we were well under | 2026-08-06 | receipt |
| Gonzalo García Torres | Real Madrid Club de Fútbol | €43.6m ESTas of 2026-08-02 | €39.8m FEEReal Madrid CF → Fulham F.C. | +10%a shade high | 2026-08-03 | receipt |
| Kerim Alajbegovićsoftest | Bayer 04 Leverkusen | €70.4m ESTas of 2026-08-01 | €32m FEEBayer 04 Leverkusen → Juventus FC | +120%we were well over | 2026-08-02 | receipt |
| Danny Welbecksharpest | Manchester United F.C. | €6m ESTas of 2026-07-31 | €5.9m FEEBrighton & Hove Albion F.C. → Chelsea F.C. | +2%a shade high | 2026-08-01 | receipt |
Gap is our estimate against the reported fee, as a share of the fee. Add-ons, sell-on clauses and instalments are excluded unless the report gives a total. Every euro on this page is real money someone paid, except the ones badged EST — those are ours.
Our error by price band
The model is not equally sharp everywhere, and we can say where. Each band below is a tenth of our predictions, cheapest to dearest, scored against real transfers the model had never seen — refreshed at every retrain, never hand-tuned.
| Band | n | Mean error | Typical miss | Lean |
|---|---|---|---|---|
| €1.3m – €5.5m | 59 | €5m | 58% | 25% low |
| €5.5m – €8.2m | 60 | €6.3m | 57% | 15% low |
| €8.3m – €12.6m | 59 | €7m | 48% | level |
| €12.6m – €16.4m | 60 | €8.2m | 37% | 3% low |
| €16.5m – €20.1m | 59 | €9.7m | 34% | 16% high |
| €20.1m – €24.3m | 60 | €11.5m | 38% | 7% low |
| €24.5m – €30.4m | 59 | €12.6m | 39% | 5% high |
| €30.4m – €38.5m | 60 | €12.6m | 35% | 10% high |
| €38.5m – €52.8m | 59 | €14.6m | 29% | 16% high |
| €53.9m – €112.7m | 60 | €20.9m | 26% | 12% high |
Measured on 595 real transfers, replayed walk-forward: each prediction came from a model trained only on earlier fees, level calibration included. The mean error alone misleads across bands — €10m off is sharp work on a €100m player and a disaster on a €2m one — which is why the typical miss (the median gap, in %) and the lean (which way we usually miss) sit beside it. Euros in today’s money.
Reported facts on trial
Some head-of-market values are not model output but reported facts — a rejected bid, a release clause, an asking price — each published with its receipt. Facts go stale too, so we journal every one and wait for the market to test it: when an anchored player later moves for a disclosed fee, the pair lands here — how old the fact was, and how far from the money.
No anchor has yet been tested by the market. Collecting since 2026-08: 9 players carry an anchored value today. A half-life needs a sample — we would rather wait than fit a curve to a handful of points.
1 older pair can be reconstructed from a press date that precedes the fee — but we transcribed it afterwards, knowing the outcome, so it is shown as a receipt, not counted as evidence.
| The fact | Anchor | Fee paid | Fact age | Anchor ÷ fee |
|---|---|---|---|---|
| Anthony Gordon (hindsight)fee paid · 2026-05-29 | €70m REPORTED | €81.1m FEE2026-07-01 | 33 days | 0.86 |
A clause caps a value and a rejected bid floors one — their ratios check a bound, they do not measure an error. One more reason no average is printed.
What counts as a judged call
- T1He has to be ours to judge
- The player is an academy graduate on this site, and we had published a value for him before he moved. If we never put a number on a player, we do not get to claim him afterwards.
- T2The fee has to be public
- Disclosed fees only, with a link to the report. Undisclosed means unscoreable, so those moves stay off the table instead of being guessed at — a guess about a guess is not a track record.
- T3The estimate is the old one
- We are scored on the number that was standing before the transfer, from the snapshot published at the time, not on anything tidied up once the fee was known. The date of that snapshot sits under every estimate below.
- T4Free transfers are listed, not scored
- A move for nothing still shows up with the value we had on the player, because that gap is real money. It gets no percentage — you cannot be a percentage off zero — so it counts in the euro error and sits out of the median.
- T5Nothing comes down
- A humiliating row stays up exactly as long as a flattering one. The whole point of the page is that we do not get to curate it.
Why we bother
Anyone can publish a number. The only thing that separates a valuation from a guess is whether it is checked afterwards, in public, by someone who cannot edit the result. The rules say how we arrive at a value; this page says how often that value survived contact with a chairman.
Spotted a move we should have judged? Open an issue with the fee and the report. It lands in the next refresh, flattering or not.
Judged up to 2026-08-19 · rules phase0-r1r16-v1 · values gbt-v2.5. Fees as reported by the linked sources; no Transfermarkt data anywhere in the pipeline.