Ranking Teams by Elo Rating and Comparable Methods

A flexible framework for calculating Elo ratings and resulting rankings of any two-team-per-matchup system (chess, sports leagues, 'Go', etc.). This implementation is capable of evaluating a variety of matchups, Elo rating updates, and win probabilities, all based on the basic Elo rating system. It also includes methods to benchmark performance, including logistic regression and Markov chain models.


The elo Package

CRAN_Status_Badge Total Downloads Downloads

The elo package includes functions to address all kinds of Elo calculations.

  • elo.prob(): calculate probabilities based on Elo scores

  • elo.update(): calculate Elo updates

  • elo.calc(): calculate post-update Elo values

  • elo.run() and elo.run.multiteam(): calculate "running" Elo values for a series of matches

It also includes comparable models for accuracy (auc, MSE) benchmarking:

  • elo.glm() which fits a logistic regression model

  • elo.markovchain() which fits a Markov chain model

  • elo.colley() for a method based on the Colley matrix.

  • elo.winpct() which fits a model based on win percentage

Please see the vignettes for examples.

Naming Schema

Most functions begin with the prefix "elo.", for easy autocompletion.

  • Vectors or scalars of Elo scores are denoted "elo.A" or "elo.B".

  • Vectors or scalars of wins by team A are denoted by "wins.A".

  • Vectors or scalars of win probabilities are denoted by "p.A".

  • Vectors of team names are denoted "team.A" or "team.B".

Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.

install.packages("elo")

3.0.2 by Ethan Heinzen, 3 years ago


https://github.com/eheinzen/elo, https://cran.r-project.org/package=elo, https://eheinzen.github.io/elo/


Report a bug at https://github.com/eheinzen/elo/issues


Browse source code at https://github.com/cran/elo


Authors: Ethan Heinzen [aut, cre]


Documentation:   PDF Manual  


GPL (>= 2) license


Imports Rcpp, pROC

Depends on stats

Suggests knitr, testthat, rmarkdown

Linking to Rcpp


Suggested by fitzRoy.


See at CRAN