20

Is there any software (or web-based service) that allows you to keep track of local, club-level Elo ratings?

These ratings would not have any connection with official Elo ratings, it would be just an Elo rating within the universe of players in a club (i.e. games in various social tournaments would compute for the rating).

2
  • 2
    That's an interesting idea for a project. Commented Sep 25, 2012 at 21:19
  • I did it by hand for our local club. Almost as easy as entering data into a program to do the work.
    – yobamamama
    Commented Jan 9, 2020 at 0:44

10 Answers 10

10

Even if it is not available, something like this is not too hard to implement yourself. Here is an example with extremely silly and simple rating system that is just meant to give you an idea. But I don't think that using actual Elo formula that much harder.

EDIT: I edit my implementation to use Elo formula (not including floors) given by the formula here

def get_exp_score_a(rating_a, rating_b):
    return 1.0 /(1 + 10**((rating_b - rating_a)/400.0))

def rating_adj(rating, exp_score, score, k=32):
    return rating + k * (score - exp_score)

class ChessPlayer(object):
    def __init__(self, name, rating):
        self.rating = rating
        self.name = name
    def match(self, other, result):

        exp_score_a = get_exp_score_a(self.rating, other.rating)

        if result == self.name:
            self.rating = rating_adj(self.rating, exp_score_a, 1)
            other.rating = rating_adj(other.rating, 1 - exp_score_a, 0)
        elif result == other.name:
            self.rating = rating_adj(self.rating, exp_score_a, 0)
            other.rating = rating_adj(other.rating, 1 - exp_score_a, 1)
        elif result == 'Draw':
            self.rating = rating_adj(self.rating, exp_score_a, 0.5)
            other.rating = rating_adj(other.rating, 1 - exp_score_a, 0.5)

This works as follows:

>>> bob = ChessPlayer('Bob', 1600)
>>> john = ChessPlayer('John', 1900)
>>> bob.rating
1600
>>> john.rating
1900
>>> bob.match(john, 'Bob')
>>> bob.rating
1627.1686541692377
>>> john.rating
1872.8313458307623
>>> mark = ChessPlayer('Mark', 2100)
>>> mark.match(bob, 'Draw')
>>> mark.rating
2085.974306956907
>>> bob.rating
1641.1943472123305

Here is my original python implementation:

class ChessPlayer(object):
    def __init__(self, name, rating):
        self.rating = rating
        self.name = name
    def match(self, other, result):
        if result == self.name:
            self.rating += 10
            other.rating -= 10
        elif result == other.name:
            self.rating += 10
            other.rating -= 10
        elif result == 'Draw':
            pass

This works as follows:

>>> bob = ChessPlayer('Bob', 1600)
>>> john = ChessPlayer('John', 1900)
>>> bob.match(john, 'Bob')
>>> bob.rating
1610
>>> john.rating
1890
>>> mark = ChessPlayer('Mark', 2100)
>>> mark.match(bob, 'Mark')
>>> mark.rating
2110
>>> bob.rating
1600
>>> mark.match(john, 'Draw')
>>> mark.rating
2110
>>> john.rating
1890  
5
  • I think Elo is possibly just as simple as that. :) Commented Sep 25, 2012 at 21:17
  • Nice. If the OP wanted to modify this with, say, the actual USCF rating algorithm, the mathematical details are available in Section 2 of this document: glicko.net/ratings/rating.system.pdf
    – ETD
    Commented Sep 25, 2012 at 21:32
  • 2
    Thanks, but I got really curios and implemented the Elo formula myself :).
    – Akavall
    Commented Sep 25, 2012 at 21:57
  • For a small universe such as chess club, I think it is best that there are no floors, otherwise you would get soon inflation if very weak players play a lot.
    – Pep
    Commented Sep 26, 2012 at 11:52
  • for local club ratings all the complexity of elo glicko whatever are just not going to add any real benefit
    – yobamamama
    Commented Jan 9, 2020 at 0:45
8

It seems that rankade, our ranking system for sports, games, and more, fits your needs.

It's free to use and it's designed to manage rankings (and stats, including matchup stats, and more) for small to large groups of players.

Rankade doesn't use Elo, but its algorithm (called ree algorithm), although more complex (here's a comparison between most known rating system, including Elo, Glicko and TrueSkill), is similar to Elo if you play 1-on-1 matches only.

2
  • 2
    very cool webapp!
    – andras
    Commented Dec 18, 2015 at 12:33
  • 1
    I have tried it and it seems suits my needs; Simple, clean, can add players after a match has started. I would like to suggest that allow user to custom CSS. Just made available a textarea (or contenteditable div) for user to paste their CSS
    – Coisox
    Commented Dec 18, 2019 at 8:52
4

I just downloaded and played around with a lightweight freeware item for Windows called ELORater that seems to provide what you're after. You can create a "group" for your club, and then add players to the group, along with whatever initial ratings you want them to have. Then you can just input the results of any games that get played and the program maintains an updated list of player ratings for you.

2
3

The free Excel add-in Chess Ranking Assistant found at https://www.add-ins.com/free-products/chess-ranking-assistant.htm uses the glicko system and is menu driven for easy of use. It is designed for chess clubs

2

If anyone is still looking for something like this, I've build a fairly simple one here: https://github.com/richardadalton/EloRate

At the moment you'll have to host it yourself, but I may offer a hosted service in the future.

-Rd

1

I recently built https://sortmatch.ca to do this kind of thing. It uses Glicko2 instead of Elo, but the effect is roughly equivalent.

1

The Irish Chess Union has its rating web application fully released as Open Source and it's available on GitHub: https://github.com/ninkibah/icu_ratings_app

1

https://skillrank.games

Also allows ratings for team games where individuals change teams between games

0

http://elorankings.com

Allows you to create custom elo rankings and control certain parameters. Mostly used by video game communities but can be done to create rankings and manage elo ratings for anything. Very easy to use. Keeps complete match history and allows you to individually see a players history, W-L, and how their score changed per match. I use it for a smash tournament I run every week: http://elorankings.com/rankings.aspx?id=1

1
  • Site seems to be down or not live anymore
    – andrewb
    Commented Aug 3, 2018 at 6:11
0

Yeah sure, you can take a look at http://www.chessfiles.com/chess-software.html

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.