# Smash Ultimate Dataset + Elo Calculations

Tweet

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.

# Dataset #

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}}})$$

*Contact me at stu2b@statsmash.io or @stu2b50 on Twitter*