chess:programming:rating:conversions
Table of Contents
Chess - Programming - Rating - Conversions
The formulae to convert from one rating system to another have changed over the years in an attempt to make them more accurate.
The below formulae are mine, sometimes following official specs but occasionally altering slightly when deemed more accurate.
ecf to elo
return unsigned((ecf * 7.5) + 700);
elo to ecf
return unsigned((elo - 700) / 7.5);
elo to uscf
if (elo <= 1886) return unsigned(elo/0.75) - 570; else if (elo <= 2000) return 180 + unsigned(0.94 * elo); else return 20 + unsigned(1.02 * elo);
elo to uscf (for Juniors)
If an event is known to be a youth event, such as the World Youth Championships, then the following conversion is used for all opponents:
if (elo <= 2000) return 560 + unsigned(0.74 * elo); else return 80 + unsigned(1.0 * elo);
uscf to elo
if (uscf > 2060) return unsigned((uscf - 180) / 0.94); else if (uscf > 1945) return unsigned((uscf - 20) / 1.02); else return unsigned(0.75 * 570) + uscf;
chess/programming/rating/conversions.txt · Last modified: 2021/12/08 11:58 by peter