So if I get you correctly, essentially your Users have points. If you sort a list of Users by points (descending) and secondarily by some other factor (User’s name? Last time they played? I dunno… pick anything), there’s your “Rank” amongst those Users.
Rank is a derived value based on points. It may not really make sense to write Rank as part of a Ranking as a User’s Rank is actually regularly changing.
The style of ranking you’re doing here is sometimes called “dense” ranking. It’s almost like simply using the index of the RG you’d display a sorted list by points in, but adjusted for how many duplicated ranks (“ties”) there are in the list.
There must be a fairly simple algorithmic way to display this as you did in your mockup above:
It’s something like:
The Rank # is the
current cell's index minus (the difference between the number of rows above [which is
current cell's index -1] and the number of unique scores in the rows above [which is the
RG's list of things's Points:unique items:items up to current cell's index:count])
It just needs a bit of playing around with but the above should put you on the right track…?