How is the multiplayer score calculated?

SparkChess uses an Elo-based scoring system. Elo may be a bit confusing for beginners but it’s well-understood by chess players and it’s used by chess federations worldwide.

The Elo system awards points based on which player is more likely to win based on the existing scores. Two players with equal scores should equal in skill and are expected to win 50% of the time. In contrast, a player with a much lower score is expected to lose. Let’s have this example:

Player A has 2200 points and Player B has 1600. Based on the formula, Player A is expected to win 9 out of 10 games, so if he/she wins, there’s no big achievement and will be awarded just 1 point. In contrast, Player B is expected to win just 10% of the games, so of he/she wins, he or she receives 19 points. In fact, player B would receive 9 points just for a draw!

You can see how this system is fairer. Someone can’t accumulate score by playing only with other lower-ranked players. Also, scores don’t grow indefinitely, they tend to stabilize after a number of matches. Therefore, the best way to increase your score is to play (and win) against someone with similar score.

Here’s the formula we use:

S_{A}{}' = S_{A} + 20\left (R-\frac{1}{1+10^{\frac{S_{B}-S_{A}}{700}}} \right )

where S’A is Player’s A new score, SA is Player’s A old score, SB is Player’s B old score and R is the the game result: 1 for Player A winning, 0.5 for a draw or 0 for Player A losing.

Compared to FIDE’s formula, we use different factors: 20 instead of 15 so players get more points for each win and 700 instead of 400 so players get at least one point even when playing against weaker opponents.