I added my ranking of all played challenge matches to my beempy site: https://beempy.com/static/sm_ranking.html.
I continuously storing all custom_json operation containing a
sm_submit_team id in my database. Then, I checked the steemmonsters API:
https://steemmonsters.com/battle/result?id=trx_id by entering the transaction id. When the
match_type is equal to Challenge, I store the battle results. Declined matches are skipped.
Every hour, I will update the ranking on the beempy site.
The player expected score depends on the rating difference between player A and B.
R_A is the rating of player A and R_B is the rating of player B.
When R_A is 200 and R_B is 0, the expected score for player A is
1/(1+10**(-200/400)) = 0.7597
which means that player A has a probability of 76% to win and 24% to lose the match.
When the match result is known, the ranking of both player can be updated by:
where R_A is the old ranking, K is the predefined K-factor, E_A is the expected score of player A and S_A is the match result for player A (1 -> A won, 0.5 -> draw and 0 -> A lost). The equation is similar for player B.
The K-factor is 40 for players which have played less than 30 games. It is set to 20 for players with a rating below 2400 and is set to 10 for players with a rating above 2400.
10572 challenges were played from 737 different players.
@toocurious is currently #1 with a ELO rating of 357.43 (141 wins and 202 played games). Congratulations, good work!