The Website

SmashRanks is a data analytics project and database, created by Iago in December of 2018. The website is still under construction, and is planned to enter Alpha release soon.

The Databases

Tournament results are pulled directly from smash.gg's public API, where they are imported into a python backend framework which tracks and updates player skills and records. Currently there are 6 game databases being maintained on SmashRanks: Smash 64, Melee, Brawl, Smash 4, Ultimate, and PM. More game support is planned in the future. The below table shows a glance at the databases and their states.

Game Players Events Last Active Year Last Tournament

The Ranks

Currently, SmashRanks has support for 4 different types of ranking methods: Elo, Glicko-2, S-Rank, and panelist voting. Panelist voting ranks are organized and posted by the respective organizational body of each game's community. For each of the games, the below table lists their official ranking names and includes links to the original hosting. Most ranks are updated anually, with those that rank only bi-anually listing both in each year. Half-year rankings are not considered if there is also a cumulative year-end ranking made, e.g. Summer SSBMRanks are not considered, as annual SSBMRanks count the same events (plus the second half of the year).

Game < 2016 2016 2017 2018 2019
64 64 League Rankings 64 League Rankings
Brawl 2014 SSBBRank 2016-2017 SSBBRank
Smash 4 PGR (v1) PGR (v1 cont'd, v2) PGR (v3, v4) PGR (v5, 100)
Ultimate PGRU

The Algorithms

Elo is a widely used skill-rating algorithm, often employed in professional sports such as Chess and Table Tennis. Elo is appealing because it is simple to implement and easy to calculate, but is not the most robust or accurate model, requires somewhat arbitrary values or that the algorithm be fit to each database, and can discourage player activity for fear of losing points. SmashRanks uses the parameters employed by the FIDE, and new players start with a rating of 1500, and gain or lose points as they win or lose matches, respectively.

Glicko is a somewhat more complex rating algorithm, built on the fundamentals of Elo but taking into account some uncertainty in player scores. This allows players to reach more accurate skill ratings in a shorter time than Elo, or after long periods of inactivity. Glicko is used by several online matchmaking services, such as CS:GO or Pokemon Showdown. SmashRanks employs a slightly improved version of the algorithm (Glicko-2), which in addition to having a more robust skill model also introduces score decay for inactive players, to encourage regular attendance. New players start with a raing of 1500, and gain or lose points as they win or lose matches, respectively.

S-Rank is an original skill-rating algorithm, created by Iago for the purpose of having a universal, more "objective" skill-rating system that doesn't rely on arbitrary point values, and has meaning outside of the context of the rest of the playerbase. Please note that the algorithm itself is still under development and refinement, and so any rankings or skill ratings published on this site involving S-Ranks are not final and subject to change. S-Ranks are recalculated for the entire playerbase after each event, leaving it a computationally expensive ranking method. A player's S-Rank is essentially a measure of their probability to win against any given opponent in the database, expressed as a percentile. Therefore, a lower S-Rank corresponds to a higher skill, and S-Ranks are always bounded between 0 and 1. A player with a theoretical S-Rank of 0 would be assumed to have a perfect record and win probability against any other player in the entire playerbase.
Since S-Rank is calculated by analyzing a player's head-to-head record vs. the field, a limit on what period of time needs to be considered must be imposed (in our case, 1 year out from the most recent event). Additionally, players are required to attend a certain number of events before they are considered "active", or an accurate skill rating cannot be determined due to insufficient data. Players that have not met activity requirements are treated as having an S-Rank of 1 (0th percentile), and new players that meet activity requirements are treated as having an S-Rank of 0.5 (50th percentile).

Related Sites

More helpful resources coming soon!