One session, 130 runs
163 Balls faced by Ben Stokes for his double-century, the second-fastest by any batsman, next only to Nathan Astle's 153-ball double against England in Christchurch in 2002. The previous fastest double-hundred for England was off 220 balls, by Ian Botham against India at The Oval in 1982, while the previous quickest in Cape Town was 211 balls, by Herschelle Gibbs against Pakistan in 2003.
130.3 Stokes' strike rate (258 off 198 balls), the second fastest for a 200-plus score in Tests. Astle scored at a rate of 132.14 in his 168-ball 222 in that Christchurch Test in 2002.
178 The previous highest Test score by an England batsman batting at No. 6 or lower: Graeme Hick got that many against India in Mumbai in 1993. In all, Stokes' blast was the 16th double-century in Tests by a batsman batting at No. 6 or lower. Australia have seven of those, Pakistan three, and India, West Indies, South Africa, Sri Lanka, Bangladesh and England one each.
130 Runs scored by Stokes in the morning session on day two; it is the most by any batsman in the first session of a day in Tests. The previous highest was 123, by Les Ames, the England wicketkeeper, also against South Africa, at The Oval in 1935. Overall, it's the seventh best by any batsman in a session. (Click here for most runs scored between lunch and tea, and here for most runs after tea.)
399 The partnership between Stokes and Jonny Bairstow, England's second highest for in Tests, next only to the 411-run stand between Colin Cowdrey and Peter May against West Indies at Edgbaston in 1957. The Stokes-Bairstow stand is also the highest ever in South Africa, the highest for the sixth wicket by any team, and the second best for any wicket against South Africa, next only to the world record stand of 624 between Mahela Jayawardene and Kumar Sangakkara.
6.91 The run rate during the Stokes-Bairstow partnership, the best in any 200-plus stand in Tests. It is marginally better than the previous highest of 6.88, between Matthew Hayden and Adam Gilchrist in their partnership of 233 against Zimbabwe in Perth in 2003.
11 Sixes for Stokes in his innings, the joint second-highest for any batsman in Tests, next only to Wasim Akram's 12 against Zimbabwe in his unbeaten 257. The others with 11 sixes are Astle, Hayden, and Brendon McCullum (twice).
408 Runs scored by England's Nos. 6 and 7 batsmen, the highest aggregate at these two positions in any Test innings. It's also the first time two batsmen at No. 6 or lower have scored 150-plus runs in the same innings.
150* Bairstow's score, the third highest by an England wicketkeeper in Tests, and their best in South Africa.
2002 The last time four South African bowlers conceded 100-plus runs in a Test innings at home: that happened against Australia in Johannesburg. It has only happened to them 13 times in all Tests, and five times at home.
4.99 England's run rate, the second best for a 600-plus total in Tests; the only faster innings was by Australia, when they scored 735 for 6 declared against Zimbabwe in Perth in 2003 at a run rate of 5.01.
482 Runs conceded by South Africa's fast bowlers, the fifth most for them in any Test, and second at home, only one run short of what they conceded against Australia in that Johannesburg Test in 2002.
150 Runs conceded by Chris Morris, the second highest for a South African bowler on debut. The highest is 152, by George Parker, a right-arm fast bowler, way back in 1924. Parker took six wickets, though, compared to Morris' one.
2005 The last time a first-ball duck was followed by two 150-plus scores on the batting card. That was by Pakistan against India in Bangalore, when Shahid Afridi opened the batting and fell for 0, only to be followed by two huge scores by Younis Khan (267) and Inzamam-ul-Haq (184).
18 Number of innings in international cricket without a 50-plus score for Hashim, before the Cape Town Test. His last 50-plus score was 124, in an ODI against New Zealand in Centurion in August 2015. Since then and before this Test, Amla had scored 316 runs in 18 international innings at an average of 17.55.
With inputs from Shiva Jayaraman and Bharath Seervi.
S Rajesh is stats editor of ESPNcricinfo. @rajeshstats