A look at the Splinterlands ranked modern ladder

in #hive-133233 days ago

Image generated with Grok

For a while I have been pondering how the Splinterlands modern ranked ladder really works. With "how it works" I mean where are the players? Are they evenly distributed across the leagues and tiers, or not?
My gut tells me that this is not so. I write this foreword before actually examining the data. I believe that players are very clustered in the Diamond league. I have found that in Diamond I can face anything from very weak opponents to the toughest players in the game. I have always thought that this is really weird, and that it indicates that the rating does not work as an indicator of a player's skill.

There is no easy way to get the rankings of all active players from Splinterlands. We have access to the leaderboard, and top matches in each league, but we can not see a full list of ratings at any given time. I believe the reason why we don't have that is to reduce server costs.

separator.png

Data gathering approach

With no direct access to the data, we need to be creative. What we can do is to crawl player battle histories. For each player, we can see their latest 50 matches, and extract active players from that. We can keep doing that, going through each unique account we have found so far, and build a big list of accounts. This puts quite a bit of load on the Splinterlands servers, I do not recommend doing it often. Here, I did it once to build my list of accounts.

Once we have that list of accounts, we need to get the ratings of all those accounts. This is another long list of api-calls. I put a delay between them to play nice with the Splinterlands server. Some might be unrated, (50 matches can extent back beyond the current season, or they can be purely tournament matches, etc), so we have to discard those. There are also accounts without spellbooks, and liquidity bots (I'm not sure I'm able to filter all of those, but some of them have account names that are obviously not players). Eventually, we find ourselves with a list of accounts and their ratings.

separator.png

The data

A total of 2633 accounts had a rating when I sampled. Looking at the ratings of the "top battles" in novice, the rank they have matches well with my number of accounts, so I think I got most of them. (2633 accounts means that roughly half the accounts sampled with the procedure above did not have a valid modern rating for this season).

When I plot their distribution, it looks like this:

So, the accounts are clearly not distributed evenly across the ranks. This was something like what I expected, but I have to admit there are more accounts in gold relative to diamond than I thought. I find it somewhat interesting that there are so few players in Bronze and Silver. I also wonder how much the liquidity bots are shaping this distribution. It does seem to be very easy to climb into gold, even the higher gold tiers.

I plan to sample the ratings two more times for this season, and compare them to see how it evolves over time.

What do battles look like in different leagues?

I will now just pick a few random accounts at different ratings and take a battle from them, this is not exhaustive or anything, but I think its interesting.

Generally what I find is that anything below gold is just junk. A LOT of liquidity bot matches (or at least versus guildless chaos only accounts...), and plenty of them win with only soulbound cards or 1 bcx regular cards. Within gold, we find the full transition from those liquidity bot farming accounts to complete max level Chaos + partially Rebellion decks. Diamond and upwards generally seem to be max level decks of various sorts.

So, in my opinion it looks like our actual ladder starts at 1900 rating. Weird.

Battles:

Mid-bronze battle:

giacumuzzi vs. renoux (liquidity bot??)
TypeRanked
FormatModern
Mana37
ElementsRed, Blue, White
RulesStandard
Winnergiacumuzzi
giacumuzzi's team:

renoux's team:

Mid-silver battle: 1740 Rating:

coleguilla vs. darthsplint
TypeRanked
FormatModern
Mana26
ElementsRed, Blue, Green
RulesHeavy Hitters, Earthquake
Winnercoleguilla
coleguilla's team:

darthsplint's team:

Low gold battle 2020 Rating

letsgetdirty vs. scar-85
TypeRanked
FormatModern
Mana28
ElementsWhite, Black
RulesNoxious Fumes, Up to Eleven, Little League
Winnerletsgetdirty
letsgetdirty's team:

scar-85's team:

High gold: 2660 rating

john9inch vs. mranhhoang
TypeRanked
FormatModern
Mana51
ElementsRed, Blue, Green, Black, Gold
RulesHeavy Hitters, Briar Patch, Blood and Sunder
Winnermranhhoang
john9inch's team:

mranhhoang's team:

Mid diamond, 3340 Rating

gabbli vs. xiv777
TypeRanked
FormatModern
Mana37
ElementsRed, Blue, Green, White
RulesReverse Speed, Healed Out, Armored Up
Winnerxiv777
gabbli's team:

xiv777's team:

separator.png

Final words

The battle summaries above were all created with the spltools app. If you find any bugs with it or have suggestions, please reach out to me here, or find me in the Splinterlands discord server. Thank you for your attention!

If you are interested in more posts about the spltools python package, you can find the previous ones here:

spltools update posts:

9. Updates to the spltools battle analyzer
8. spltools launches as a streamlit app
7. spltools functions and classes for battle data
6. spltools setup guide
5. Best brawler code
4. spltools update: Classes for Brawl data
3. spltools update: Reward chest classes
2. spltools update: Checking which set a card belongs to
1. Initial spltools commit


If you have not yet joined Splinterlands please click the referral link below to get started.



Join Splinterlands


Best wishes
@Kalkulus

separator.png

Sort:  

This post has been supported by @Splinterboost with a 12% upvote! Delagate HP to Splinterboost to Earn Daily HIVE rewards for supporting the @Splinterlands community!

Delegate HP | Join Discord

Thanks for sharing those data, really interesting.

At the end of the season I am moving between Gold and Diamond League, where most of the people are.

And I am usually in Diamond 1 going in and out of Champion at the end of the season. If I dedicate most of the battles to Modern I am usually solid in Champion 3 around 3,800 rating. That is basically a maxed out Chaos and Riftwatcher cards with mostly maxed out rebellion reward cards.

Oh, this is a great idea to do this! I only read the intro and how you are doing it and I am already very interested.

I am afraid that the results will not paint a very optimistic picture of the current state of things.

It will be interesting to see the development over the season for sure. I also just learned that the liquidity bots don't have spellbooks, so I should be able to filter them out too.

So I read it all and it looks to me like we might have around 2,000 real players, if we consider 2nd and sometimes 3rd accounts I wouldn't be surprised if there are 1,000 actual humans playing in modern right now...

Seems about right to me. And a good bunch of those are mainly Chaos Legion decks.

Like 80% Chaos legion decks? That would be another great question to answer. If Chaos legion moves to Wild will we have 400 players left in Modern?!

Its possible to investigate that with this approach too since I use their battle histories. Should be decently accurate to just see if they used any rebellion cards, so its just a little more data processing in the first step. Maybe I'll try that.

Nice method to get a rough active unique playing accounts. I expected that it was a bit more top heavy but most accounts are in gold diamond.

What will it be when Chaos legion rotates out.

Big changes coming for sure with the rotation. The ladder will depend a lot on how they chose to handle the liquidity bots I think.

I suspect we will have a huge drop once Chaos Legion rotates out... I am thinking I will be wild only at that point...

Thanks for sharing! - @azircon

Will be interesting to see how top heavy things are at the end of season ratings.
!BBH

Agreed. Im looking forward to seeing it!

Congratulations @kalkulus! You have completed the following achievement on the Hive blockchain And have been rewarded with New badge(s)

You distributed more than 32000 upvotes.
Your next target is to reach 33000 upvotes.

You can view your badges on your board and compare yourself to others in the Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP