Why does the club that wins the transfer race so often lose? The winner's curse
When several clubs chase the same striker, the one that gets him is usually the one whose scouts rated him highest, and that often means it paid too much. Auction theory calls this the winner's curse, and it says the more clubs are in the race, the less you should offer.
Intermediate Part 12 of Game Theory Through Football
Contents
The football question
Five clubs want the same striker. Each sends its scouts, each puts a figure on him, and the club with the highest offer gets him. The fans celebrate winning the race. But why did that club win? Usually because its scouts liked him more than anyone else's did. And the most optimistic of five guesses is very likely to be too high.
The concept
This is the winner's curse. It was first described in 1971 by three engineers at the oil company Atlantic Richfield, Capen, Clapp and Campbell. Oil companies bidding for drilling rights kept making less money than they expected on the fields they won. Nobody knew exactly how much oil was under the sea, every company estimated, and the winner was the company whose estimate was highest, which usually meant too high. The economist Richard Thaler later made it famous in a 1988 article.
The curse bites when the thing for sale is worth roughly the same to every bidder, but nobody knows exactly what that is. Economists call this a common value. A striker's goals are worth much the same to any club in the same league, but nobody can see the future, so every club is guessing.
The race in numbers
The numbers are made up. The striker is really worth £20m, to any of the clubs. Nobody knows that. Each club's scouts estimate his worth, and each estimate is off by about £5m either way: some too high, some too low, right on average. Every club offers what its own scouts say, and the selling club takes the best offer.
On average, every club's scouts get it right. But the winner isn't an average club. It's the one whose scouts guessed highest:
| Clubs chasing him | Winner pays above his worth | Winner overpays |
|---|---|---|
| 1 | nothing, on average | half the time |
| 2 | £2.8m | 75% |
| 3 | £4.2m | 88% |
| 5 | £5.8m | 97% |
| 10 | £7.7m | almost always |
A club on its own is as likely to underpay as overpay. Add rivals, and the winner is more and more likely to be the club that got it most wrong. With five clubs in the race, the winner overpays 97% of the time, by £5.8m on average, even though every club's scouts were right on average.
Shade your offer
The cure is to take the curse into account. Before offering, ask: if we win, what does that tell us? It tells you every other club valued him lower. So knock the usual overpayment off your scouts' figure:
- Two clubs in the race: offer about £2.8m under your estimate.
- Five clubs: about £5.8m under.
- Ten clubs: about £7.7m under.
Do that and the winner breaks even on average: sometimes over, sometimes under, about half and half. Auction theorists call this bid shading. It's counter-intuitive: the more clubs that want a player, the further below your own estimate you should stay. A crowded race isn't a sign he's worth more than you thought. It's a warning that winning will mean you rated him highest.
This is a rule of thumb to break even, not the last word: in a real auction each club would also shade to pay less, and the full answer depends on what it expects the others to do.
An open bidding war
Not every race is sealed offers. Sometimes clubs top each other until one drops out. Then the winner doesn't pay its own estimate, only enough to beat the second-keenest club. That takes some of the sting out:
- Two clubs: the winner gets him £2.8m under his worth on average, a bargain. The price is set by the club that rated him lower.
- Three clubs: breaks even on average.
- Five clubs: £2.5m over, and overpays 81% of the time.
- Ten clubs: £5.0m over, and overpays 99% of the time.
With plenty of clubs, even the second-highest guess is too high, and the curse is back.
Better scouting helps, but not how you'd think
Halve the scouts' error, to about £2.5m either way, and with five clubs the winner overpays by £2.9m instead of £5.8m. But it still overpays 97% of the time. Better scouting makes the mistakes smaller; it doesn't stop the winner being the club that guessed highest. It does mean a club can shade its offer less and still break even.
The same trap catches managers choosing between options, not just clubs bidding for players: picking the best-looking of several noisy estimates. That's the optimiser's curse in Decision Science part 11.
Why it matters
- Winning the race is information. It tells you that everyone else rated the player lower. Use that before you bid, not after.
- More rivals, lower offer. A crowded race makes overpaying more likely, not less.
- Scouting quality is worth money. Smaller errors mean smaller overpayments, and a smaller shade.
- How the sale is run matters. Sealed offers hurt the winner more than an open war, with the same number of clubs.
Limitations
- The numbers are made up. The data has no transfer fees or scouting reports.
- A player isn't worth exactly the same to every club. How he fits the system, the wages and the resale value differ. The curse applies to the part of his value that's common to everyone; the part that's special to one club is a reason it can win without being cursed.
- Real transfers are negotiations, not auctions. After the race, the price is bargained over, as in part 8. And the selling club usually knows more about the player than any buyer, which is another reason to be careful.
- Scouts' errors aren't independent. If every club watches the same hat-trick, they may all be too high together, and shading by a fixed amount won't fix that.
Try it yourself
Change the numbers in the snippet: make the scouts' error £10m and see how far below their estimate the clubs should stay. Or next transfer window, notice how often the club that "won the race" for a player is the one that paid the most. The theory says that's no coincidence.
Reproduce the analysis
This needs nothing but Python. All the numbers are made up, and the simulation runs 200,000 races for each line, so it takes a few seconds.
Show the Python42 lines, ready to copy and run.
# From Football Data Science by Bryan McGuire. Free to use with credit.
# https://www.footballdatascience.co.uk/learn/winners-curse-transfer-race
# The winner's curse in a transfer race. All the numbers are made up.
import random
random.seed(1)
WORTH = 20.0 # what the striker is really worth, £m: the same to every club, but nobody knows it
SCOUTING = 5.0 # each club's estimate is off by about this much either way (a standard deviation), £m
TRIALS = 200_000
def race(clubs, scouting=SCOUTING, shade=0.0, open_war=False):
"""Each club values the striker at its scouts' estimate. Sealed offers: every club offers its estimate
less `shade` and the selling club takes the best. Open war: clubs top each other until only one is left,
so the winner pays what the second-keenest club would have.
Returns the winner's average overpayment (£m) and how often it pays more than the player is worth."""
over = []
for _ in range(TRIALS):
estimates = sorted(random.gauss(WORTH, scouting) for _ in range(clubs))
price = estimates[-2] if open_war else estimates[-1] - shade
over.append(price - WORTH)
return round(sum(over) / TRIALS, 1) or 0.0, sum(o > 0 for o in over) / TRIALS
print("sealed offers, each club offering its estimate: what the winner pays above his worth on average, and how often it overpays")
curse = {}
for clubs in (1, 2, 3, 5, 10):
curse[clubs], often = race(clubs)
print(f" {clubs:>2} club{'s' * (clubs > 1)}: {curse[clubs]:+.1f}m, {often:.1%}")
print("\noffer the usual overpayment less than your estimate, and the winner breaks even on average")
for clubs in (2, 5, 10):
over, often = race(clubs, shade=curse[clubs])
print(f" {clubs:>2} clubs, offer £{curse[clubs]:.1f}m under your estimate: {over:+.1f}m on average, overpays {often:.0%} of the time")
print("\nan open bidding war: the winner pays what the second-keenest club would have")
for clubs in (2, 3, 5, 10):
over, often = race(clubs, open_war=True)
print(f" {clubs:>2} clubs: {over:+.1f}m on average, overpays {often:.0%} of the time")
print("\nbetter scouting shrinks the curse (5 clubs, sealed offers)")
for scouting in (5.0, 2.5):
over, often = race(5, scouting=scouting)
print(f" estimates off by £{scouting}m: winner pays {over:+.1f}m above his worth, overpays {often:.0%} of the time")
Further reading
- Winner's curse, Wikipedia: the idea, its origin in oil-lease auctions, bid shading, and where it turns up, including free agency in professional sports.
- Capen, Clapp and Campbell, "Competitive Bidding in High-Risk Situations", Journal of Petroleum Technology (1971): the paper that first described the curse, from oil companies' disappointing returns on the leases they won.
- Anomalies: The Winner's Curse, Richard Thaler, Journal of Economic Perspectives (1988), PDF: the article that brought the idea to a wide audience, including Bazerman and Samuelson's experiment where students bid for a jar of coins and the winners lost money.
- Common value auction, Wikipedia: the kind of auction where the curse bites, and why bidders who allow for it don't overpay on average.