Kieron Pollard hailed the Mumbai Indians as the best T20 franchise in the world after they won the IPL for a record fifth time. It may have sounded like hyperbole in an emotional moment, but Mumbai's achievements arguably back Pollard's assertion. Mumbai have seven titles, and are only one short of Sialkot Stallions, who are the most successful T20 team ever with eight titles. In addition to the five IPL titles, Mumbai have won the Champions League T20 twice.
It's not only the number of titles that define Mumbai's supremacy over their competitors. It's the manner in which they have demolished the field in the last couple of seasons - and specifically in IPL 2020 - that underlines how they are a cut above the others. For the second successive year, they blanked the losing finalist - the second-best team in the competition - by a 4-0 margin in the season (they beat Chennai Super Kings 4-0 on their way to the title in 2019).
Rarely has any team ticked so many boxes in any season of the IPL as Mumbai have in this season. Their Indian batsmen were among the runs, their overseas fast bowlers got them wickets, their allrounders chipped in, the spinners applied the squeeze at important stages and their captain turned up when it really mattered.
Mumbai's all-round performance is borne out by their overall batting and bowling numbers: their scoring rate in the season was 9.08 runs an over - half a run more than the next best team - but they conceded runs at the rate of 7.94 runs an over only. The difference of 1.14 runs per over between their scoring rate and the rate at which they conceded runs is the highest for any team from any season in the IPL's 13-year long history. No other team has scored over a run per over more than what they have conceded in any season. The closest anyone came was back in the inaugural season in 2008, when Rajasthan Royals won the title and the T20 format was very much in its infancy. The Royals scored at 8.74 runs per over that year, and conceded at 7.90 for a difference of 0.85.
Mumbai's scoring rate was half a run higher than the next-best team largely owing to the fact that their batsmen managed to hit more sixes than other teams in the season. At 137 sixes, they hit 32 more than the Royals, who were the next best. Even in terms of balls taken to hit every six, Mumbai took two deliveries fewer than the Royals did. Incredibly, they took half as many deliveries to hit a six on an average as the Royal Challengers Bangalore - the bottom-placed team on that parameter this season.
Mumbai's death-overs hitting was clearly a cut above the rest, one of the factors that added significantly to the distance between them and the competition. In the first 16 overs of the innings, Mumbai's batsmen hit a six every 17.5 balls on average, but in the death overs that was cut to almost a third, with a six hit every 5.9 balls. No other team came close to this power-hitting. In fact, Mumbai's death-overs batting this season has been the best ever in the IPL by any team: they scored runs at 13.2 per over at the death from overs 17 to 20, where no other team has topped 13 in any IPL season. Mumbai found the boundary every 3.2 deliveries on average at the death, also the best for any team in a season.
While their death-overs hitting set Mumbai apart from the rest in batting, their wicket-taking in the powerplay was the differentiating factor with the ball. The Delhi Capitals pacers matched Mumbai's on the wickets count, but were well behind on taking wickets in the powerplay, where losing wickets has a much greater impact than at the back end of an innings. Led by Trent Boult, the Mumbai pacers took 28 wickets in the first six overs at an average of 19.85 apiece. In comparison, the Capitals' pacers took just 13 wickets at 45.76 and were languishing among the bottom teams on this measure. The Sunrisers Hyderabad had the next best pace unit in the powerplay in terms of bowling average, but weren't a patch on Mumbai given they conceded 12 runs more for every wicket. Overall, Mumbai were clearly the best with the ball in the powerplay, taking 31 wickets. They also did it at an economy rate of 6.92, the only team to go below seven this season in the powerplay.
One of the defining contributions for Mumbai came from their uncapped Indian batsmen, Suryakumar Yadav and Ishan Kishan, who scored 996 runs together at an average of 47.4 and a strike rate of 145.4. No team has had their uncapped Indian batsmen performing at this level in the past in any IPL season. With a cut-off of 500 runs, no team has had their Indian uncapped batsmen average above 40 or strike above 140 in any season.
The stability provided by Mumbai's Indian contingent meant that they didn't need too many changes in their XI. Their changes were either due to injury or were tactical. Dhawal Kulkarni got a game against the Sunrisers when Mumbai rested Jasprit Bumrah, Boult and Hardik Pandya. Even including Kulkarni, Mumbai ended up using just 15 players. This equals the second-fewest players used by any team in the IPL in a season.
ESPNcricinfo's Forecaster tool illustrates the extent to which Mumbai dominated the field this year. It provides a way to express every victory in terms of runs - whether winning batting first or second. This is done by estimating the total a successful chasing team would have got if they had completed their innings (either by getting bowled out or by completing the stipulated overs). According to the Forecaster, the median margin for Mumbai in every game this season - win or loss - was +24.5. That means the team performed at a level where they were beating oppositions by this margin per game, on average. The only other team that had a positive value for this measure this season were the Sunrisers, whose median margin was +2 runs. The Capitals' margin of 0 shows how far ahead of the rest of the teams Mumbai were this season.

Shiva Jayaraman is a senior stats analyst at ESPNcricinfo @shiva_cricinfo