The problem with that is raw stats don’t tell the entire story of one’s performance. There are other nuances to a player’s performance that the game simply could never track. Things like getting the right kill at the right time, or holding an angle that zones people out, or using a zoning ult, or calling out a target that is low that leads to someone else killing that target.
E.g. a Hanzo player can use Dragon in a clever way that zones the enemy team to a particular position, which could set up kills for his teams. The game is gonna think it’s a bad ult because the Hanzo technically didn’t get any kills with it. But the reality is, the zoning nature of the ult in that moment was instrumental to the kills that it set up.
Another example, I call out a target “Widow on the left high ground” in voice chat. That leads to my Genji killing Widow. The game is just gonna see that as Genji getting the kill and its not gonna recognize that I made the call out.
If you implement rank based on performance, you’re gonna end up with people with inflated ranks that they may not necessarily deserve. Worse still, it will probably incentivize people farming stats over doing more ethereal strategies like calling out targets.