Data model to show statistics

I have the following data model:

One profile can only be active in one challenge at the time. They can switch from challenge if they want to.
I want to make a leaderboard.
Since a user is active in a challenge, when they go to the leaderboard it’s already ‘filtered’ by the user challenge.
User with the most posts, User with the most comments, The oil with the most post. The user commenting the most.

The way I’m planning it now is by introducing another sheet with 3 columns:
METRIC_Key_to_find, SheetName, Range, Column, Count --> Countif()
Then add every possible Key I’m wanting to report on.

This will exponentially grow my records, with 30 people joining per challenge and starting with 4 challenges a month, posting 100 times / challenge and 200 comments / challenge,… I’m going to hit 50K records in no time.

Any tips would be appreciated.