Steven Smith's consistency was unparalleled, David Warner made a triple-hundred, and Virat Kohli struck a double, but 2019's best Test innings were fourth-innings miracles, and many months later, it is difficult to believe either happened, let alone both in the same year.
Ben Stokes' 135 not out brought England roaring back into the Ashes, Australia going down in a storm of sixes at Headingley. Kusal Perera (has there ever been a less likely producer of an all-time great innings?) had run the heist against South Africa in Durban a few months earlier, with his magical 153 not out.
As ESPNcricinfo's jury deliberates on the best performances of the year, let's dive into analysis of two innings that are not just front-runners for the award but contenders for the title of best Test innings ever. In many ways, Perera's and Stokes' performances were incredibly similar. Both batsmen came in at No. 5, with more than 200 runs still to get in a chase of over 300. Both made over 60% of the runs scored while they were at the crease. Acquaint yourself with the main numbers from each innings below:
There were differences in how each innings was constructed, the major one being how each batsman started his innings. Perera, who came in at a precarious 52 for 3, started his innings normally, making sure to take the scoring opportunities on offer. Stokes, meanwhile, was a hermit in his first 90 minutes. He got off the mark with a single off his ninth delivery, then didn't score another run for 30 balls. His first boundary didn't come until the 74th delivery he faced.
And yet in the home stretch Stokes' innings was gloriously manic. He clobbered seven sixes and four fours in the last 42 balls he faced, hitting 74 through that period. No batsman has ever made such a dramatic transition in an innings. The difference in strike rate between Stokes' first 60 balls and last 60 is 135 - the highest ever.
Perera was more even through the course of his 153, but also likely had a more difficult home stretch to negotiate. Stokes faced the second new ball while in the company of the No. 6, Jonny Bairstow, roughly midway through an 86-run partnership. For Perera, the second new ball arrived while the No. 11, Vishwa Fernando, was at the crease, with 41 runs still to get - a much more fragile point in the chase.
The most striking similarity, clearly, is the last-wicket stand. In both instances, the match seemed lost when the penultimate wicket fell. But Perera's partnership with Fernando was worth 78 unbeaten runs, and Stokes' stand with Jack Leach grew to 76. In successful chases, no bigger final-wicket partnerships have ever been produced.
So how can we separate these all-time great innings? Whose innings deserves the award? To get closer to the answer, we've harnessed a mountain of statistics, and viewed the numbers through five key lenses.
Who faced the tougher bowling attack?
In one corner, we have Pat Cummins, Josh Hazlewood, James Pattinson and Nathan Lyon. In the other, Dale Steyn, Kagiso Rabada, Keshav Maharaj and Duanne Olivier (although Vernon Philander was part of South Africa's five-man attack, he was injured early in the innings and did not bowl at Perera). Both are phenomenal line-ups, but going by the numbers since the start of the previous year, South Africa's bowlers were better, both on average and strike rate, going into the Durban Test.
But what about in the specific conditions they were required to bowl in? In England, Australia's frontline bowlers averaged 28.6 and struck at 55.4. Good numbers, but not as good as those of the South Africans at Kingsmead and in St George's Park, where the two Tests of the series were played, and where, although conditions are lower and slower than at many other South African grounds, Steyn, Rabada and Maharaj combined to average 23.2 and struck at 42.5 before the start of the Kingsmead match against Sri Lanka. Olivier had not played a match at either venue, but even taking first-class stats, South Africa's attack had a record of stronger performances at these venues on the Indian Ocean coast than Australia did in England.
Who had the tougher pitch conditions?
Pitches are famously difficult to discern and decipher, but numbers could help demystify them a little bit. The bulk of both Stokes' and Perera's innings were played on day four - the day both matches reached their conclusion. In the five Tests before this 2019 one at Kingsmead, the day-four batting average was 27.34; the figure for Headingley was 37.63. This suggests Kingsmead has recently been a significantly tougher venue for batsmen on day four.
During the two Tests in question, Kingsmead seemed to have started out as the better venue for batting, but had not improved substantially for batsmen by the end of day three. Headingley, meanwhile, started off tougher, but appears to have flattened out a little on day three. Day four's numbers can only tell us so much, given they are skewed by two exceptional innings.
Which batsman was luckier?
Neither innings was flawless. Perera top-edged his second ball, but got enough on it to have it land square of fine leg. Stokes was very secure through the early stages of his innings, but was dropped on 116 and should have been lbw on 131. If Australia had reserved a review for what turned out to be the penultimate over of the innings, Stokes would have been given out.
Who played the more controlled innings, though? On this front, it seems like Stokes comes out significantly ahead, partly because he had been so careful through the early, defensive stages of his knock.
It's worth mentioning here, however, that control stats have their limitations. When a batsman plays a shot, control stats record only whether a batsman was "in control" or "out of control", and do not reflect how "in control" an "out of control" stroke may have been. One batsman could push with hard hands and edge a ball to the wicketkeeper, and another could play with soft hands to ensure the edge falls short of slips, and yet both strokes will go down as "out of control".
This is worth mentioning in this context, because where Stokes gave Australia two opportunities to dismiss him towards the end, Perera did not offer any clear-cut chances through the course of his knock.
Who had the tougher match situation?
When Perera came to the crease, Sri Lanka needed 252, and when Stokes arrived, England required 218. Both batsmen had one strong partnership with a bona fide batsman - Dhananjaya de Silva in Perera's case, and Bairstow in that of Stokes. But when the tail came in, plenty of work remained. Sri Lankan needed 98 at the fall of the sixth wicket, and England 106.
England's lower order and tail seem to have been much stronger than Sri Lanka's, however (even if on this occasion, Chris Woakes and Stuart Broad didn't offer a lot of help).
In the graph below, only Broad's average since being struck on the helmet by Varun Aaron in 2014 - after which he has been a perceptibly worse batsman - is reflected. And as Kasun Rajitha, Jofra Archer, Jack Leach and Lasith Embuldeniya had each played fewer than ten Tests at the time, their first-class stats were used, as these are more likely to be a better representation of their batting abilities.
The lower order's competence leads nicely to our final consideration, which is…
Who farmed the strike better in the final stages?
To underline just how magnificent both innings were, look at the staggering strike-rotation statistics for the final wicket. Both South Africa and Australia were desperate to get the No. 11 on strike, and yet, both Stokes and Perera routinely prised singles out of the opposition's fists late in every over to secure a phenomenal percentage of the strike. Stokes only allowed Leach to face the first ball once in their partnership, securing strike for the first ball on nine other occasions - a success rate of 90%. Perera's partnership with Fernando lasted four overs longer, but even he allowed his No. 11 to face only two first balls, taking the other 14 himself - a success rate of 87.5.
While both batsmen were equally adept at claiming the strike during the final partnership, Perera does seem to have been more desperate to farm the strike with Nos. 8-10 at the crease as well, which may have to do with the relative lack of batting ability in the Sri Lanka tail. He faced a greater percentage of first balls of overs, and a lower percentage of last balls with Nos. 8 and below at the crease. Although it's tempting to think that Stokes was batting methodically towards victory while Perera was merely batting with abandon, these stats suggest that Perera was at least as desperate as Stokes to haul Sri Lanka to their target.
Regardless of who wins the ESPNcricinfo's award for Test batting performance of 2019, the numbers suggest that both innings were perhaps even more exceptional than they first appear. Not only did Perera and Stokes quell incredible attacks during their monumental backs-to-the-wall performances, they were also unreasonably skilful at protecting their No. 11s, raining sixes during the hectic final overs.
Perera appears to have defused the better attack, conquered the tougher conditions, and had the weaker lower order to contend with. Stokes, however, was significantly more in control of his innings.
Stats inputs from Shiva Jayaraman
Click here for the nominees for the Test batting performance of the year in the ESPNcricinfo Awards 2019
Andrew Fidel Fernando is ESPNcricinfo's Sri Lanka correspondent. @afidelf