Smash Ultimate Dataset + Elo Calculations

20 Jul 2019

Since I’ve started hosting my Elo rankings for ultimate and melee many people have asked me for the data. I had been somewhat busy and the data had, uh, issues, but I’ve cleaned up some data for the most important of Ultimate tournaments and released them here. The details are below.

If there is interest, I can also release the Melee counterpart. Additionally, below is the general algorithm I use for Smash Ultimate.

Get it here!

If you use it, it would be nice, but of course not necessary, to mention this site and me for compiling it and smash.gg for the source.

This is the set information for a selection of large majors (>800 entrants) in Super Smash Bros Ultimate. Here are the fields

Field Description winner_global_id smash.gg player id of the set winner winner_char smash.gg character code for winner; can be None and often is winner_name player name; does not include sponsors and is not unique loser_global_id As expected loser_char As expected loser_name As expected winner_score Set score of winner (Can be 3 or 2 or 0); can be None loser_score Set score of loser (Can be -1 if disqualified or forfeit); can be None tournament_name name of tournament endDate Unix timestamp of when the set was reported to finish round Integer representing the round; negative represents lower bracket

Note that character information only exists when reported, i.e mostly in streamed matches. I would recommend imputing them based on known character mains if you are doing character driven analysis.

The following tournaments are included

Genesis 6 Frostbite 2019 2GG: Prime Saga Pound 2019 Umebra Japan Major Get On My Level 2019 Momocon 2019 Smash'N'Splash 2019 CEO Fighting Game Competitions 2019 Albion 4

Elo Methodology #

The base Elo algorithm has some issues within the context of Smash Ultimate. First, a priori we know that players care more or less about a tournament relative to its prestige, and that prestige in Smash is correlated with entrant number (i.e the tournament tiering). However, we also know that it is not a linear increase; players take S-tiers (>1200 entrants) only a little less seriously than a Super Super Major like Genesis (>2000 entrants). So that needs to be factored in.

Secondly, Smash sets due to the short time frame and momentum are a unit, and that due to momentum a 3-0 is almost, but not quite like winning 3 times in a row.

Thirdly, Smash is played in a double-elimination bracket, unlike Swiss in chess or round robin in leagues like the NBA or NFL. This can present problems, where people who have long loser bracket runs gain more Elo than their upper bracket counterparts. That doesn’t seem right, so upper bracket winners are given a bonus for their wins so as to reward upper bracket play.

Fourthly, as is used by FIDE, it makes sense that Tweek, or MkLeo, or Dabuz who have a great deal of history should be given the benefit of a doubt. They’re not likely to suddenly rise in skill or suddenly decrease in skill. If one of them (especially Tweek) loses to someone significantly below them, we shouldn’t shift as much. On the contrary, new players should have the opportunity to show their stuff. So a seperate experience factor is given to each player inversely proportional to their number of recorded sets.

With that out of the way, let’s define some variables

Let \(elo_i\) be the elo of the ith player.

Let \(n\) be the number of entrants

Let \(R\) be the result of the game, either 0 if player 1 lost or 1 if they won

Let \(s_i\) be the set score of player i

Let \(b\) be 1 if upper bracket, 0 otherwise

Let \(w_i\) be 1 if player i won, 0 otherwise

Let \(h_i\) be the history length of player i

$$elo_1’ = elo_1 + 20 * (1 + b * 0.5 * w_1)(\min(\frac{5}{h_1} + 0.4, 2))(1.95 + \frac{-1.82}{1 + (\frac{n}{1040.56})^{1.762}})|s_1 - s_2|^{0.9} (R - \frac{1}{1 + 10^{-\frac{elo_1 - elo_2}{400}}})$$

← Back