🎲 Against Expectation

The record book says who won. It cannot say who was lucky, who was robbed, or which result was genuinely impossible. Every match in six European top flights since 1888 and every NFL game since 1920 is scored here against the chance it was given before kick-off, on one model, which turns out to reveal several things none of those leagues has ever announced.

51,330 English top-flight matches 1888-89–2025-26 · 125,745 matches in 5 continental top flights 1928-29–2024-25 · 18,195 NFL games 1920–2025 · squad value through 2026-06 · built 2026-09-05
Football home advantage
191 → 56
Elo points, 1901-02 to 2025-26
NFL home advantage
190 → 29
Elo points, 1925 to 2025
Biggest season, football
+27.4
Leicester City, 2015-16
Longest odds ever beaten
3.8%
Leicester City at Liverpool, 1980-81

Home advantage is dying, in both sports at once

Not a rule change, not a season, not one league.

How this is measured
Two sports on different continents, with nothing in common but crowds and travel, both peaked around the same moment and have been falling ever since.
English top flightNFLElo points of home advantage, five-season moving window
Home advantage in Elo points, 1889 to 2026050100150200190019201940196019802000202056footballEnglish top flight 1888-89: 155 Elo points, home win 59.1%English top flight 1889-90: 142 Elo points, home win 57.6%English top flight 1890-91: 146 Elo points, home win 59.1%English top flight 1891-92: 151 Elo points, home win 60.2%English top flight 1892-93: 154 Elo points, home win 59.5%English top flight 1893-94: 158 Elo points, home win 60.5%English top flight 1894-95: 164 Elo points, home win 60.5%English top flight 1895-96: 175 Elo points, home win 61.2%English top flight 1896-97: 162 Elo points, home win 58.5%English top flight 1897-98: 168 Elo points, home win 58.4%English top flight 1898-99: 172 Elo points, home win 57.1%English top flight 1899-00: 172 Elo points, home win 56.9%English top flight 1900-01: 166 Elo points, home win 55.4%English top flight 1901-02: 191 Elo points, home win 57.8%English top flight 1902-03: 183 Elo points, home win 58.4%English top flight 1903-04: 177 Elo points, home win 58.0%English top flight 1904-05: 169 Elo points, home win 58.0%English top flight 1905-06: 170 Elo points, home win 58.5%English top flight 1906-07: 161 Elo points, home win 57.8%English top flight 1907-08: 157 Elo points, home win 56.2%English top flight 1908-09: 146 Elo points, home win 55.3%English top flight 1909-10: 146 Elo points, home win 54.8%English top flight 1910-11: 138 Elo points, home win 53.5%English top flight 1911-12: 134 Elo points, home win 53.0%English top flight 1912-13: 127 Elo points, home win 52.4%English top flight 1913-14: 133 Elo points, home win 52.8%English top flight 1914-15: 135 Elo points, home win 52.2%English top flight 1919-20: 136 Elo points, home win 52.4%English top flight 1920-21: 132 Elo points, home win 51.0%English top flight 1921-22: 139 Elo points, home win 51.7%English top flight 1922-23: 151 Elo points, home win 52.7%English top flight 1923-24: 151 Elo points, home win 52.5%English top flight 1924-25: 152 Elo points, home win 51.9%English top flight 1925-26: 160 Elo points, home win 53.5%English top flight 1926-27: 168 Elo points, home win 54.4%English top flight 1927-28: 161 Elo points, home win 53.7%English top flight 1928-29: 163 Elo points, home win 54.9%English top flight 1929-30: 163 Elo points, home win 56.1%English top flight 1930-31: 159 Elo points, home win 55.9%English top flight 1931-32: 157 Elo points, home win 56.3%English top flight 1932-33: 158 Elo points, home win 56.8%English top flight 1933-34: 161 Elo points, home win 56.7%English top flight 1934-35: 166 Elo points, home win 56.3%English top flight 1935-36: 172 Elo points, home win 56.4%English top flight 1936-37: 179 Elo points, home win 55.9%English top flight 1937-38: 176 Elo points, home win 54.9%English top flight 1938-39: 172 Elo points, home win 54.5%English top flight 1946-47: 154 Elo points, home win 53.7%English top flight 1947-48: 141 Elo points, home win 52.7%English top flight 1948-49: 132 Elo points, home win 51.3%English top flight 1949-50: 126 Elo points, home win 50.6%English top flight 1950-51: 111 Elo points, home win 49.2%English top flight 1951-52: 116 Elo points, home win 49.0%English top flight 1952-53: 121 Elo points, home win 49.2%English top flight 1953-54: 121 Elo points, home win 50.1%English top flight 1954-55: 116 Elo points, home win 50.3%English top flight 1955-56: 124 Elo points, home win 51.6%English top flight 1956-57: 131 Elo points, home win 52.4%English top flight 1957-58: 127 Elo points, home win 52.7%English top flight 1958-59: 118 Elo points, home win 52.0%English top flight 1959-60: 119 Elo points, home win 52.4%English top flight 1960-61: 118 Elo points, home win 52.3%English top flight 1961-62: 117 Elo points, home win 52.3%English top flight 1962-63: 113 Elo points, home win 51.3%English top flight 1963-64: 113 Elo points, home win 50.8%English top flight 1964-65: 123 Elo points, home win 51.6%English top flight 1965-66: 125 Elo points, home win 51.6%English top flight 1966-67: 120 Elo points, home win 51.0%English top flight 1967-68: 129 Elo points, home win 51.9%English top flight 1968-69: 141 Elo points, home win 52.2%English top flight 1969-70: 131 Elo points, home win 50.2%English top flight 1970-71: 128 Elo points, home win 48.9%English top flight 1971-72: 131 Elo points, home win 48.7%English top flight 1972-73: 134 Elo points, home win 48.3%English top flight 1973-74: 129 Elo points, home win 47.7%English top flight 1974-75: 138 Elo points, home win 49.0%English top flight 1975-76: 142 Elo points, home win 49.6%English top flight 1976-77: 151 Elo points, home win 50.1%English top flight 1977-78: 145 Elo points, home win 49.6%English top flight 1978-79: 139 Elo points, home win 49.2%English top flight 1979-80: 139 Elo points, home win 48.9%English top flight 1980-81: 143 Elo points, home win 49.5%English top flight 1981-82: 125 Elo points, home win 48.4%English top flight 1982-83: 133 Elo points, home win 49.7%English top flight 1983-84: 133 Elo points, home win 50.5%English top flight 1984-85: 129 Elo points, home win 50.9%English top flight 1985-86: 120 Elo points, home win 50.3%English top flight 1986-87: 132 Elo points, home win 51.3%English top flight 1987-88: 117 Elo points, home win 49.0%English top flight 1988-89: 109 Elo points, home win 47.8%English top flight 1989-90: 106 Elo points, home win 47.0%English top flight 1990-91: 111 Elo points, home win 47.0%English top flight 1991-92: 99 Elo points, home win 45.5%English top flight 1992-93: 101 Elo points, home win 46.1%English top flight 1993-94: 101 Elo points, home win 46.0%English top flight 1994-95: 97 Elo points, home win 45.2%English top flight 1995-96: 94 Elo points, home win 45.1%English top flight 1996-97: 92 Elo points, home win 44.7%English top flight 1997-98: 92 Elo points, home win 45.0%English top flight 1998-99: 98 Elo points, home win 45.7%English top flight 1999-00: 102 Elo points, home win 46.7%English top flight 2000-01: 102 Elo points, home win 46.6%English top flight 2001-02: 98 Elo points, home win 46.8%English top flight 2002-03: 98 Elo points, home win 46.9%English top flight 2003-04: 94 Elo points, home win 46.8%English top flight 2004-05: 93 Elo points, home win 46.1%English top flight 2005-06: 89 Elo points, home win 46.5%English top flight 2006-07: 97 Elo points, home win 47.4%English top flight 2007-08: 94 Elo points, home win 46.8%English top flight 2008-09: 94 Elo points, home win 47.2%English top flight 2009-10: 100 Elo points, home win 48.2%English top flight 2010-11: 104 Elo points, home win 47.5%English top flight 2011-12: 97 Elo points, home win 46.9%English top flight 2012-13: 94 Elo points, home win 46.4%English top flight 2013-14: 91 Elo points, home win 46.7%English top flight 2014-15: 79 Elo points, home win 45.6%English top flight 2015-16: 67 Elo points, home win 44.5%English top flight 2016-17: 72 Elo points, home win 45.3%English top flight 2017-18: 73 Elo points, home win 45.7%English top flight 2018-19: 72 Elo points, home win 45.8%English top flight 2019-20: 71 Elo points, home win 45.8%English top flight 2020-21: 58 Elo points, home win 45.1%English top flight 2021-22: 47 Elo points, home win 43.8%English top flight 2022-23: 49 Elo points, home win 44.4%English top flight 2023-24: 50 Elo points, home win 44.1%English top flight 2024-25: 42 Elo points, home win 43.2%English top flight 2025-26: 56 Elo points, home win 44.2%29NFLNFL 1921: 162 Elo points, home win 62.3%NFL 1922: 187 Elo points, home win 65.0%NFL 1923: 179 Elo points, home win 63.8%NFL 1924: 177 Elo points, home win 64.4%NFL 1925: 190 Elo points, home win 66.8%NFL 1926: 168 Elo points, home win 64.3%NFL 1927: 150 Elo points, home win 62.8%NFL 1928: 140 Elo points, home win 62.4%NFL 1929: 122 Elo points, home win 59.7%NFL 1930: 90 Elo points, home win 55.7%NFL 1931: 97 Elo points, home win 57.4%NFL 1932: 88 Elo points, home win 55.0%NFL 1933: 87 Elo points, home win 55.2%NFL 1934: 75 Elo points, home win 55.6%NFL 1935: 56 Elo points, home win 53.4%NFL 1936: 40 Elo points, home win 51.5%NFL 1937: 30 Elo points, home win 51.6%NFL 1938: 9 Elo points, home win 49.1%NFL 1939: 26 Elo points, home win 50.7%NFL 1940: 50 Elo points, home win 54.0%NFL 1941: 48 Elo points, home win 53.8%NFL 1942: 48 Elo points, home win 54.2%NFL 1943: 67 Elo points, home win 56.5%NFL 1944: 58 Elo points, home win 55.3%NFL 1945: 53 Elo points, home win 55.2%NFL 1946: 44 Elo points, home win 53.6%NFL 1947: 58 Elo points, home win 55.0%NFL 1948: 49 Elo points, home win 54.6%NFL 1949: 42 Elo points, home win 53.7%NFL 1950: 39 Elo points, home win 53.5%NFL 1951: 35 Elo points, home win 53.3%NFL 1952: 22 Elo points, home win 52.0%NFL 1953: 21 Elo points, home win 51.5%NFL 1954: 33 Elo points, home win 53.5%NFL 1955: 43 Elo points, home win 54.4%NFL 1956: 58 Elo points, home win 56.7%NFL 1957: 68 Elo points, home win 57.8%NFL 1958: 76 Elo points, home win 58.9%NFL 1959: 64 Elo points, home win 57.5%NFL 1960: 47 Elo points, home win 55.0%NFL 1961: 41 Elo points, home win 54.2%NFL 1962: 31 Elo points, home win 52.7%NFL 1963: 33 Elo points, home win 52.7%NFL 1964: 34 Elo points, home win 52.5%NFL 1965: 30 Elo points, home win 51.9%NFL 1966: 33 Elo points, home win 52.0%NFL 1967: 37 Elo points, home win 52.3%NFL 1968: 20 Elo points, home win 50.3%NFL 1969: 29 Elo points, home win 51.7%NFL 1970: 38 Elo points, home win 52.9%NFL 1971: 39 Elo points, home win 53.0%NFL 1972: 34 Elo points, home win 52.8%NFL 1973: 55 Elo points, home win 55.5%NFL 1974: 46 Elo points, home win 54.7%NFL 1975: 42 Elo points, home win 54.7%NFL 1976: 42 Elo points, home win 55.2%NFL 1977: 52 Elo points, home win 56.8%NFL 1978: 48 Elo points, home win 56.6%NFL 1979: 54 Elo points, home win 57.5%NFL 1980: 52 Elo points, home win 57.2%NFL 1981: 59 Elo points, home win 58.2%NFL 1982: 57 Elo points, home win 57.8%NFL 1983: 49 Elo points, home win 56.8%NFL 1984: 47 Elo points, home win 56.5%NFL 1985: 62 Elo points, home win 58.6%NFL 1986: 48 Elo points, home win 56.6%NFL 1987: 47 Elo points, home win 56.4%NFL 1988: 54 Elo points, home win 57.5%NFL 1989: 54 Elo points, home win 57.4%NFL 1990: 45 Elo points, home win 56.2%NFL 1991: 54 Elo points, home win 57.5%NFL 1992: 62 Elo points, home win 58.8%NFL 1993: 57 Elo points, home win 58.0%NFL 1994: 56 Elo points, home win 58.0%NFL 1995: 59 Elo points, home win 58.4%NFL 1996: 63 Elo points, home win 59.0%NFL 1997: 64 Elo points, home win 59.0%NFL 1998: 75 Elo points, home win 60.6%NFL 1999: 79 Elo points, home win 61.0%NFL 2000: 72 Elo points, home win 60.1%NFL 2001: 62 Elo points, home win 58.7%NFL 2002: 57 Elo points, home win 58.1%NFL 2003: 56 Elo points, home win 57.9%NFL 2004: 51 Elo points, home win 57.3%NFL 2005: 56 Elo points, home win 57.9%NFL 2006: 53 Elo points, home win 57.6%NFL 2007: 53 Elo points, home win 57.5%NFL 2008: 47 Elo points, home win 56.6%NFL 2009: 47 Elo points, home win 56.7%NFL 2010: 43 Elo points, home win 56.1%NFL 2011: 48 Elo points, home win 56.8%NFL 2012: 48 Elo points, home win 56.8%NFL 2013: 52 Elo points, home win 57.3%NFL 2014: 52 Elo points, home win 57.3%NFL 2015: 49 Elo points, home win 56.9%NFL 2016: 51 Elo points, home win 57.0%NFL 2017: 49 Elo points, home win 56.9%NFL 2018: 50 Elo points, home win 56.9%NFL 2019: 42 Elo points, home win 55.9%NFL 2020: 37 Elo points, home win 55.0%NFL 2021: 28 Elo points, home win 53.8%NFL 2022: 27 Elo points, home win 53.6%NFL 2023: 21 Elo points, home win 52.9%NFL 2024: 24 Elo points, home win 53.2%NFL 2025: 29 Elo points, home win 54.0%

English football spotted the home side 191 Elo points at its peak in 1901-02. Last season it was 56. The NFL went from 190 in 1925 to 29 in 2025, close enough to nothing that playing at home is now worth less than the gap between two mid-table sides.

The measure is Elo points rather than home-win share on purpose. About a quarter of English league matches are drawn and almost no NFL game is tied, so the two leagues’ home-win percentages are not comparable and never were. The rating gap a home side is effectively spotted is: 400·log₁₀(home wins / away wins), in which the draws divide out. That is the only reason these two lines are allowed to share an axis.

The longest odds ever beaten

Nobody curated these; the model went looking for improbability.

How this is measured
It came back holding matches both sports already tell stories about, which is the best evidence it has taste.

English top flight

#MatchChance
1Liverpool 1-2 Leicester CityLeicester City won awaychance the winner had 3.8%
2Manchester United 0-1 Derby CountyDerby County won awaychance the winner had 4.5%
3Liverpool 0-1 Wolverhampton WanderersWolverhampton Wanderers won awaychance the winner had 4.7%
4Manchester United 2-3 Blackburn RoversBlackburn Rovers won awaychance the winner had 5.0%
5Manchester United 0-1 West Ham UnitedWest Ham United won awaychance the winner had 5.4%
6Manchester City 2-3 Crystal PalaceCrystal Palace won awaychance the winner had 5.5%
7Leeds United 1-3 SouthamptonSouthampton won awaychance the winner had 5.5%
8Chelsea 1-2 SunderlandSunderland won awaychance the winner had 5.7%
9Liverpool 0-2 Norwich CityNorwich City won awaychance the winner had 5.8%
10Manchester United 0-1 West Bromwich AlbionWest Bromwich Albion won awaychance the winner had 6.3%

NFL

#MatchChance
1Miami Dolphins 38-13beat New England Patriotschance the winner had 6.5%
2Washington Redskins 24-17beat Dallas Cowboyschance the winner had 7.5%
3Buffalo Bills 24-17beat Washington Redskinschance the winner had 7.6%
4Houston Texans 24-6beat Pittsburgh Steelerschance the winner had 7.9%
5New York Jets 23-20beat Los Angeles Ramschance the winner had 8.0%
6Pittsburgh Steelers 24-17beat Green Bay Packerschance the winner had 8.2%
7Miami Dolphins 27-24beat New England Patriotschance the winner had 8.7%
8Arizona Cardinals 34-31beat Oakland Raiderschance the winner had 9.0%
9Houston Oilers 34-21beat Cincinnati Bengalschance the winner had 9.1%
10Carolina Panthers 13-7beat San Francisco 49erschance the winner had 9.2%

The seasons that broke the model

The ratings still could not see these coming.

How this is measured
England is measured in league points under that season's own scoring; the NFL in wins; the five continental leagues in match points, because they switched to three points for a win in three different seasons and league points cannot rank across them. None of the three is added to another.

English top flight, league points vs expected

#Clubvs expected
12015-16Leicester City+27.4
21985-86West Ham United+24.5
32016-17Chelsea+22.3
42017-18Manchester City+21.4
51989-90Aston Villa+21.4
2007-08Derby County−25.1
1984-85Stoke City−23.9
2002-03Sunderland−20.9
2018-19Huddersfield Town−19.3
1987-88Watford−18.8

Spain, Italy, Germany, France and the Netherlands, match points vs expected

#Clubvs expected
11973-74Feyenoord+9.21
22023-24Bayer Leverkusen+8.68
32011-12Montpellier HSC+8.01
42023-24VfB Stuttgart+7.99
51988-89Inter+7.97
1945-46FC Sochaux−10.59
2018-19AS Monaco−9.12
1965-66Tasmania 1900 Berlin−8.73
1994-95Brescia Calcio−8.27
1988-89RC Lens−8.15

NFL, wins vs expected

#Teamvs expected
12004Pittsburgh Steelers+5.42
21999Indianapolis Colts+4.94
31981San Francisco 49ers+4.65
42025Jacksonville Jaguars+4.53
52025New England Patriots+4.52
1981New England Patriots−5.68
1994Houston Oilers−5.45
2013Houston Texans−5.29
2001Carolina Panthers−5.25
2014Tennessee Titans−4.76

Six leagues, one model, and the most predictable league in Europe

Skill is how much the ratings knew that the era's home-and-away split did not.

How this is measured
Every league is scored against its OWN era baseline, so a century of Serie A and sixty years of the Bundesliga can share a column. The five continental ledgers import the English model rather than copying it, so this is one model applied six times, not six models compared. Surplus totals, by contrast, are comparable within a league and only loosely across them, because league size and era differ.
LeagueSkill
NetherlandsEredivisieskill against that league's own era baseline 8.15%
ItalySerie Askill against that league's own era baseline 5.65%
SpainPrimera Divisiónskill against that league's own era baseline 4.75%
GermanyBundesligaskill against that league's own era baseline 4.10%
EnglandEnglish top flightskill against that league's own era baseline 3.17%
FranceLigue 1skill against that league's own era baseline 2.96%

The Eredivisie is the most predictable of the six and the Ligue 1 the least. Predictable is not a judgement on the football. It means the same model, fitted the same way, learns more from the same number of matches, which usually points at a settled gap between a few clubs and the rest rather than at the quality of the play.

The number is the improvement on a baseline that knows nothing about the two clubs, only how often that era’s matches ended home, away or drawn. A league at 0% would be one where knowing who is playing tells you nothing you did not already know from the fixture list.

Nobody publishes this comparison, which is mostly because nobody runs one model across six leagues and a century. The settings were fitted on England and reused unchanged, so the transfer is a stated choice rather than a tuned result: skill is positive in all six, and refitting per league is available and not done.

By metro, and the thing size does not buy

The biggest metro is not the one that beats its odds.

How this is measured
Both ledgers agree on something the league tables never say. London sits barely above par across more than twenty thousand club-matches, and New York is the NFL's biggest underachiever.

English top flight, match points vs expected

#Metrovs expected
1Liverpool+94.6
2Manchester+75.8
3London+50.2
4Newcastle+13.4
5Bournemouth+7.2
6Coventry+6.4
7Brighton & Hove+4.5
8Sheffield−0.4
Middlesbrough−21.6
Nottingham−22.8
Leicester−23.2
Blackburn-Burnley−26.6

The five continental top flights, match points vs expected

#Metrovs expected
1Madrid+167.7
2Turin+153.7
3Milan+122.0
4Rome+81.3
5Barcelona+79.7
6Munich+72.8
7Eindhoven+72.3
8Naples+52.0
Pescara−28.7
Brescia−29.4
Murcia−30.4
Padua-Venice−51.7

NFL, wins vs expected

#Metrovs expected
1Green Bay+25.4
2Los Angeles+23.0
3Dallas+17.4
4Pittsburgh+15.6
5Miami+14.9
6Seattle+13.7
7Cleveland+11.8
8San Francisco-San Jose+10.0
Detroit−13.2
Phoenix−16.5
Tampa−21.1
New York−26.8

Madrid tops the continental board at +167.7 match points from 5 clubs. Rotterdam-The Hague has 16 clubs in these leagues, more than anywhere else, and sits at +28.1. Depth and dominance are different quantities and a league table cannot separate them. Totals are safe to compare within a league and only loosely across them, because league size and era differ.

Form against money

Squad value at the end of 2024-25 against that same season's surplus, for every club the two ledgers share.

How this is measured
Value rank and surplus rank are both computed WITHIN one league, never across the five: league size and era already make surplus only loosely comparable across leagues, and mixing a La Liga euro figure with a Bundesliga one would compound that. Gap is value rank minus surplus rank, so a positive gap is a club that finished above where its squad value sat and a negative one finished below it. Squad value is Transfermarkt via dcaribou/transfermarkt-datasets, EUR millions, read at the end of the season (June); the number beside it is how many players were priced that month, since a value below a 15-player floor is withheld rather than shown as artificially cheap.

Rayo Vallecano outperformed its money by the most in 2024-25: ranked 17th on squad value in the Primera División but 2nd on surplus, a gap of +15. Real Sociedad sits furthest the other way, a gap of −13 between its Primera División value rank (4) and its surplus rank (17).

1
Rayo VallecanoPrimera División
surplus +3.25 · rank 2 · gap +15
€65m
25 valued
2
Angers SCOLigue 1
surplus +1.67 · rank 5 · gap +11
€41m
22 valued
3
Werder BremenBundesliga
surplus +3.05 · rank 1 · gap +9
€132m
29 valued
4
FC GroningenEredivisie
surplus +1.85 · rank 4 · gap +7
€30m
25 valued
5
PEC Zwolle '82Eredivisie
surplus +1.62 · rank 5 · gap +7
€27m
32 valued
6
HeraclesEredivisie
surplus +1.53 · rank 6 · gap +7
€20m
36 valued
7
FC AugsburgBundesliga
surplus +1.96 · rank 5 · gap +6
€128m
30 valued
8
CA OsasunaPrimera División
surplus +2.68 · rank 4 · gap +6
€117m
23 valued
9
Celta VigoPrimera División
surplus +2.38 · rank 5 · gap +6
€111m
26 valued
10
AJ AuxerreLigue 1
surplus +1.47 · rank 6 · gap +6
€78m
21 valued
11
CD LeganesPrimera División
surplus −0.62 · rank 13 · gap +6
€31m
18 valued
12
RCD MallorcaPrimera División
surplus +0.65 · rank 10 · gap +5
€82m
26 valued
Show all 82 clubs
13
surplus −0.25 · rank 8 · gap +5
€79m
26 valued
14
FC UtrechtEredivisie
surplus +3.81 · rank 1 · gap +5
€70m
32 valued
15
CD AlavesPrimera División
surplus +0.49 · rank 11 · gap +5
€66m
23 valued
16
Go Ahead EaglesEredivisie
surplus +2.41 · rank 3 · gap +5
€40m
27 valued
17
SSC NapoliSerie A
surplus +4.75 · rank 1 · gap +4
€380m
28 valued
18
surplus +1.61 · rank 2 · gap +4
€291m
29 valued
19
Villarreal CFPrimera División
surplus +3.67 · rank 1 · gap +4
€249m
26 valued
20
surplus +4.37 · rank 1 · gap +4
€243m
30 valued
21
OGC NiceLigue 1
surplus +2.10 · rank 3 · gap +4
€220m
26 valued
22
1. FSV Mainz 05Bundesliga
surplus +2.18 · rank 4 · gap +4
€170m
26 valued
23
NAC BredaEredivisie
surplus −1.10 · rank 10 · gap +4
€19m
20 valued
24
surplus +1.30 · rank 5 · gap +3
€187m
29 valued
25
SC FreiburgBundesliga
surplus +2.81 · rank 3 · gap +3
€175m
29 valued
26
AC VeneziaSerie A
surplus −1.75 · rank 13 · gap +3
€60m
21 valued
27
Parma FCSerie A
surplus +0.42 · rank 7 · gap +2
€171m
30 valued
28
surplus +0.30 · rank 7 · gap +2
€150m
32 valued
29
RKC WaalwijkEredivisie
surplus −2.44 · rank 15 · gap +2
€13m
32 valued
30
surplus +2.93 · rank 2 · gap +1
€357m
32 valued
31
AFC AjaxEredivisie
surplus +3.44 · rank 2 · gap +1
€201m
26 valued
32
surplus −0.57 · rank 9 · gap +1
€163m
32 valued
33
FC NantesLigue 1
surplus +0.88 · rank 8 · gap +1
€110m
29 valued
34
surplus −0.76 · rank 10 · gap +1
€90m
36 valued
35
US LecceSerie A
surplus −0.78 · rank 11 · gap +1
€82m
35 valued
36
surplus −0.83 · rank 12 · gap +1
€63m
29 valued
37
surplus −1.43 · rank 14 · gap +1
€59m
25 valued
38
AtalantaSerie A
surplus +1.57 · rank 3 · gap +0
€463m
27 valued
39
Athletic BilbaoPrimera División
surplus +3.18 · rank 3 · gap +0
€377m
28 valued
40
surplus +1.94 · rank 4 · gap +0
€299m
27 valued
41
Espanyol BarcelonaPrimera División
surplus +0.45 · rank 12 · gap +0
€107m
22 valued
42
surplus +0.15 · rank 10 · gap +0
€103m
28 valued
43
Getafe CFPrimera División
surplus −0.85 · rank 14 · gap +0
€83m
24 valued
44
VfL BochumBundesliga
surplus −2.20 · rank 12 · gap +0
€58m
34 valued
45
FC St. PauliBundesliga
surplus −2.34 · rank 13 · gap +0
€48m
25 valued
46
sc HeerenveenEredivisie
surplus +0.92 · rank 7 · gap +0
€47m
31 valued
47
Holstein KielBundesliga
surplus −3.15 · rank 14 · gap +0
€37m
23 valued
48
Almere CityEredivisie
surplus −3.07 · rank 16 · gap +0
€14m
34 valued
49
surplus +3.08 · rank 2 · gap 1
€1048m
25 valued
50
surplus +0.89 · rank 7 · gap 1
€243m
24 valued
51
Real BetisPrimera División
surplus +1.68 · rank 7 · gap 1
€219m
26 valued
52
Empoli FCSerie A
surplus −2.42 · rank 15 · gap 1
€76m
25 valued
53
AC MonzaSerie A
surplus −7.63 · rank 16 · gap 1
€62m
29 valued
54
Real ValladolidPrimera División
surplus −7.26 · rank 19 · gap 1
€36m
22 valued
55
JuventusSerie A
surplus +1.45 · rank 4 · gap 2
€574m
28 valued
56
Valencia CFPrimera División
surplus +0.66 · rank 9 · gap 2
€210m
26 valued
57
surplus −7.41 · rank 16 · gap 2
€59m
23 valued
58
surplus −1.47 · rank 12 · gap 2
€33m
25 valued
59
Willem IIEredivisie
surplus −3.78 · rank 17 · gap 2
€14m
24 valued
60
VfL WolfsburgBundesliga
surplus +0.13 · rank 8 · gap 3
€243m
30 valued
61
UD Las PalmasPrimera División
surplus −2.73 · rank 16 · gap 3
€99m
26 valued
62
FC BarcelonaPrimera División
surplus +2.36 · rank 6 · gap 4
€1065m
26 valued
63
1899 HoffenheimBundesliga
surplus −2.19 · rank 11 · gap 4
€173m
38 valued
64
surplus −3.16 · rank 15 · gap 4
€102m
23 valued
65
NEC NijmegenEredivisie
surplus −1.49 · rank 13 · gap 4
€39m
31 valued
66
InterSerie A
surplus +0.45 · rank 6 · gap 5
€672m
27 valued
67
surplus +0.88 · rank 6 · gap 5
€598m
27 valued
68
RC LensLigue 1
surplus −0.86 · rank 13 · gap 5
€136m
28 valued
69
AZ AlkmaarEredivisie
surplus −0.99 · rank 9 · gap 5
€123m
28 valued
70
VfB StuttgartBundesliga
surplus −1.43 · rank 10 · gap 6
€343m
35 valued
71
Lille OSCLigue 1
surplus +0.60 · rank 9 · gap 6
€328m
28 valued
72
Real MadridPrimera División
surplus +0.78 · rank 8 · gap 7
€1221m
26 valued
73
surplus −0.92 · rank 9 · gap 7
€448m
28 valued
74
PSV EindhovenEredivisie
surplus +0.64 · rank 8 · gap 7
€306m
28 valued
75
Torino FCSerie A
surplus −1.79 · rank 14 · gap 7
€209m
33 valued
76
Sevilla FCPrimera División
surplus −2.37 · rank 15 · gap 7
€169m
24 valued
77
AC MilanSerie A
surplus −1.25 · rank 12 · gap 8
€452m
29 valued
78
AS MonacoLigue 1
surplus +0.08 · rank 11 · gap 9
€425m
27 valued
79
FeyenoordEredivisie
surplus −1.17 · rank 11 · gap 9
€274m
29 valued
80
GironaPrimera División
surplus −5.93 · rank 18 · gap 9
€148m
27 valued
81
FC TwenteEredivisie
surplus −1.93 · rank 14 · gap 9
€70m
24 valued
82
Real SociedadPrimera División
surplus −4.04 · rank 17 · gap 13
€333m
27 valued

Return on the transfer window

Fees paid and received from 2012-13 to 2025-26, and what each squad gained in value once the trading is netted out.

How this is measured
Spent and received are transfer fees in EUR millions, by the July-to-June season of the move; a move with no fee on record is counted on the club page and never priced here. Wages are not in it. Appreciation is the change in squad value over each season minus the net spend, summed across the seasons the squad was priced at both ends (the count is on the row): a club that ends where its spending alone would put it scores zero, a club that made its players worth more scores above it. Return is that appreciation as a share of fees spent, shown only where the spend reached €50m over the span, because a small denominator makes a meaningless ratio. Only clubs priced in at least three seasons are ranked. Transfer fees and player valuations from Transfermarkt via github.com/dcaribou/transfermarkt-datasets (CC0).

Ajax Amsterdam made the most of its windows: +€626m of squad value beyond what it paid, across 14 priced seasons. Chelsea FC spent the most, €2.88b, for −€977m. Manchester United sits at the foot, −€1.33b. The best return on a real programme of spending is AZ Alkmaar, +€341m on €99m spent.

1
Ajax AmsterdamNetherlands
spent €563m · net +€573m · 14 seasons
+€626m
+111% return
2
spent €428m · net +€415m · 14 seasons
+€585m
+137% return
3
AS MonacoFrance
spent €1.01b · net +€261m · 14 seasons
+€563m
+56% return
4
PSV EindhovenNetherlands
spent €290m · net +€274m · 14 seasons
+€541m
+186% return
5
spent €428m · net +€183m · 14 seasons
+€509m
+119% return
6
spent €315m · net +€179m · 14 seasons
+€485m
+154% return
7
spent €724m · net +€184m · 14 seasons
+€478m
+66% return
8
spent €586m · net +€343m · 14 seasons
+€459m
+78% return
9
spent €422m · net −€50m · 9 seasons
+€401m
+95% return
10
RC LensFrance
spent €227m · net +€135m · 14 seasons
+€358m
+157% return
11
spent €243m · net +€201m · 14 seasons
+€352m
+144% return
12
spent €757m · net −€216m · 13 seasons
+€352m
+46% return
Show all 192 clubs
13
AZ AlkmaarNetherlands
spent €99m · net +€242m · 14 seasons
+€341m
+344% return
14
spent €214m · net +€168m · 14 seasons
+€315m
+147% return
15
spent €975m · net +€138m · 14 seasons
+€308m
+32% return
16
spent €280m · net +€221m · 14 seasons
+€303m
+108% return
17
spent €290m · net −€93m · 10 seasons
+€289m
+100% return
18
spent €780m · net −€184m · 11 seasons
+€287m
+37% return
19
spent €672m · net +€114m · 14 seasons
+€282m
+42% return
20
spent €164m · net +€73m · 14 seasons
+€267m
+163% return
21
RB LeipzigGermany
spent €1.04b · net −€163m · 12 seasons
+€257m
+25% return
22
spent €604m · net −€266m · 14 seasons
+€253m
+42% return
23
spent €85m · net +€164m · 14 seasons
+€241m
+283% return
24
spent €719m · net −€340m · 12 seasons
+€226m
+31% return
25
spent €305m · net +€57m · 14 seasons
+€225m
+74% return
26
spent €181m · net +€131m · 13 seasons
+€205m
+113% return
27
spent €27m · net +€145m · 11 seasons
+€201m
squad gain
28
spent €501m · net −€131m · 11 seasons
+€198m
+40% return
29
spent €155m · net +€82m · 14 seasons
+€196m
+126% return
30
spent €411m · net +€4m · 14 seasons
+€191m
+47% return
31
spent €281m · net −€136m · 9 seasons
+€186m
+66% return
32
spent €98m · net +€33m · 14 seasons
+€183m
+186% return
33
spent €59m · net +€189m · 11 seasons
+€182m
+309% return
34
spent €454m · net +€125m · 14 seasons
+€179m
+39% return
35
FC MetzFrance
spent €62m · net +€118m · 12 seasons
+€179m
+288% return
36
spent €149m · net +€164m · 13 seasons
+€171m
+115% return
37
FC NantesFrance
spent €106m · net +€60m · 14 seasons
+€167m
+157% return
38
spent €121m · net +€85m · 14 seasons
+€164m
+135% return
39
spent €335m · net +€149m · 14 seasons
+€163m
+49% return
40
spent €323m · net +€33m · 14 seasons
+€162m
+50% return
41
spent €553m · net +€20m · 14 seasons
+€162m
+29% return
42
spent €239m · net −€225m · 5 seasons
+€159m
+66% return
43
spent €65m · net +€167m · 13 seasons
+€155m
+240% return
44
spent €665m · net −€106m · 14 seasons
+€150m
+23% return
45
spent €1.11b · net −€436m · 14 seasons
+€147m
+13% return
46
spent €184m · net +€40m · 14 seasons
+€147m
+80% return
47
spent €142m · net +€15m · 10 seasons
+€141m
+99% return
48
spent €36m · net +€83m · 14 seasons
+€135m
squad gain
49
FC UtrechtNetherlands
spent €26m · net +€67m · 14 seasons
+€134m
squad gain
50
spent €115m · net +€42m · 14 seasons
+€134m
+116% return
51
spent €770m · net −€76m · 14 seasons
+€131m
+17% return
52
spent €323m · net +€36m · 14 seasons
+€125m
+39% return
53
spent €38m · net +€36m · 11 seasons
+€123m
squad gain
54
spent €105m · net +€133m · 12 seasons
+€120m
+114% return
55
spent €74m · net +€45m · 7 seasons
+€115m
+156% return
56
spent €7m · net +€56m · 10 seasons
+€115m
squad gain
57
spent €91m · net +€119m · 14 seasons
+€111m
+122% return
58
spent €16m · net +€33m · 10 seasons
+€111m
squad gain
59
spent €74m · net +€142m · 12 seasons
+€108m
+145% return
60
SC HeerenveenNetherlands
spent €37m · net +€81m · 14 seasons
+€107m
squad gain
61
spent €16m · net +€59m · 11 seasons
+€105m
squad gain
62
spent €50m · net +€105m · 5 seasons
+€102m
+205% return
63
spent €156m · net −€3m · 14 seasons
+€99m
+64% return
64
1.FC KölnGermany
spent €129m · net −€1m · 14 seasons
+€99m
+77% return
65
spent €63m · net −€11m · 14 seasons
+€97m
+155% return
66
NEC NijmegenNetherlands
spent €12m · net +€41m · 14 seasons
+€93m
squad gain
67
spent €10m · net +€49m · 9 seasons
+€89m
squad gain
68
Hull CityEngland
spent €84m · net +€43m · 11 seasons
+€89m
+106% return
69
spent €191m · net +€145m · 12 seasons
+€89m
+47% return
70
Watford FCEngland
spent €283m · net +€57m · 11 seasons
+€84m
+30% return
71
spent €128m · net −€32m · 11 seasons
+€83m
+65% return
72
spent €51m · net +€49m · 13 seasons
+€83m
+162% return
73
spent €52m · net +€22m · 14 seasons
+€82m
+159% return
74
Paris FCFrance
spent €79m · net −€59m · 7 seasons
+€81m
+102% return
75
spent €120m · net +€70m · 14 seasons
+€80m
+67% return
76
spent €785m · net +€19m · 14 seasons
+€80m
+10% return
77
spent €167m · net +€130m · 12 seasons
+€79m
+47% return
78
spent €54m · net +€17m · 10 seasons
+€79m
+145% return
79
spent €223m · net −€89m · 9 seasons
+€79m
+35% return
80
Fulham FCEngland
spent €423m · net −€223m · 14 seasons
+€77m
+18% return
81
spent €65m · net +€6m · 14 seasons
+€75m
+116% return
82
spent €43m · net +€48m · 9 seasons
+€66m
squad gain
83
spent €26m · net +€5m · 10 seasons
+€63m
squad gain
84
FC GroningenNetherlands
spent €21m · net +€67m · 14 seasons
+€63m
squad gain
85
OGC NiceFrance
spent €380m · net −€64m · 14 seasons
+€62m
+16% return
86
spent €150m · net +€43m · 14 seasons
+€61m
+41% return
87
spent €193m · net −€78m · 4 seasons
+€61m
+31% return
88
Luton TownEngland
spent €37m · net −€4m · 5 seasons
+€61m
squad gain
89
spent €133m · net +€21m · 12 seasons
+€57m
+42% return
90
SM CaenFrance
spent €10m · net +€65m · 12 seasons
+€55m
squad gain
91
spent €16m · net +€26m · 11 seasons
+€53m
squad gain
92
spent €31m · net +€28m · 12 seasons
+€52m
squad gain
93
spent €204m · net −€41m · 14 seasons
+€51m
+25% return
94
Sparta RotterdamNetherlands
spent €4m · net +€28m · 11 seasons
+€49m
squad gain
95
Amiens SCFrance
spent €28m · net +€39m · 8 seasons
+€49m
squad gain
96
Go Ahead EaglesNetherlands
spent €11m · net +€11m · 13 seasons
+€47m
squad gain
97
spent €50m · net −€7m · 7 seasons
+€45m
squad gain
98
spent €582m · net +€122m · 14 seasons
+€45m
+8% return
99
VfL BochumGermany
spent €5m · net +€35m · 11 seasons
+€45m
squad gain
100
SC BastiaFrance
spent €1m · net +€27m · 7 seasons
+€43m
squad gain
101
spent €17m · net +€118m · 11 seasons
+€40m
squad gain
102
PEC ZwolleNetherlands
spent €5m · net +€20m · 14 seasons
+€40m
squad gain
103
spent €48m · net +€62m · 12 seasons
+€39m
squad gain
104
spent €39m · net +€48m · 12 seasons
+€37m
squad gain
105
spent €8m · net −€5m · 8 seasons
+€35m
squad gain
106
spent €5m · net +€44m · 12 seasons
+€34m
squad gain
107
spent €54m · net −€20m · 14 seasons
+€33m
+62% return
108
spent €47m · net +€36m · 9 seasons
+€33m
squad gain
109
spent €13m · net +€1m · 11 seasons
+€29m
squad gain
110
spent €2m · net +€10m · 13 seasons
+€28m
squad gain
111
spent €1.05b · net −€296m · 12 seasons
+€28m
+3% return
112
spent €4m · net +€20m · 9 seasons
+€28m
squad gain
113
spent €23m · net +€10m · 9 seasons
+€26m
squad gain
114
FC VolendamNetherlands
spent €0m · net +€13m · 7 seasons
+€26m
squad gain
115
spent €53m · net −€40m · 4 seasons
+€25m
+47% return
116
spent €946m · net −€375m · 14 seasons
+€25m
+3% return
117
Heracles AlmeloNetherlands
spent €7m · net +€29m · 14 seasons
+€24m
squad gain
118
Reading FCEngland
spent €22m · net +€6m · 11 seasons
+€23m
squad gain
119
Vitesse ArnhemNetherlands
spent €11m · net +€45m · 13 seasons
+€21m
squad gain
120
spent €28m · net +€21m · 9 seasons
+€16m
squad gain
121
spent €9m · net +€17m · 9 seasons
+€16m
squad gain
122
spent €28m · net −€1m · 8 seasons
+€15m
squad gain
123
FC EmmenNetherlands
spent €0m · net +€4m · 8 seasons
+€14m
squad gain
124
spent €4m · net +€17m · 12 seasons
+€14m
squad gain
125
spent €11m · net +€16m · 7 seasons
+€14m
squad gain
126
spent €15m · net +€3m · 7 seasons
+€13m
squad gain
127
spent €1m · net +€9m · 5 seasons
+€12m
squad gain
128
NAC BredaNetherlands
spent €2m · net +€7m · 14 seasons
+€12m
squad gain
129
FC DordrechtNetherlands
spent €1m · net +€5m · 9 seasons
+€11m
squad gain
130
Almere City FCNetherlands
spent €0m · net +€3m · 9 seasons
+€10m
squad gain
131
spent €5m · net +€12m · 14 seasons
+€10m
squad gain
132
spent €1m · net +€5m · 11 seasons
+€9m
squad gain
133
spent €3m · net +€9m · 6 seasons
+€9m
squad gain
134
Dijon FCOFrance
spent €26m · net +€26m · 11 seasons
+€8m
squad gain
135
spent €15m · net +€9m · 8 seasons
+€7m
squad gain
136
spent €157m · net +€23m · 12 seasons
+€6m
+4% return
137
spent €13m · net +€23m · 8 seasons
+€6m
squad gain
138
spent €13m · net +€9m · 8 seasons
+€5m
squad gain
139
spent €0m · net +€3m · 4 seasons
+€5m
squad gain
140
spent €0m · net +€5m · 9 seasons
+€3m
squad gain
141
spent €48m · net −€38m · 6 seasons
+€3m
squad gain
142
spent €12m · net +€16m · 5 seasons
+€3m
squad gain
143
RKC WaalwijkNetherlands
spent €0m · net +€8m · 12 seasons
+€2m
squad gain
144
spent €901m · net −€184m · 11 seasons
+€2m
+0% return
145
VVV-VenloNetherlands
spent €0m · net +€7m · 11 seasons
+€1m
squad gain
146
spent €20m · net +€9m · 6 seasons
+€1m
squad gain
147
spent €99m · net +€22m · 13 seasons
−€0m
−0% return
148
spent €28m · net +€30m · 12 seasons
−€0m
squad gain
149
spent €0m · net +€10m · 12 seasons
−€1m
squad gain
150
spent €82m · net −€20m · 9 seasons
−€1m
−1% return
151
spent €7m · net +€16m · 12 seasons
−€1m
squad gain
152
ADO Den HaagNetherlands
spent €1m · net +€6m · 11 seasons
−€3m
squad gain
153
Roda JC KerkradeNetherlands
spent €0m · net +€7m · 11 seasons
−€5m
squad gain
154
spent €114m · net −€11m · 14 seasons
−€7m
−6% return
155
spent €61m · net −€15m · 10 seasons
−€10m
−17% return
156
spent €11m · net +€3m · 6 seasons
−€10m
squad gain
157
spent €2m · net +€28m · 11 seasons
−€11m
squad gain
158
spent €0m · net +€26m · 12 seasons
−€12m
squad gain
159
spent €2m · net +€24m · 8 seasons
−€12m
squad gain
160
spent €14m · net +€29m · 10 seasons
−€14m
squad gain
161
spent €220m · net −€71m · 9 seasons
−€14m
−7% return
162
Burnley FCEngland
spent €512m · net −€190m · 11 seasons
−€15m
−3% return
163
Everton FCEngland
spent €944m · net −€340m · 14 seasons
−€16m
−2% return
164
spent €51m · net −€24m · 12 seasons
−€19m
−37% return
165
spent €22m · net −€10m · 7 seasons
−€22m
squad gain
166
spent €46m · net +€20m · 12 seasons
−€24m
squad gain
167
spent €142m · net −€42m · 12 seasons
−€27m
−19% return
168
spent €47m · net −€7m · 12 seasons
−€30m
squad gain
169
Stoke CityEngland
spent €141m · net −€29m · 10 seasons
−€33m
−24% return
170
spent €114m · net −€55m · 6 seasons
−€38m
−33% return
171
Hertha BSCGermany
spent €200m · net +€16m · 12 seasons
−€46m
−23% return
172
SPALItaly
spent €50m · net +€11m · 5 seasons
−€63m
squad gain
173
spent €298m · net −€33m · 14 seasons
−€74m
−25% return
174
spent €1.72b · net −€789m · 14 seasons
−€94m
−5% return
175
spent €720m · net −€115m · 14 seasons
−€110m
−15% return
176
spent €153m · net +€64m · 12 seasons
−€135m
−88% return
177
spent €1.17b · net −€672m · 14 seasons
−€143m
−12% return
178
spent €404m · net +€19m · 14 seasons
−€169m
−42% return
179
spent €538m · net −€188m · 14 seasons
−€204m
−38% return
180
spent €1.26b · net −€445m · 14 seasons
−€209m
−17% return
181
spent €1.08b · net −€393m · 14 seasons
−€216m
−20% return
182
spent €1.15b · net −€607m · 14 seasons
−€261m
−23% return
183
spent €1.16b · net −€579m · 14 seasons
−€274m
−24% return
184
spent €1.30b · net −€265m · 14 seasons
−€342m
−26% return
185
Arsenal FCEngland
spent €1.68b · net −€1.26b · 14 seasons
−€388m
−23% return
186
spent €2.03b · net −€1.33b · 14 seasons
−€432m
−21% return
187
spent €1.56b · net −€513m · 14 seasons
−€467m
−30% return
188
spent €1.61b · net −€515m · 14 seasons
−€494m
−31% return
189
spent €2.36b · net −€1.41b · 14 seasons
−€558m
−24% return
190
spent €1.59b · net −€988m · 14 seasons
−€631m
−40% return
191
Chelsea FCEngland
spent €2.88b · net −€1.50b · 14 seasons
−€977m
−34% return
192
spent €2.27b · net −€1.66b · 14 seasons
−€1.33b
−59% return

Money against football

One dot per club and season: points against expectation across, squad value gained beyond the spend up.

How this is measured
Every club-season from 2012-13 to 2025-26 with a priced squad at both ends and a row in the Against Expectation ledger, 1,362of them across the six leagues. Across is the season’s surplus: match points earned minus the points the model expected, a win counting one and a draw a half, the same unit on every club page. Up is the season’s appreciation: the change in squad value once the net spend is taken out. The frontier joins the club-seasons no other one beat on both axes; it is drawn through the data, never fitted, because a fitted curve would claim a trade-off the data does not have to carry. Surplus is comparable within a league and only loosely across them, so nothing here ranks one league against another; the readout names the league every time.

6 club-seasons make the frontier. The furthest right is Leicester City in 2015-16, +9.5 points against expectation with +€28m of value gained beyond its spend; the highest is Liverpool FC in 2017-18, +€299m.

Tap or drag on the plot: the nearest club-season, its points and its money.

the frontier: no other club-season beat it on both axes

Grown or bought

Each club's squad-value change from 2021-22 to 2025-26, split into trading and appreciation.

How this is measured
Trading is the fees paid and received netted together, sign and all: positive means the window was a net sale. Appreciation is the change in squad value once that trading is taken out — the same number the club page already carries, summed here over five seasons instead of one. The two always sum to the value change, so shareis appreciation’s share of it: a club near 100% grew the players it already had; a club near 0%, or negative, mostly bought its way there. Only clubs priced at both ends of every one of the five seasons are ranked, so a five-year sum is never set beside a two-year one.

VfB Stuttgart grew the most squad value over the window, +€352m of appreciation beside +€137m of trading. 1.FC Union Berlin grew it the purest way: 1764% of its value change was appreciation, not spending.

1
trading +€137m · value change +€489m
+€352m
72% grown
2
trading −€17m · value change +€329m
+€346m
105% grown
3
trading −€143m · value change +€157m
+€300m
191% grown
4
trading +€163m · value change +€456m
+€293m
64% grown
5
PSV EindhovenNetherlands
trading +€142m · value change +€402m
+€260m
65% grown
6
RC LensFrance
trading +€124m · value change +€381m
+€257m
67% grown
7
trading +€145m · value change +€397m
+€252m
63% grown
8
trading +€10m · value change +€248m
+€238m
96% grown
9
trading −€112m · value change +€113m
+€225m
199% grown
10
AZ AlkmaarNetherlands
trading +€161m · value change +€368m
+€207m
56% grown
11
AS MonacoFrance
trading +€167m · value change +€374m
+€207m
55% grown
12
trading +€81m · value change +€284m
+€203m
71% grown
Show all 111 clubs
13
trading −€288m · value change −€94m
+€194m
-206% grown
14
trading −€92m · value change +€102m
+€194m
189% grown
15
trading +€237m · value change +€430m
+€193m
45% grown
16
trading +€98m · value change +€271m
+€173m
64% grown
17
trading +€121m · value change +€287m
+€166m
58% grown
18
trading −€225m · value change −€67m
+€159m
-238% grown
19
trading −€379m · value change −€222m
+€157m
-71% grown
20
trading −€0m · value change +€146m
+€146m
100% grown
21
trading +€32m · value change +€165m
+€133m
81% grown
22
trading +€46m · value change +€177m
+€132m
74% grown
23
trading +€4m · value change +€123m
+€119m
97% grown
24
trading +€51m · value change +€164m
+€113m
69% grown
25
trading +€45m · value change +€157m
+€111m
71% grown
26
Ajax AmsterdamNetherlands
trading +€277m · value change +€387m
+€110m
28% grown
27
trading +€60m · value change +€167m
+€107m
64% grown
28
trading +€55m · value change +€162m
+€106m
66% grown
29
trading +€48m · value change +€153m
+€104m
68% grown
30
trading +€35m · value change +€138m
+€102m
74% grown
31
trading +€84m · value change +€185m
+€101m
55% grown
32
trading −€239m · value change −€140m
+€99m
-71% grown
33
trading +€21m · value change +€119m
+€98m
82% grown
34
trading +€48m · value change +€143m
+€95m
66% grown
35
trading +€89m · value change +€180m
+€91m
50% grown
36
trading +€145m · value change +€233m
+€89m
38% grown
37
trading +€10m · value change +€97m
+€87m
89% grown
38
trading +€31m · value change +€116m
+€85m
73% grown
39
FC MetzFrance
trading +€97m · value change +€181m
+€85m
47% grown
40
trading +€20m · value change +€105m
+€85m
81% grown
41
trading +€24m · value change +€108m
+€84m
77% grown
42
trading +€70m · value change +€154m
+€83m
54% grown
43
FC UtrechtNetherlands
trading +€34m · value change +€117m
+€83m
71% grown
44
NEC NijmegenNetherlands
trading +€23m · value change +€103m
+€79m
77% grown
45
Paris FCFrance
trading −€68m · value change +€7m
+€75m
1080% grown
46
1.FC KölnGermany
trading +€17m · value change +€90m
+€72m
81% grown
47
trading +€20m · value change +€83m
+€63m
76% grown
48
trading +€61m · value change +€116m
+€54m
47% grown
49
trading −€6m · value change +€47m
+€53m
113% grown
50
trading +€78m · value change +€131m
+€53m
40% grown
51
FC NantesFrance
trading +€37m · value change +€89m
+€52m
58% grown
52
trading +€2m · value change +€49m
+€47m
96% grown
53
trading +€0m · value change +€46m
+€46m
100% grown
54
FC GroningenNetherlands
trading +€35m · value change +€79m
+€45m
56% grown
55
trading −€22m · value change +€21m
+€43m
205% grown
56
Go Ahead EaglesNetherlands
trading +€10m · value change +€50m
+€40m
79% grown
57
trading +€37m · value change +€76m
+€40m
52% grown
58
trading +€39m · value change +€77m
+€38m
49% grown
59
Sparta RotterdamNetherlands
trading +€18m · value change +€53m
+€36m
66% grown
60
SC HeerenveenNetherlands
trading +€12m · value change +€47m
+€35m
75% grown
61
trading −€40m · value change −€5m
+€35m
-643% grown
62
trading +€103m · value change +€135m
+€33m
24% grown
63
trading −€31m · value change −€1m
+€30m
-3565% grown
64
VfL BochumGermany
trading +€25m · value change +€50m
+€25m
51% grown
65
trading −€23m · value change +€1m
+€25m
1764% grown
66
trading +€46m · value change +€69m
+€23m
34% grown
67
trading −€133m · value change −€110m
+€23m
-21% grown
68
trading −€92m · value change −€70m
+€22m
-31% grown
69
trading +€7m · value change +€29m
+€22m
75% grown
70
trading −€110m · value change −€88m
+€22m
-24% grown
71
FC VolendamNetherlands
trading +€12m · value change +€32m
+€20m
63% grown
72
trading +€11m · value change +€28m
+€17m
60% grown
73
trading +€18m · value change +€31m
+€13m
43% grown
74
PEC ZwolleNetherlands
trading +€6m · value change +€17m
+€11m
65% grown
75
trading +€121m · value change +€129m
+€7m
6% grown
76
NAC BredaNetherlands
trading +€2m · value change +€6m
+€4m
69% grown
77
RKC WaalwijkNetherlands
trading +€7m · value change +€9m
+€1m
16% grown
78
Heracles AlmeloNetherlands
trading +€3m · value change −€4m
−€6m
176% grown
79
trading +€5m · value change −€5m
−€10m
191% grown
80
Fulham FCEngland
trading −€163m · value change −€173m
−€10m
6% grown
81
trading −€18m · value change −€28m
−€11m
37% grown
82
trading −€31m · value change −€45m
−€13m
30% grown
83
trading −€149m · value change −€166m
−€17m
10% grown
84
RB LeipzigGermany
trading +€44m · value change +€17m
−€28m
-167% grown
85
trading +€88m · value change +€53m
−€35m
-67% grown
86
Everton FCEngland
trading −€21m · value change −€58m
−€36m
63% grown
87
trading −€499m · value change −€542m
−€42m
8% grown
88
trading +€6m · value change −€39m
−€46m
116% grown
89
trading +€41m · value change −€9m
−€50m
537% grown
90
trading −€35m · value change −€91m
−€56m
62% grown
91
trading +€67m · value change +€10m
−€57m
-577% grown
92
Burnley FCEngland
trading −€147m · value change −€206m
−€59m
29% grown
93
trading +€68m · value change −€9m
−€77m
870% grown
94
OGC NiceFrance
trading −€37m · value change −€122m
−€85m
70% grown
95
Arsenal FCEngland
trading −€775m · value change −€865m
−€90m
10% grown
96
trading +€31m · value change −€81m
−€112m
138% grown
97
trading +€103m · value change −€13m
−€116m
918% grown
98
trading +€10m · value change −€122m
−€132m
108% grown
99
trading −€651m · value change −€801m
−€150m
19% grown
100
trading −€118m · value change −€269m
−€151m
56% grown
101
trading −€470m · value change −€657m
−€188m
29% grown
102
trading −€88m · value change −€303m
−€215m
71% grown
103
trading −€361m · value change −€651m
−€290m
45% grown
104
trading −€289m · value change −€592m
−€303m
51% grown
105
trading +€70m · value change −€260m
−€330m
127% grown
106
trading −€186m · value change −€538m
−€352m
65% grown
107
trading −€241m · value change −€597m
−€355m
60% grown
108
trading −€461m · value change −€846m
−€385m
46% grown
109
Chelsea FCEngland
trading −€793m · value change −€1.32b
−€532m
40% grown
110
trading −€646m · value change −€1.28b
−€633m
50% grown
111
trading −€789m · value change −€1.52b
−€732m
48% grown

The director's ledger

Every arrival of the last five seasons graded on realised outcome, 2022-23 to 2026-27.

How this is measured
Each arrival is bought at its fee; if the player was later sold on by the same club, graded at that sale’s fee, and if not, at the player’s latest valuation in the corpus (“held”). A free transfer or loan is graded the same way but never counts toward capital deployed or the multiplier, because there is no capital to measure a return on; it still counts toward the share of trades that came out ahead. A player with no sale on record and no valuation reachable is ungraded, not zero. Multiplier is realised-plus-held value over capital deployed. Coverage: England 37/37, France 35/36, Germany 31/31, Netherlands 29/29, Italy 39/39, Spain 33/33. Transfer fees and player valuations from Transfermarkt via github.com/dcaribou/transfermarkt-datasets (CC0).

SPAL has the best multiplier on real spending, 39.1× on €0m deployed. The best single trade league-wide: FC Barcelona’s Lamine Yamal from Barça U19, €0m to +€200m (held). The worst: Paris Saint-Germain’s Randal Kolo Muani, −€75m.

1
SPALItaly
13 graded · €0m deployed
39.1×
100% EV+
2
7 graded · €0m deployed
15.0×
100% EV+
3
46 graded · €6m deployed
7.9×
100% EV+
4
71 graded · €3m deployed
5.7×
99% EV+
5
42 graded · €4m deployed
5.3×
95% EV+
6
21 graded · €3m deployed
5.0×
100% EV+
7
18 graded · €2m deployed
4.9×
89% EV+
8
NEC NijmegenNetherlands
69 graded · €10m deployed
4.0×
94% EV+
9
SC BastiaFrance
16 graded · €1m deployed
4.0×
100% EV+
10
18 graded · €0m deployed
3.6×
100% EV+
11
FC DordrechtNetherlands
32 graded · €1m deployed
3.6×
100% EV+
12
VfL BochumGermany
68 graded · €4m deployed
3.3×
99% EV+
Show all 204 clubs
13
Sparta RotterdamNetherlands
75 graded · €4m deployed
3.2×
100% EV+
14
15 graded · €1m deployed
3.0×
100% EV+
15
SM CaenFrance
24 graded · €1m deployed
2.9×
100% EV+
16
24 graded · €12m deployed
2.8×
92% EV+
17
29 graded · €11m deployed
2.7×
93% EV+
18
PEC ZwolleNetherlands
57 graded · €2m deployed
2.7×
100% EV+
19
43 graded · €10m deployed
2.6×
88% EV+
20
29 graded · €1m deployed
2.5×
100% EV+
21
SC TelstarNetherlands
33 graded · €0m deployed
2.5×
100% EV+
22
10 graded · €0m deployed
2.5×
100% EV+
23
57 graded · €33m deployed
2.5×
90% EV+
24
1.FC KölnGermany
65 graded · €50m deployed
2.5×
92% EV+
25
73 graded · €53m deployed
2.4×
88% EV+
26
52 graded · €31m deployed
2.4×
96% EV+
27
SC HeerenveenNetherlands
53 graded · €19m deployed
2.4×
89% EV+
28
Go Ahead EaglesNetherlands
58 graded · €11m deployed
2.4×
95% EV+
29
21 graded · €1m deployed
2.4×
95% EV+
30
89 graded · €69m deployed
2.4×
91% EV+
31
67 graded · €14m deployed
2.3×
99% EV+
32
52 graded · €11m deployed
2.3×
92% EV+
33
9 graded · €1m deployed
2.3×
100% EV+
34
19 graded · €1m deployed
2.3×
100% EV+
35
57 graded · €29m deployed
2.3×
93% EV+
36
101 graded · €65m deployed
2.3×
85% EV+
37
54 graded · €2m deployed
2.3×
96% EV+
38
80 graded · €200m deployed
2.2×
86% EV+
39
39 graded · €40m deployed
2.2×
95% EV+
40
FC UtrechtNetherlands
79 graded · €20m deployed
2.2×
96% EV+
41
41 graded · €14m deployed
2.2×
93% EV+
42
28 graded · €1m deployed
2.2×
100% EV+
43
32 graded · €27m deployed
2.1×
91% EV+
44
RC LensFrance
92 graded · €186m deployed
2.1×
89% EV+
45
78 graded · €5m deployed
2.1×
99% EV+
46
NAC BredaNetherlands
46 graded · €2m deployed
2.1×
100% EV+
47
110 graded · €155m deployed
2.1×
89% EV+
48
29 graded · €21m deployed
2.0×
97% EV+
49
44 graded · €20m deployed
2.0×
89% EV+
50
AZ AlkmaarNetherlands
63 graded · €61m deployed
2.0×
91% EV+
51
62 graded · €25m deployed
1.9×
95% EV+
52
64 graded · €61m deployed
1.9×
84% EV+
53
74 graded · €137m deployed
1.9×
85% EV+
54
94 graded · €277m deployed
1.9×
84% EV+
55
57 graded · €30m deployed
1.9×
95% EV+
56
34 graded · €17m deployed
1.9×
94% EV+
57
46 graded · €7m deployed
1.9×
94% EV+
58
78 graded · €32m deployed
1.8×
94% EV+
59
ADO Den HaagNetherlands
20 graded · €0m deployed
1.8×
100% EV+
60
107 graded · €239m deployed
1.8×
79% EV+
61
148 graded · €104m deployed
1.8×
90% EV+
62
44 graded · €24m deployed
1.8×
96% EV+
63
24 graded · €3m deployed
1.8×
92% EV+
64
91 graded · €88m deployed
1.8×
90% EV+
65
29 graded · €8m deployed
1.7×
97% EV+
66
39 graded · €107m deployed
1.7×
82% EV+
67
68 graded · €34m deployed
1.7×
90% EV+
68
68 graded · €159m deployed
1.7×
85% EV+
69
75 graded · €80m deployed
1.7×
89% EV+
70
46 graded · €5m deployed
1.7×
96% EV+
71
117 graded · €104m deployed
1.6×
90% EV+
72
96 graded · €27m deployed
1.6×
95% EV+
73
99 graded · €262m deployed
1.6×
93% EV+
74
75 graded · €97m deployed
1.6×
83% EV+
75
15 graded · €0m deployed
1.6×
100% EV+
76
PSV EindhovenNetherlands
63 graded · €163m deployed
1.6×
89% EV+
77
76 graded · €49m deployed
1.6×
88% EV+
78
FC GroningenNetherlands
60 graded · €8m deployed
1.6×
87% EV+
79
62 graded · €240m deployed
1.6×
86% EV+
80
Amiens SCFrance
28 graded · €5m deployed
1.5×
96% EV+
81
59 graded · €38m deployed
1.5×
95% EV+
82
86 graded · €552m deployed
1.5×
81% EV+
83
60 graded · €114m deployed
1.5×
82% EV+
84
44 graded · €48m deployed
1.5×
91% EV+
85
58 graded · €10m deployed
1.5×
97% EV+
86
91 graded · €120m deployed
1.5×
91% EV+
87
101 graded · €248m deployed
1.5×
87% EV+
88
55 graded · €48m deployed
1.5×
87% EV+
89
51 graded · €47m deployed
1.5×
84% EV+
90
106 graded · €171m deployed
1.4×
90% EV+
91
56 graded · €33m deployed
1.4×
91% EV+
92
84 graded · €969m deployed
1.4×
89% EV+
93
92 graded · €196m deployed
1.4×
87% EV+
94
Luton TownEngland
58 graded · €37m deployed
1.4×
90% EV+
95
74 graded · €192m deployed
1.3×
88% EV+
96
AS MonacoFrance
58 graded · €227m deployed
1.3×
88% EV+
97
81 graded · €222m deployed
1.3×
90% EV+
98
39 graded · €51m deployed
1.3×
82% EV+
99
57 graded · €37m deployed
1.3×
91% EV+
100
FC MetzFrance
73 graded · €29m deployed
1.3×
95% EV+
101
Hertha BSCGermany
35 graded · €9m deployed
1.3×
89% EV+
102
90 graded · €276m deployed
1.3×
92% EV+
103
66 graded · €32m deployed
1.3×
88% EV+
104
Stoke CityEngland
44 graded · €30m deployed
1.3×
89% EV+
105
Watford FCEngland
57 graded · €30m deployed
1.3×
91% EV+
106
41 graded · €9m deployed
1.3×
95% EV+
107
RB LeipzigGermany
75 graded · €540m deployed
1.3×
81% EV+
108
Heracles AlmeloNetherlands
60 graded · €5m deployed
1.3×
88% EV+
109
40 graded · €18m deployed
1.3×
85% EV+
110
91 graded · €439m deployed
1.2×
82% EV+
111
56 graded · €366m deployed
1.2×
84% EV+
112
54 graded · €20m deployed
1.2×
87% EV+
113
13 graded · €6m deployed
1.2×
85% EV+
114
36 graded · €457m deployed
1.2×
83% EV+
115
69 graded · €333m deployed
1.2×
86% EV+
116
79 graded · €88m deployed
1.2×
92% EV+
117
32 graded · €14m deployed
1.2×
91% EV+
118
59 graded · €351m deployed
1.2×
85% EV+
119
59 graded · €190m deployed
1.2×
83% EV+
120
96 graded · €552m deployed
1.2×
88% EV+
121
66 graded · €101m deployed
1.2×
77% EV+
122
Paris FCFrance
49 graded · €78m deployed
1.2×
86% EV+
123
128 graded · €661m deployed
1.2×
79% EV+
124
74 graded · €499m deployed
1.2×
84% EV+
125
66 graded · €338m deployed
1.2×
86% EV+
126
98 graded · €154m deployed
1.2×
86% EV+
127
35 graded · €16m deployed
1.2×
91% EV+
128
75 graded · €959m deployed
1.2×
81% EV+
129
106 graded · €521m deployed
1.2×
84% EV+
130
103 graded · €288m deployed
1.2×
82% EV+
131
113 graded · €464m deployed
1.1×
82% EV+
132
67 graded · €362m deployed
1.1×
81% EV+
133
Everton FCEngland
55 graded · €322m deployed
1.1×
80% EV+
134
96 graded · €147m deployed
1.1×
80% EV+
135
71 graded · €65m deployed
1.1×
86% EV+
136
FC NantesFrance
76 graded · €56m deployed
1.1×
86% EV+
137
48 graded · €25m deployed
1.1×
92% EV+
138
52 graded · €682m deployed
1.1×
83% EV+
139
84 graded · €501m deployed
1.1×
79% EV+
140
73 graded · €548m deployed
1.1×
85% EV+
141
96 graded · €489m deployed
1.1×
80% EV+
142
Burnley FCEngland
111 graded · €337m deployed
1.1×
83% EV+
143
113 graded · €333m deployed
1.1×
89% EV+
144
65 graded · €60m deployed
1.1×
82% EV+
145
51 graded · €83m deployed
1.0×
88% EV+
146
61 graded · €366m deployed
1.0×
92% EV+
147
Hull CityEngland
59 graded · €38m deployed
1.0×
88% EV+
148
38 graded · €7m deployed
1.0×
97% EV+
149
78 graded · €214m deployed
1.0×
80% EV+
150
58 graded · €46m deployed
1.0×
83% EV+
151
100 graded · €519m deployed
1.0×
80% EV+
152
91 graded · €341m deployed
1.0×
78% EV+
153
56 graded · €89m deployed
1.0×
91% EV+
154
10 graded · €2m deployed
1.0×
90% EV+
155
Arsenal FCEngland
63 graded · €872m deployed
0.9×
76% EV+
156
101 graded · €403m deployed
0.9×
79% EV+
157
Ajax AmsterdamNetherlands
83 graded · €288m deployed
0.9×
75% EV+
158
57 graded · €27m deployed
0.9×
88% EV+
159
52 graded · €895m deployed
0.9×
79% EV+
160
Fulham FCEngland
50 graded · €308m deployed
0.9×
82% EV+
161
80 graded · €88m deployed
0.9×
83% EV+
162
39 graded · €18m deployed
0.9×
90% EV+
163
55 graded · €139m deployed
0.9×
82% EV+
164
112 graded · €249m deployed
0.8×
84% EV+
165
84 graded · €885m deployed
0.8×
74% EV+
166
Chelsea FCEngland
123 graded · €1.74b deployed
0.8×
73% EV+
167
5 graded · €2m deployed
0.8×
80% EV+
168
38 graded · €1m deployed
0.8×
95% EV+
169
47 graded · €184m deployed
0.8×
77% EV+
170
OGC NiceFrance
86 graded · €187m deployed
0.8×
81% EV+
171
66 graded · €677m deployed
0.7×
70% EV+
172
73 graded · €938m deployed
0.7×
80% EV+
173
91 graded · €558m deployed
0.7×
84% EV+
174
86 graded · €71m deployed
0.7×
84% EV+
175
9 graded · €3m deployed
0.6×
78% EV+
176
81 graded · €92m deployed
0.6×
80% EV+
177
49 graded · €20m deployed
0.6×
88% EV+
178
31 graded · €2m deployed
0.6×
94% EV+
179
46 graded · €40m deployed
0.5×
91% EV+
180
26 graded · €4m deployed
0.5×
92% EV+
181
11 graded · €1m deployed
0.3×
82% EV+
182
Vitesse ArnhemNetherlands
43 graded · €1m deployed
0.2×
98% EV+
183
Reading FCEngland
19 graded · €0m deployed
100% EV+
184
25 graded · €0m deployed
100% EV+
185
Dijon FCOFrance
13 graded · €0m deployed
100% EV+
186
8 graded · €0m deployed
100% EV+
187
1 graded · €0m deployed
100% EV+
188
10 graded · €0m deployed
100% EV+
189
21 graded · €0m deployed
100% EV+
190
18 graded · €0m deployed
100% EV+
191
VVV-VenloNetherlands
13 graded · €0m deployed
100% EV+
192
14 graded · €0m deployed
100% EV+
193
RKC WaalwijkNetherlands
39 graded · €0m deployed
100% EV+
194
Almere City FCNetherlands
54 graded · €0m deployed
100% EV+
195
FC VolendamNetherlands
61 graded · €0m deployed
100% EV+
196
FC EmmenNetherlands
23 graded · €0m deployed
100% EV+
197
Roda JC KerkradeNetherlands
24 graded · €0m deployed
100% EV+
198
1 graded · €0m deployed
100% EV+
199
1 graded · €0m deployed
100% EV+
200
9 graded · €0m deployed
100% EV+
201
2 graded · €0m deployed
100% EV+
202
1 graded · €0m deployed
100% EV+
203
7 graded · €0m deployed
100% EV+
204
23 graded · €0m deployed
100% EV+

Against the market, which usually wins

Both ledgers are graded against the betting market, and on balance both lose.

How this is measured
A model that only ever showed its own scoreboard would be worth nothing. Football carries a true closing price on 5,316 of 9,116 priced matches; the rest are pre-match prices, which is all that exists for them.
English top flight

24 seasons priced, 9,116 matches. The model was closer in 1 of them: 2008-09.

Over those matches the model scores 0.5809 and the market 0.5709. Across the whole 1888 history the model’s Brier is 0.5964, a 3.2% improvement on knowing nothing but the era’s home-and-away split.

NFL

11,862 games head to head. The model was closer in 8 of 47 seasons.

Model Brier 0.2198, market 0.2134.

There is no third card, because there is no third market. The five continental ledgers carry no price at all, so Spain, Italy, Germany, France and the Netherlands are measured against the model and nothing else. A continental line on this section would be an implication the data cannot support.

Your own calls land on the same axis: Citizen of Nowhere Picks scores a pick with the identical Brier the 1888 and 1920 ledgers use, so a call made this weekend is measured against a century of them.

Where these numbers come from, and what is wrong with them

Everything a reader needs to disbelieve this page on purpose rather than by accident.

The model

A three-way Elo, one rating per club, updated after every match and scaled by the goal margin, with ratings pulled back toward the middle between seasons because promotion and relegation churn the pool every year. Home advantage and the draw rate are estimated from the five seasons before the one being priced, never the season itself, so every number the model used at kick-off was available before kick-off. The NFL ledger is the same idea on a pre-game win probability the workbook carries for all 106 seasons.

What it cannot do

Nothing is held out: the handful of settings were fitted on the whole history, so treat this as a description of the record rather than a forecast. And the football model has almost no skill before about 1960: knowing the era’s home-and-away split is nearly as good as knowing which two clubs are playing. It earns its keep from roughly the 1960s on, and most of it in the last twenty-five years.

How it is checked

Every season’s league table is rebuilt from the matches and compared against the table this site already publishes on its own season hubs: 67 seasons, 1,405 club-seasons, 0 unmatched club names. Separately, every club’s count of top-flight seasons is compared against the number on its own club page, and all of them agree. That second check is what caught 1939-40: the league ran three matchdays before war was declared and the results were expunged, but the source still carried the matches, so a phantom season was appearing on every club that played them.

What is still wrong

The checks leave 2 fixtures in the football source that are recorded the wrong way round: both legs of the tie logged at one ground, so one of them has the result reversed, across 4 seasons between 1981-82 and 2004-05. They are listed and left alone. Guessing the correction from the symptom is how a half-right fix gets shipped, so they wait for the real results. Six points deductions are modelled as deductions and not as errors, and the boards quote what a club earned on the pitch, with the deduction named beside it.

The five continental ledgers

Spain, Italy, Germany, France and the Netherlands are scored by the SAME model as England, imported rather than copied: the build asserts it is running the English ledger’s own functions, so the two cannot quietly drift apart. Results are compiled by James Curley, github.com/jalapic/engsoccerdata, with France 1994-95 supplied separately because the source does not carry it. The settings were fitted on England and reused unchanged, which is a stated choice and not a derived one.

5 seasons are recorded here whose TABLE is not final, although the ratings from them are sound: Italy 1945-46, two regional groups (Alta Italia, Centro-Sud) plus a final round; Germany 1991-92, source truncated on 1992-04-25, last 4 matchdays absent, 340 of 380; France 1946-47, source 4 matchdays short (20 clubs at 34 of 38) and one round mis-dated; France 2019-20, abandoned at the COVID-19 shutdown, 279 of 380 played; Netherlands 2019-20, voided at the COVID-19 shutdown, 232 of 306 played. They are labelled wherever their numbers appear rather than quietly averaged in.

Two units, never added

A football win was worth two league points until 1981-82 in England, and the same switch landed in 1994-95 in France and Italy and 1995-96 in Spain, Germany and the Netherlands. So league points cannot be summed down the length of one series, nor ranked across six of them. Club and metro totals use match points instead: a win is 1, a draw 0.5, which every era and every league shares. The NFL is in wins. A page that added them together would be inventing a quantity.

Sources

English top-flight results from this site’s own match log, extended from 2023-24 with football-data.co.uk, which also supplies the prices: closing where it publishes one, pre-match before 2012-13, never the two conflated. NFL results and pre-game probabilities from the site’s NFL workbook, with closing spreads loaded from published historical odds. Football ledger built 2026-09-02; NFL ledger built 2026-08-20. Player valuations from Transfermarkt via github.com/dcaribou/transfermarkt-datasets (CC0), 2012-07 through 2026-06; paused upstream since July 2026, so the series ends where the source ends.

The same measure appears one sentence at a time on every covered club page and on the metro pages, where it belongs to the club or the place rather than to the model. See it on Leicester City, Girona, Liverpool or Green Bay. Season-by-season NFL game logs live at /teams/nfl/expectation/[season].