2,628 bytes added,
14:41, 14 March 2010 Here is how ratings are computed for newcomers (players who do not
have a previous rating) at a tournament. Questions should
be directed to [[John Chew]].
*'''For each''' rated player ''rp''
**'''Set''' the ''iterative rating'' for ''rp'' to their ''pre-event rating''
*'''For each''' newcomer ''nc''
**'''Set''' the ''iterative rating'' for ''nc'' to the mean of their rated opponent ''ratings'', if any, else 1500
**'''Set''' ''nc''’s ''earned wins'' to the number of games won by ''nc'' at this event not including byes or forfeits
**'''Set''' ''nc''’s ''rated games'' to the number of games played by ''nc'' at this event not including byes or forfeits
**'''Define''' a '''function''' ''IPR<sub>nc</sub>''(''r'') as follows
***'''Set''' ''earned_wins'' = ''nc''’s ''earned wins''
***'''If''' ''earned_wins'' = 0
****'''then''' '''Set''' ''earned_wins'' to 5% * ''nc''’s ''rated games''
***'''else''' '''if''' ''earned_wins'' = ''rated_games''
****'''then''' '''Set''' ''earned_wins'' to 95% * ''nc''’s ''rated games''
***'''Set''' ''excess_wins'' = (sum of expected wins of a player rated ''r'' vs. opponents whose ratings are the ''iterative ratings'' of the opponents of ''nc'') - ''earned_wins''
***'''Return''' ''excess_wins''
*'''Repeat''' 50 times
**'''For each''' newcomer ''nc''
***Perform a binary search for an integer value ''r'' in [0,3000] stopping when the search range is less than or equal to one, setting the low (high) end of the range equal to the floor of the middle of the range when ''IPR<sub>nc</sub>''(''r'') is <0 (≥0)
***'''If''' ''r'' < 500
****'''then''' '''Set''' ''r'' to 500
***'''If''' ''nc'' has played a rated opponent
****'''then'''
*****'''Set''' ''maximum_rating'' to (greatest ''pre-event rating'' among ''nc''’s rated opponents) + 400 * ''nc''’s ''earned wins'' / ''nc''’s ''rated games''
*****if ''r'' > ''maximum_rating''
******'''then''' '''Set''' ''r to ''maximum_rating''
***'''Set''' ''nc''’s ''next rating'' to ''r''
**'''For each''' newcomer ''nc''
***'''Set''' ''nc''’s ''iterative rating'' to ''nc''’s ''next rating''
**'''If''' all ''iterative rating''s were equal to ''next rating''s
***'''then''' stop repeating now without continuing to the 50th iteration
*'''If''' fewer than 50 iterations were required
**'''For each''' newcomer ''nc''
***'''Set''' ''nc''’s new rating to ''nc''’s ''iterative rating''
*'''Else'''
**Perform 50 more iterations
**'''For each''' newcomer ''nc''
***'''Set''' ''nc''’s ''new rating'' to the mean of ''nc''’s last 50 ''iterative ratings''