Field Notes · Sports Analytics

Root Cause

What 25 years of Test cricket looks like through Wins Above Replacement

Basketball has Wins Above Replacement. Test cricket doesn't, so I built one from 25 years of ball-by-ball data.

In short

WAR (Wins Above Replacement) is the closest thing basketball and baseball have to a single number that answers "how good is this player, really?" It doesn't ask how many points or runs someone produced. It asks how many wins they added for their team, above what a freely-available replacement-level player would have added in the same games. Test cricket has never had a real version of this. Batting average and bowling average get you partway there, but they don't know who you were facing, what the pitch was doing, or whether the moment mattered.

I built a metric to measure it for Test cricket. What follows is what it found, using the model as it stands today. There's a companion piece, Measure Twice, covering how it was built and tested, for anyone interested in seeing how the model got to where it is now.

The idea, in plain terms

Imagine every Test team keeps a replacement player in reserve. Not a star, just a solid domestic pro who'd slot in if someone got dropped. WAR asks one question. How many extra wins did this player earn their team, above what that replacement would have earned in the same matches?

Everything else is just being careful about what "the same matches" means:

Is the data any good?

Everything here comes from Cricsheet, a free ball-by-ball archive of international cricket. Test coverage starts in 2001 and runs to the present, 914 matches, 1.76 million individual deliveries, each one carrying the batter, the bowler, the runs, and the dismissal if there was one.

Before trusting any of it, I ran it against known history. Alastair Cook's career is closed. He retired in 2018, so his total is fixed forever, and summing his raw runs straight off the ball-by-ball data landed exactly on his real career tally of 12,472. The dismissal mix checked out too, 58.8% caught, 17.6% bowled, 16.8% lbw, the rest split across run outs, stumpings and oddities. And the era shows up honestly in the numbers. The draw rate has fallen from 24.4% of matches in 2000–04 to just 7.0% in 2025–26. Part of that is the well-documented shift toward more attacking Test cricket. Part of it, in the last five years especially, is the World Test Championship. Bilateral series now feed a points table, and a draw is worth a lot less on that table than a win.

Share of matches ending in a draw, by five-year period

0% 10% 20% 30% 2000–04: 24.4% of matches drawn 2005–09: 26.5% of matches drawn 2010–14: 25.0% of matches drawn 2015–19: 15.2% of matches drawn 2020–24: 14.5% of matches drawn 2025–26: 7.0% of matches drawn 24.4% 7.0% ’00–04 ’05–09 ’10–14 ’15–19 ’20–24 ’25–26

Hover over any point without a printed number to see that period's exact draw rate. This era-by-era swing is the whole reason the model fits a separate runs-per-win rate for each five-year period rather than one flat rate across 25 years.

The leaderboard

This is every player ranked with all of the adjustments from above applied at once (who they faced, the conditions, what a wicket was really worth, how much the moment mattered), then converted into wins. The full list of what goes into it, for anyone who wants the detail, is in the Measure Twice companion piece.

#1
Joe Root's rank, worth about 16 extra wins to England over his career, more than any other player produced since 2001.
For anyone who needs the context

Root debuted for England in 2012, captained the side for five years through 2022 (more Tests as captain than anyone else in English history), and became England's all-time leading Test run-scorer along the way. He's the one member of the "Fab Four" era (Root, Kohli, Smith, Williamson) still adding to his numbers at the top of his game deep into his thirties, essentially the same classical, orthodox technician he was at 21, just with a few more reverse-scoops added along the way.

Click a column heading to sort. Swipe or scroll sideways on a phone to see every column.

Career WAR · top 20 · 2001–2026
# Player Team Bat Bowl Total Tests
1JE RootEngland16.35−0.2816.07166
2NM LyonAustralia0.2614.1314.38142
3SPD SmithAustralia13.89−0.3513.54123
4JM AndersonEngland−0.1913.2013.01181
5SCJ BroadEngland1.7110.2912.01166
6AN CookEngland11.670.0411.71161
7V KohliIndia10.89−0.1210.77121
8KS WilliamsonNew Zealand10.69−0.1410.55110
9PJ CumminsAustralia1.029.5010.5273
10MA StarcAustralia1.258.379.62106
11BA StokesEngland6.612.929.54121
12RA JadejaIndia3.066.289.3489
13TG SoutheeNew Zealand1.068.219.27107
14DA WarnerAustralia9.45−0.199.27112
15R AshwinIndia2.516.368.87105
16JR HazlewoodAustralia0.047.667.7077
17HM AmlaSouth Africa7.35−0.047.31121
18UT KhawajaAustralia6.82−0.006.8287
19AB de VilliersSouth Africa6.760.026.78105
20KC SangakkaraSri Lanka6.81−0.036.7884

Ten of the top 20 are batting-led, seven are bowling-led, and three (Stokes, Jadeja, Ashwin) are true allrounders. It's a properly mixed list. Add up everyone in the dataset rather than just the top 20, and batting has generated almost twice as much value as bowling overall. That wasn't a target the model was built to hit. It falls out naturally once a wicket is priced at what it's really worth in win-probability terms, about 33 runs, rather than the higher figure an old-fashioned bowling average would suggest, which means bowlers earn less credit per wicket than cruder methods would give them. It's a real pattern rather than a modelling quirk too. Teams that win the batting battle by this kind of margin do go on to win the match more often, checked directly against real results rather than just assumed.

That's the career picture, showing who produced the most across their whole time in the side. Flip the question to "who was most valuable every time they played" and the answer changes. Joe Root's still up there, but it's Pat Cummins who tops the list on a per-match basis, despite a much shorter career.

Career WAR rewards a long, durable career; WAR per game asks how much a player was worth every time they took the field, regardless of how many times that was. Minimum 35 Tests, to keep small samples from dominating.

WAR per game · top 20 · min. 35 Tests
# Player Team WAR/game Total WAR Tests
1PJ CumminsAustralia0.14410.5273
2MJ HenryNew Zealand0.1374.7835
3JJ BumrahIndia0.1256.5052
4A KumbleIndia0.1154.7141
5SPD SmithAustralia0.11013.54123
6M MuralitharanSri Lanka0.1074.0838
7HC BrookEngland0.1054.0038
8RA JadejaIndia0.1059.3489
9CR WoakesEngland0.1026.3562
10NM LyonAustralia0.10114.38142
11JR HazlewoodAustralia0.1007.7077
12JE RootEngland0.09716.07166
13KS WilliamsonNew Zealand0.09610.55110
14PL HarrisSouth Africa0.0933.3536
15DL VettoriNew Zealand0.0914.9354
16MA StarcAustralia0.0919.62106
17V KohliIndia0.08910.77121
18TG SoutheeNew Zealand0.0879.27107
19GP SwannEngland0.0855.1360
20N WagnerNew Zealand0.0855.4564

There's a real mix here too. Smith, Brook, Root, Williamson and Kohli all sit inside the top 20 on rate, not just on career total. Kumble still cracks the top 5 from a career that, in this dataset, is only 41 Tests long, the last stretch of a much longer real one.

The best individual seasons

Career and per-game totals answer "who was the best player." This one answers a different question. What's the single best year anyone has had?

Single-season WAR · top 15
#PlayerYearTeamTotal
1JJ Bumrah2024India2.55
2Harbhajan Singh2008India2.39
3JE Root2021England2.32
4SCJ Broad2023England2.31
5MJ Henry2024New Zealand2.30
6V Kohli2018India2.19
7JE Root2015England2.14
8YBK Jaiswal2024India2.10
9KS Williamson2015New Zealand2.08
10NM Lyon2017Australia2.06
11V Kohli2016India1.98
12JM Anderson2021England1.98
13V Sehwag2010India1.98
14RA Jadeja2017India1.97
15NM Lyon2018Australia1.97

Bumrah's 2024 tops the whole dataset by a clear margin. The underlying season is one of the more remarkable in the dataset's whole 2001–2026 window by raw numbers alone. 71 wickets at an average of 14.93 across 13 Tests, spread over five different away and home assignments in a single calendar year, South Africa in January, then home series against England, Bangladesh and New Zealand (the last of those India's shock 0–3 home whitewash, a series most of India's other bowlers had miserable figures in), before closing the year in Australia for the Border-Gavaskar series.

What makes the model's own read on it interesting is what's not driving the number. Opposition quality across those 13 Tests averaged almost exactly the dataset norm (0.999, against 1.0 for a perfectly average year of opponents), and leverage came in fractionally below average too (0.953×), era-typical difficulty rather than a soft year against weak sides in high-stakes moments. Career-best output was layered on top of essentially ordinary conditions, not helped along by them.

The one dip in an otherwise dominant year came in the final match, the Boxing Day Test at the MCG (bowling value of −39.6 runs above replacement, the only negative match of his season), consistent with the back spasm he picked up during that Test, which would go on to rule him out of the series-deciding match in Sydney.

This list is a good mix of the two disciplines. Six of the fifteen seasons shown are ones where the value came mostly from batting, not bowling. Michael Clarke's 2012 doesn't quite crack it, ranking #22 overall despite being one of the most dominant individual years in the sport's history by reputation (a 106.33 average and four double-centuries in a single calendar year, a feat not even Don Bradman managed, one of them an unbeaten 329 against India). Not for lack of runs or soft conditions either. The bowling he faced and the pitches he batted on that year were both close to average difficulty. Two things explain the gap instead. First, a lot of his runs came in matches that were already decided or heading for a draw, so they counted for less than the same runs would have in a tighter game. Second, the era. It simply took more runs to buy a win back in 2010–14 than it does in the more recent seasons most of this top-15 list comes from. The same number of runs buys more WAR today than it did in 2012.

Runs needed to buy one win's worth of probability, by five-year period

450 550 650 750 2000–04: 576 runs per win 2005–09: 687 runs per win 2010–14: 632 runs per win (Clarke's era) 2015–19: 513 runs per win 2020–24: 520 runs per win 2025–26: 482 runs per win 687 482 ’00–04 ’05–09 ’10–14 ’15–19 ’20–24 ’25–26

Fitted separately for each five-year period from team run differentials against match outcomes, the same era buckets behind the draw-rate chart above. A lower number means less scoring is needed to force a result, so the same performance converts to more WAR today than it did at the 2005–09 peak, or in Clarke's own 2010–14 window. Hover any point for its exact value.

A few arguments this settles, sort of

Every era of Test cricket has its pub arguments. A few of this one's biggest hold up cleanly enough in the numbers to be worth a look, though most don't come out quite as tidy as either side of the argument would like.

Lyon vs Ashwin

Head to head, the two leading spinners of the era
PlayerTeamTestsBatBowlTotalWAR/game
NM LyonAustralia1420.2614.1314.380.101
R AshwinIndia1052.516.368.870.085

Lyon sitting at #2 on the overall leaderboard, above every specialist batter bar Root and above bowlers like Anderson who get talked about as the greats of the era, might come as a surprise on its own. He's never really been discussed in the company of Warne or Murali the way this model now places him. He's a very good, honest, high-volume off-spinner by most reputations, not an all-time-great one.

Lyon leads Ashwin on both total value and rate, though, for a specific, checkable reason, and it's the same reason the model rates him this highly overall. Ashwin's numbers are excellent partly because he bowls a lot in India, where this model's own country-conditions data says spin is easier than almost anywhere else measured (factor 0.91). Lyon's are excellent despite bowling most of his cricket in Australia, which the same data says is the single hardest country for a spinner in world cricket (factor 1.26, well clear of anywhere else). Two spinners with outwardly similar reputations spent their careers in almost opposite conditions, and once that's priced in, it isn't close. Lyon is the best spinner this dataset has seen at succeeding on pitches that are historically brutal for spin.

How pace-friendly or spin-friendly each country's conditions have been, 2001–2026

PaceSpin
Ireland0.850.87
South Africa0.881.07
West Indies0.891.01
Zimbabwe0.950.98
England0.981.04
Australia1.001.26
New Zealand1.011.15
Bangladesh1.100.93
India1.140.91
Pakistan1.171.05
Sri Lanka1.180.91
Easier to bowl (below 1.0) Harder to bowl (above 1.0)

Pooled across the full 2001–2026 window, for one clean summary picture; the model itself refits a separate reading for each five-year era, so a country's true reading for any specific year can sit meaningfully away from this pooled one. Australia's spin column is still the outlier that explains this whole section. Nowhere else comes close to 1.26.

The Fab Four

This is a batting debate, so the table strips out bowling entirely. Root in particular has picked up real value from his part-time off-spin across his career that has nothing to do with the question being asked here.

Root, Smith, Kohli, Williamson · batting only
PlayerTeamTestsBat WARWAR/game
JE RootEngland16616.350.098
SPD SmithAustralia12313.890.113
V KohliIndia12110.890.090
KS WilliamsonNew Zealand11010.690.097

This table settles the Fab Four debate in Tests specifically, not across every format. Kohli's case in particular leans heavily on white-ball numbers this can't speak to at all. Within Tests, Root and Smith sit a clear tier above Kohli and Williamson on career batting value, but that's mostly a function of Tests played, and it doesn't hold on rate.

Per Test, Smith (0.113) is out in front of the other three. Root (0.098) and Williamson (0.097) are close enough to call a dead heat. Kohli (0.090) is the one who trails on a per-match basis. Career total and per-match rate tell different stories here, and flattening them into one tier would hide that.

Root and Smith are close enough to be the real argument, so it's worth narrowing to just the two of them.

Head to head · batting only
PlayerTeamTestsBat WARWAR/game
JE RootEngland16616.350.098
SPD SmithAustralia12313.890.113

Root leads by a wide margin on career batting value, but most of that gap is simply opportunity, not ability. Smith spent his first two seasons in and out of the side as a legspin-bowling allrounder before settling in as a specialist batter from 2013, then lost a full year to the 2018 ball-tampering ban, right in what should have been his peak. Root, picked as a batter from day one for a team that plays more cricket than Australia does, simply got more Tests. Per Test, the picture flips, and Smith's WAR per game (0.113) edges Root's (0.098). Which one you'd call the better player comes down to taste more than anything the numbers alone can settle.

Best modern allrounder

Head to head
PlayerTeamTestsBatBowlTotalWAR/game
BA StokesEngland1216.612.929.540.079
RA JadejaIndia893.066.289.340.105

This is close enough now to go either way. Stokes leads on total career value, 9.54 to 9.34, in 32 more Tests, while Jadeja leads clearly on WAR per game, 0.105 to 0.079, 33% higher, in a shorter one. The shape of each score is the more interesting story. For most of his career Jadeja was a bowler who could bat a bit, not a true dual threat. His batting average sat at 31.5 through 2018, only catching up recently (42.4 since 2019, now good enough to be picked on runs alone). Even so, his value here is still overwhelmingly bowling-led, and like Ashwin above, a lot of that bowling comes in conditions this model rates as unusually kind to spin. Stokes' shape is different again. Batting has been the larger of his two contributions in most seasons, but bowling has swung between strong years and quiet or negative ones, rather than growing steadily into a second threat the way Jadeja's did. Pick Stokes if durability is what you value, Jadeja if you only care about the nights he actually played.

One more angle on Stokes. Some of that value is specifically match-winning, in a sense this model can check. Every performance here is leverage-weighted by how much was at stake when it happened, and stripping that weighting back out shows what each player would be worth on raw production alone. Take it out and Stokes' total drops by 5.1%, meaning leverage is a net positive for him, his output skews toward the moments that mattered. Take it out for Jadeja and his total rises by 17.7%, the opposite pattern. A meaningful share of his production came in matches that were already largely decided. That's Stokes' clutch reputation showing up as an actual number, not just a talking point.

Shakib and Kallis, for context
PlayerTeamTestsBatBowlTotalWAR/game
Shakib Al HasanBangladesh683.042.555.590.082
JH KallisSouth Africa894.76−0.254.510.051

Shakib Al Hasan belongs in this conversation too, even though he isn't rated as highly as either of these two in Test cricket specifically. A true two-way contributor like Stokes rather than a specialist like Jadeja, his WAR per game still edges Stokes', but he falls short of both on total value, mostly for lack of Tests played (68, against Jadeja's 89 and Stokes' 121).

Jacques Kallis, the allrounder both of these two inevitably get measured against, barely registers here for two different reasons. The batting is mostly a data problem. This dataset only captures 89 of his 166 Tests, missing the first six years of an 18-year career that began in 1995, before Cricsheet's coverage starts, so a full career would likely rate well above the 4.76 WAR shown. The bowling is more a reputation problem. He's often talked about as a near-frontline third seamer, but nearly half his captured bowling came in South Africa, which this model rates as one of the easier countries for pace, and once that's priced in it nets out to essentially zero, a support seamer who chipped in on helpful days rather than a strike weapon. Judged against replacement level, that's exactly where a role like that should land.

Anderson or Steyn?

Head to head
PlayerTeamTestsBatBowlTotalWAR/game
JM AndersonEngland181−0.1913.2013.010.072
DW SteynSouth Africa900.175.125.290.059

The model doesn't just prefer Anderson here. It isn't especially close, more than double on total value (13.01 to 5.29), and ahead on WAR per game too. That's the hardest verdict in this piece to take at face value, because by the numbers most judges look at, Steyn's the better bowler. His bowling average is 22.95 against 26.45, at a faster strike rate, over a career many rate as the more fearsome of the two at its absolute peak.

Part of that is the same mechanism that discounted Ashwin and Jadeja. Steyn took 59% of his wickets in South Africa, which this model rates as one of the easier countries for pace bowling (factor 0.88), against Anderson's 65% in a much less forgiving England (0.98).

There's a cleaner explanation that doesn't need that caveat at all. Split Steyn's career at the end of his last fully fit season and the gap nearly disappears. 82 Tests of prime Steyn (2006–2016) produced 0.0722 bowling WAR per Test, within 1% of Anderson's whole-career rate of 0.0730. His last 8 Tests, played after multiple shoulder and heel surgeries, were actively bad (−0.80 WAR), and that alone drags his career figure down to 5.29.

It wasn't eight evenly mediocre matches, either. He went wicketless twice, one of them a rough 0 for 77 in his highest-stakes match of the run, which is most of why the total looks worse than a steady decline would. At full health, this model rates Steyn and Anderson as the same bowler.

Steyn's bowling WAR, prime vs. injury-hit farewell
TestsBowl WARWAR/Test
Prime (2006–2016)825.920.0722
Injury comeback (2018–2019)8−0.80−0.0998
Anderson, full career (for comparison)18113.200.0730

What separates the final numbers, then, isn't peak quality. It's that Anderson's longevity is one of the most remarkable in the sport's history, and it deserves to be said plainly rather than just implied by a number. Twenty-one seasons in this dataset, debuting at 20 and still taking the new ball at 41, with only four of them landing below replacement level, mostly early, growing-pains years. Three of his four best seasons by this model's reckoning (2017, 2021, and 2022) all came after his 34th birthday, and the single best year of his entire career arrived at 39, well clear of anything he produced in his twenties or early thirties. Most fast bowlers are in visible decline a decade before that; Anderson somehow kept getting better. Steyn's body didn't get the chance to age the same way; his injured farewell Tests really were below replacement level, and the model is right to count them.

One flagged, unfixed pattern. Steyn took a higher share of his wickets against the tail than Anderson did (40.6% to 34.0%), and this model can't yet price a wicket differently depending on who it was.

And Broad, for completeness

Head to head
PlayerTeamTestsBatBowlTotalWAR/game
SCJ BroadEngland1661.7110.2912.010.072
JM AndersonEngland181−0.1913.2013.010.072

Broad and Anderson are close to a dead heat, both playing the bulk of their cricket in the same English conditions, so neither gets a discount the other doesn't. It's the tightest gap in this piece. Broad's WAR per game (0.0723) edges Anderson's (0.0719), well inside the margin that shouldn't be read as a real verdict, though the two didn't bowl equally well to get there. Anderson is the better pure bowler by this model's reckoning, 13.20 bowling WAR at a higher rate per ball than Broad's 10.29. What closes the gap is batting. Broad's part-time returns earn credit as a properly useful lower-order bat by his slot's standard, though "useful" mostly describes the first half of his career (average 23.1 through 2015, 11.9 from 2016 on, a real decline). Anderson's own batting is worth essentially nothing across a whole career. Anderson was the better bowler. Broad's bat made up the difference.

Two more things worth knowing

The model spotted a doctored pitch

R Ashwin's 12 wickets for 98 at Nagpur in 2015, on a pitch controversial enough that the ICC formally investigated it for excessive turn, is exactly the case a pitch-conditions adjustment should catch. Once the model accounted for how helpful that specific surface was to spin, his bowling value for that match dropped from 0.71 WAR to 0.31, more than halved. It didn't know the pitch had made headlines. It just measured how a replacement spinner would have fared on the same surface, and reached the same conclusion cricket journalism did at the time.

Big moments count for more

Ben Stokes' unbeaten 135 at Headingley in 2019, England chasing 359 with the last pair at the crease, is worth noticeably more here than a similar score in a match already decided. The model weighs every performance by how much was at stake when it happened, which is a large part of why a player like Stokes, who has a habit of producing his best cricket in the tensest moments, rates well above what a flat runs-based average would say.

39
Anderson's age during the single best season of his entire career. Three of his four best years came after turning 34.

Where it still falls short

Anything before 2001 barely counts

Cricsheet's ball-by-ball coverage starts in 2001, so anyone whose career peaked earlier gets badly undercounted. Jacques Kallis, above, is the clearest case in this piece, missing the first six years of an 18-year career that began in 1995.

Coverage isn't actually complete until 2009

The 2001 start date undersells the real problem. Checked against real Test totals for each year, the dataset captures only 176 of the 377 Tests actually played between 2001 and 2008, under half, with the worst of it in 2001 and 2002 (1 match captured out of 55 played, then 2 out of 54). Coverage improves steadily from there and is exactly complete, every single Test, from 2009 onward. That means anyone whose career ran mostly through 2001–2008 is undercounted too, not just players who retired before 2001. Shane Warne is the clearest example, 24 captured Tests despite playing on for six more years after the window nominally opens.

Not every team gets the same number of chances to build one

In baseball or basketball, every team plays the same number of games in a season, so a season's WAR total already compares players on level footing without needing a rate stat to correct for it. Test cricket doesn't have that luxury, since teams play wildly different volumes of cricket against each other. Career WAR rewarding a long, consistently good career is exactly what a value-produced stat should do, not a shortcoming to apologise for. The chance to produce that volume, though, isn't evenly shared. Root has played 166 Tests to Kane Williamson's 110, and a good chunk of that gap is national scheduling, not application or fitness. England have played 275 Tests in this window, New Zealand 169, 39% fewer. Williamson's WAR per game (0.097 in the Fab Four table above, batting only) is essentially tied with Root's (0.098), but his team simply doesn't play as much cricket, so he was never going to get the same number of chances to add to a career total. The same logic quietly favours England, Australia and India's stars over Sri Lanka's, New Zealand's and the West Indies', independent of who's better.

Career WAR answers how much value a player produced. WAR per game answers how much value they produced per chance they got, the fairer lens when the question is really about ability rather than opportunity. A long career spent producing at a high level, like Anderson's or Root's, is real value and deserves credit as such, not treated as a lesser feat than a short, brilliant one. A shorter one shouldn't be read as a lesser player either, just because their team's calendar never gave them the games to build the same total. Williamson's rate is nearly identical to Root's, he just got 39% fewer chances to show it, a different thing from being a smaller player.

Fielding isn't in here at all

I looked hard at adding it, and stopped. Cricsheet records who took a catch, but not who dropped one, so there's no way to distinguish a player who was never given a chance from one who put down every chance they got. Ground fielding (the stops, the saved boundaries, the turned twos) is invisible entirely unless it happens to end in a run out. A player like Ravindra Jadeja, whose fielding reputation rests almost entirely on things this dataset can't see, would come out of a forced "fielding WAR" looking ordinary, which would be a worse outcome than leaving it out and saying so.

The replacement bar is wide, not a single line

Bangladesh and Zimbabwe bowlers dominate the bottom of the career table because the model measures performance against a global replacement level, not each team's own bar, working as intended rather than breaking. The model also has no way to see why a wicketkeeper was picked. A keeper-batter's real value is mostly in the gloves, and everything about that is invisible here, leaving only a modest batting record behind.

What I'd fix next

None of this changes what a scorecard already shows. Root has more Test runs than anyone in history, and Lyon has taken more Test wickets than any spinner outside Warne and Murali. What WAR adds is a way to weigh what those numbers meant, against who was faced, what the pitch was doing, and what was at stake. By that measure, Root's place at the top isn't a surprise. Lyon's place right behind him might be.


More on how this was built

Ten rebuilds, three real bugs caught and fixed, twelve plausible ideas tested against held-out data and correctly rejected, and one still open. It's a companion piece rather than a section here, since it's a different kind of read, found in Measure Twice.