Abhinav Mukund (Tamil Nadu) - 849 runs, 10 matches, average - 65.30

Had he scored one more run in Tamil Nadu's game against against Gujarat, Abhinav Mukund would have finished with five centuries and equalled Priyank Panchal's record of most tons this season. Abhinav's knocks played a big part in Tamil Nadu qualifying for the knockouts. The Tamil Nadu captain led by example in outright wins over Baroda and Railways, and also made a hundred in the semi-final against Mumbai, albeit in a losing cause. He also became the first player to aggregate 800 or more runs in four Ranji Trophy seasons.

Priyank Panchal (Gujarat) - 1310 runs, 10 matches, average - 87.33

His previous best season tally was 665, in 2015-16, "far from enough" by his standards. This season, he nearly doubled that, courtesy five centuries, the most by a Gujarat batsman. Panchal became Gujarat's first triple-centurion in first-class cricket when he made an unbeaten 314 against Punjab. On a seaming track in Nagothane, against a quality Madhya Pradesh attack, he made a defiant 62. He missed out on a century in the quarter-final, but top-scored with 149 in the semi-final against Jharkhand in Nagpur. Scores of 4 and 34 in the final meant he fell 105 short of VVS Laxman's all-time record for most runs in a season, but by then he had left his imprints on a historic season.

G Rahul Singh (Services) - 945 runs, nine matches, average 72.69

The middle-order batsman had a memorable debut first-class season as he finished as the fifth-highest run-getter. The 21-year-old left-hander, who made his List A and T20 debut four years ago, had no fifties from his first three innings before hitting a purple patch that brought him six consecutive 50-plus scores, including two hundreds. He then followed that effort up with three fifties in successive games to cap off a fruitful season.

Ishank Jaggi (Jharkhand) - 890 runs, 10 matches, average - 59.33

One of Jharkhand's two driving forces with the bat, Ishank Jaggi's best-ever Ranji season played an integral part in his team making their first semi-final appearance in 12 years. Jaggi's season kicked off with single-digit scores, but he soon morphed into Jharkhand's go-to man with three centuries and two fifties in six innings. Further, Jaggi demonstrated his ability to deliver in crunch situations. His 129 in the semi-final helped Jharkhand recover from early losses and take the first-innings lead. Unfortunately for him and his team, that did not suffice as Jharkhand were beaten outright by the eventual champions.

Rishabh Pant (Delhi) - 972 runs, eight matches, average - 81

After dazzling at the Under-19 World Cup early last year, Rishabh Pant built on the gains to become one of the finds of the season. Pant grabbed eyeballs with his ability to get big hundreds at astounding speed. His triple-century against Maharashtra, which he struck at nearly 95 runs per 100 balls, provided the perfect encapsulation of his season. With twin centuries against Jharkhand, Pant showed his grit and hunger for runs. Pant's 49 sixes are also the most ever in a Ranji season. Deservedly, the performances earned him a call-up to India's T20I squad for the England series.

Parthiv Patel (Gujarat) - 763 runs, eight matches, average 58.69 (captain and wicketkeeper)

In a season where he made a comeback to the Test side after more than eight years, Parthiv's composed 143 in a chase of 312 in the final, made him the first captain to lead his team to domestic titles in all three formats. In a season where many wicketkeepers impressed, the knock and the manner in which he pulled his team through meant he walked into our XI as captain and wicketkeeper. What the knock may have also done is given the national selectors a big headache when they sit down to pick India's squad for the one-off Test against Bangladesh in February. How can you ignore a man, possibly, in the form of his life?

Abhishek Nayar (Mumbai) - 588 runs, 10 matches, average 45.23, 25 wickets

Mumbai's crisis man - a tag that sits well on his broad shoulders - made a combative 91 in the second innings in the final despite severe cramps, fever and chest infection that had him in hospital early on the morning of the final. His contribution in the final wasn't a one-off. He picked up nine wickets in the quarter-final against Hyderabad, made a vital half-century that helped Mumbai take a lead and set themselves up for a win in the semi-final over Tamil Nadu. At different times in the group stages, he rallied with the tail to either set up totals or hang in and secure leads. At No. 7, he not just scored runs, but absorbed pressure at vital times in a season where Mumbai's top order didn't perform at their best.

Vinay Kumar (Karnataka) - 29 wickets, seven matches, average 16.24

Vinay's failures at the international level - particularly his Test debut in Perth in 2012 when he was ripped apart by David Warner - continue to hang like Colderidge's albatross around his neck. But in the Ranji Trophy there is no better seamer than him, at least statistically. His third five-wicket haul of the season - 5 for 46 - in Karnataka's ten-wicket rout of Maharashtra saw him move past Madan Lal's tally of 351 scalps to become the leading wicket-taker among seamers in the history of the Ranji Trophy. That he achieved the feat after missing the start of the season because of a calf injury was a major highlight in an abrupt exit for Karnataka.

Shahbaz Nadeem (Jharkhand) - 56 wickets, 10 matches, average 25.60

During the course of the season, Nadeem, the left-arm spinner, became only the second man in Ranji history to top 50 wickets in a season twice, having taken 51 in 2015-16. He emulated Kanwaljit Singh, the former Hyderabad offspinner, who had also accomplished the feat in consecutive years, getting 51 wickets in 1998-99 and 62 wickets in 1999-00. These aren't just cold stats. The numbers amounted to Jharkhand's first ever semi-final entry in the tournament's history, his 11-wicket haul in the quarter-final going with an unbeaten 34 to seal the qualification. That he picked wickets at neutral venues made it all the more satisfactory for him, although it wasn't enough to merit a national berth, one he has been eyeing for the last three seasons.

K Vignesh (Tamil Nadu) - 37 wickets, nine matches, average 22.10

A tall fast bowler with a smooth action and an ability to swing the ball both ways, Vignesh was at the forefront of Tamil Nadu's resurgence. He began the season with a match haul of nine wickets against Mumbai and in the process became the first bowler from the state to pick up a five-wicket haul on debut in the last decade. He never looked back - his marathon spell of 12-1-43-4 shocking Karnataka in the quarter-finals.

Chama Milind (Hyderabad) - 35 wickets, nine matches, average 22.17

Before this season, Chama Milind, 22, was known as an effective short-format bowler. This time around, he was one of the architects of Hyderabad's journey to the quarter-finals. The left-arm seamer even played a role with the bat: along with B Sandeep, he put on 267 runs - the highest eighth-wicket partnership in Hyderabad's history - in his team's ten-wicket win over Services. Milind, who is part of the Delhi Daredevils squad in the IPL, claimed a match haul of seven wickets against Mumbai in the quarter-final, including a five-for in the first innings. He picked up seven wickets in Hyderabad's last league game, against Andhra, as well.