The eight quarter-finalists for the Ranji Trophy 2018-19 were decided after a hard-fought league phase that had fortunes swinging for several teams. Not until the final session of the final day's play was the identity of the eight teams certain. ESPNcricinfo has the key facts of each that made it to the knockouts.
Group stages record: P 8 W 3 L 0 D 5 Pts 29
Highest run-getter: Wasim Jaffer
(763 runs in eight matches. Average: 69.36)
Highest wicket-taker: Aditya Sarwate
(38 wickets in eight matches. Average: 21.52)
Quarter-final opponent & venue: Uttarakhand, VCA Stadium, Nagpur
Groups A and B didn't have any team utterly dominant, but among all sides it was defending champions Vidarbha who showed the most consistent form. They were efficient rather than spectacular, which generally gives better results over a long multi-day tournament. Even so, in Wasim Jaffer, they did have one of the shining stars in Ranji history, showing ageless form once again. Vidarbha have also been served well by Aditya Sarwate's under-stated all-round brilliance - already the highest wicket-taker for the team this season by a distance, he has also been a doughty lower-order contributor. They'll be strong favourites against Uttarakhand, but to repeat last year's triumph, they might need Rajneesh Gurbani to be not only fit, but also rediscovering his spark.
Group stages record: P 8 W 3 L 0 D 5 Pts 29
Highest run-getter: Sheldon Jackson
(613 runs in eight matches. Average: 47.15)
Quarter-final opponent & venue: Uttar Pradesh, Ekana Cricket Stadium, Lucknow
Saurashtra were the embodiment of 'team effort' through the season. Their leading run-scorer's tally is lower than six of the other quarter-finalists' top men, but along with Sheldon Jackson's runs, they've had four other contribute more than 400, including the now-retired Jaydev Shah. And they've also discovered an exciting newcomer in Vishvaraj Jadeja. Add that solidity around a returning Cheteshwar Pujara, and Saurashtra might need to bat only once. Dharmendrasinh Jadeja has been immense, carrying the bowling and having the resourcefulness to score runs at an average of 24.44 down the order. Saurashtra found men to seize the initiative at key moments in the league phase. With Pujara's inspirational presence now, they just need to continue that against an in-form Uttar Pradesh
Group stages record: P 8 W 3 L 2 D 3 Pts 27
Highest run-getter: KV Siddharth
(651 runs in eight matches. Average: 50.07)
Highest wicket-taker: Ronit More
(29 wickets in six matches. Average: 16.62)
Quarter-final opponent & venue: Rajasthan, M Chinnaswamy Stadium, Bengaluru
One match, Karnataka have looked like they are worthy successors to the all-conquering sides of 2013-15, and the next, they have stumbled badly. They beat Maharashtra, Railways and Chhattisgarh. But lost to Saurashtra chasing 179 in the fourth innings, and to Baroda by two wickets despite setting them only 110 to win. Nobody has known quite what to make of Karnataka this season, which could work to their advantage in a knockout match. Nothing encapsulates how unpredictable Karnataka have been than the fact that KV Siddharth and D Nischal, the only two men to top 600 runs for them have 20 first-class matches between them - 17 of them in this season. In an unsettled bowling attack that has seen lots of changes, Ronit More has stood out. Against a rampaging Rajasthan, Karnataka will need a more cohesive show.
Group stages record: P 8 W 4 L 3 D 1 Pts 26
Highest run-getter: Jalaj Saxena
(479 runs in seven matches. Average: 43.54)
Highest wicket-taker: Sandeep Warrier
(31 wickets in eight matches. Average: 20.74)
Quarter-final opponent & venue: Gujarat, Krishnagiri Stadium, Wayanad
Until the final match, Kerala's fortunes seemed to revolve around, 'If Jalaj Saxena does well, so will Kerala'. Ironically, Saxena sat out the last game with injury (otherwise he would likely have been the highest run-getter as well as the highest wicket-taker), and Kerala discovered spunk. A thrilling chase against Himachal Pradesh gave them the win, and six points, needed to qualify. That they won more matches than any other side in Groups A & B, but still finished fourth in the table, paints a picture of how up and down they were. Fortunately for Kerala, their strongest suit has been their bowling. With the batting clicking in the last game, that should give them confidence to take on the 2016-17 champions Gujarat.
Group stages record: P 8 W 3 L 0 D 5 Pts 26
Highest run-getter: Priyank Panchal
(887 runs in eight matches. Average: 68.23)
Highest wicket-taker: Siddharth Desai
(23 wickets in six matches. Average: 25.08)
Quarter-final opponent & venue: Kerala, Krishnagiri Stadium, Wayanad
Gujarat's season was typical in many ways. Priyank Panchal got runs, the batsmen prospered, and the team did enough to stay near the top, without quite threatening to run away with it. They will be fortified by the return of Parthiv Patel, and if they face a turning track against Kerala at Wayanad, Siddharth Desai has shown once again that he's a youngster who can be a threat to match any other tweaker in the country. Meanwhile, the now-veteran Piyush Chawla has continued to churn out good performances for Gujarat. However, the bowlers haven't really been on fire, though that could well be a function of the pitches, since the batting has been in rude health.
Group stages record: P 9 W 7 L 0 D 2 Pts 51
Highest run-getter: Robin Bist
(684 runs in nine matches. Average: 57.00)
Highest wicket-taker: Aniket Choudhary
(47 wickets in eight matches. Average: 13.87)
Quarter-final opponent & venue: Karnataka, M Chinnaswamy Stadium, Bengaluru
Just in terms of pure results, Rajasthan have been the most irresistible team of the league stages. Their pace attack has to be the envy of every other team: despite losing Pankaj Singh, they have Deepak Chahar, Aniket Choudhary and Tanvir-ul-Haq to call on. And that's without Khaleel Ahmed, who's away with the Indian team in Australia. Aniket and Tanvir have each taken 47 wickets, though Aniket has done it in one match fewer, having rested for one game. Meanwhile, all three of Robin Bist, captain Mahipal Lomror and opener Amit Gautam have more than 580 runs. When Rajasthan chased down a target of 357 against Services in their second game, it promised something special. That promise has been translated into performance. They've won a whopping seven games, three with a bonus point, and in both draws, they took the first-innings lead.
Group stages record: P 9 W 5 L 0 D 4 Pts 41
Highest run-getter: Rinku Singh
(803 runs in nine matches. Average: 114.71)
Highest wicket-taker: Saurabh Kumar
(50 wickets in nine matches. Average: 15.54)
Quarter-final opponent & venue: Saurashtra, Ekana Cricket Stadium, Lucknow
Uttar Pradesh have ridden on outstanding individual performances to storm into the last eight. Leaving the Plate teams aside, Saurabh Kumar is the highest wicket-taker in the competition. Ankit Rajpoot has sat out two games but still has 38 wickets, and both of them have sub-40 strike-rates. If Saurabh is in contention to be the bowler of the tournament, Rinku Singh is the leading candidate to be the outstanding batsman so far. It's not just that he has crossed 50 six times in 11 visits to the crease, his runs have often come when UP needed them most, even though he's batted at No.6 and No.7. And bowlers haven't found a way past him, as his average suggests.
Group stages record: P 8 W 6 L 0 D 2 Pts 44
Highest run-getter: Rajat Bhatia
(700 runs in eight matches. Average: 175.00)
Highest wicket-taker: Deepak Dhapola
(44 wickets in seven matches. Average: 13.36)
Quarter-final opponent & venue: Vidarbha, VCA Stadium, Nagpur
To most people in Uttarakhand's place, making it to the quarter-final and its promised promotion to Group C next year, would be victory enough. They have been easily the best team in the Plate Group, and that has come about because they have relied least on professionals. That will be crucial now with Rajat Bhatia missing from their quarter-final line-up. Six of their batsmen have hit centuries, with four hitting double-centuries. Granted two were Bhatia and Vineet Saxena, but their bowling has been top notch too. Deepak Dhapola's aggression and impeccable lines have been too good for the Plate Group, while Sunny Rana and Dhanraj Sharma have been good support acts. Just how good Uttarakhand's home-grown talent is though, will be known when their bowlers come up against Wasim Jaffer and co.
Saurabh Somani is an assistant editor at ESPNcricinfo