Een Elo-rating is een getalsmatige aanduiding van de sterkte van een speler. Het wordt het meest gebruikt in schaken, dammen en go, maar kan in principe gebruikt worden bij elke sport waarbij spelers 1 tegen 1 spelen.

Het wiskundige systeem is gebaseerd op de methode van Pairwise comparison en praktisch uitgewerkt door de Amerikaanse natuurkundige en schaker Árpád Élő. In hoofdstuk 8 Rating System Theory verwijst Elo naar Good 1955, David 1959, Trawinski en David 1963 en Buhlman en Huber 1963.

Onafhankelijk en bijna tegelijkertijd hebben Gyorgy Karoly en Roger Cook een systeem ontwikkeld op basis van dezelfde principes voor de
New South Wales Chess Association (Cook en Hooper 1969).

Elo-ratings kunnen lopen van ongeveer 700 tot bijna 2900.

Methode

Ratingtabel 
Árpád Élő constateerde op grond van statistisch onderzoek dat de verdeling van speelsterktes van schaakspelers lijkt op een normaalverdeling. Aansluitend op het bestaande ratingsysteem van de USCF koos Élő voor een klasse-indeling van C = 200 punten. De klasse-indeling wordt gelijkgesteld aan de standaardafwijking σ van de spelerperformance. De standaardafwijking van een wedstrijd tussen twee spelers wordt: σ = 200√2. Op basis van deze verdeling legde hij een relatie tussen ratingverschil en winstkans. Deze relatie ziet er in tabelvorm zo uit:

Deze door Elo ontworpen tabel is opgebouwd met 200(10/7) als benadering van 200√2.

De tabel wordt door de FIDE nog steeds gebruikt (tabel 8.1b).

Stel dat het ratingverschil tussen twee spelers gelijk is aan 300. Delen door σ geeft een Z-score van 1,05. Volgens de cumulatieve normaalverdeling geeft dit een winstkans van 0,8531, afgerond 85%. Een veel voorkomende lineaire benadering van deze tabel wordt gegeven door P(D) = 50% + D/4C.

Prestatierating (Rp)
Vaak wordt bij een toernooiuitslag voor elke deelnemer de prestatierating Rp vermeld, die aangeeft op welk ratingniveau deze heeft gepresteerd. De Rp wordt berekend uit de score en de gemiddelde rating van de tegenstanders. 
Rp = Ra + D(P).
Ra is de gemiddelde tegenstanderrating. P de gerealiseerde score uitgedrukt in % van de maximale score. D(P) het ratingverschil op basis van de ratingtabel.

Lijstprestatierating (LPR) 
De KNSB berekent een prestatiemeting, de Lijst Prestatie Meting, op basis van individuele uitslagen.

Een berekende ratingverandering kan worden gelimiteerd door de LPR.

De LPR kan zonder iteratie benaderd worden door het bijsturen van een bestaande rating te combineren met de lineaire benadering: 
Rp =  R0 + ((W - We) / N) x 4C , waarbij N = de maximale score uit N partijen, C = Elo klasse interval. 4C = het aantal ratingpunten dat overeenkomt met de winstkans van 100%.

Regels voor de beginrating 
Als nieuwe spelers nog geen rating hebben dan wordt de beginrating (R) bepaald op basis van de tot nu toe gespeelde partijen en de rating van de tegenstanders volgens de formula van de prestatierating (Rp). Een alternatief is de lineaire variant van de prestatierating.
R = Ra + 2C(W - L)/N, waarbij W, L, N respectievelijk het aantal gewonnen, verloren, totaal aantal gespeelde partijen zijn.
Dit kan ook worden geschreven als
R = Ra + D(P), waarbij D(P) bepaald wordt door een lineaire benadering D(P) = (P - 50%)4C.

Bijsturen van een bestaande rating 
Om na een aantal gespeelde partijen de rating aan te passen wordt aan de hand van de winstverwachting de verwachte score berekend. Deze wordt vergeleken met de daadwerkelijke score. Met dit verschil wordt in een formule de toe of afname van de rating bepaald.
Men gebruikt doorgaans de volgende formule:
EloWinst = K*(W-We), met W de uitslag van de partij, en We de verwachte score, vastgelegd volgens tabellen en formules.
Om traagheid of instabiliteit te voorkomen, moet de K factor zorgvuldig gekozen worden. Een rol spelen: ervaring (gespeelde partijen), speelsterkte(rating) of uitzonderlijke prestatie. 
In België (en nog een aantal andere landen) telt deze formule pas vanaf 20 partijen. Daarvoor wordt een ander systeem gebruikt.

Voorbeeld

Vladimir Kramnik speelde mee in het Wereldkampioenschap schaken 2007 in Mexico. Zijn FIDE-rating voor het toernooi was 2769. De gemiddelde rating van zijn tegenstanders was 2749. Zijn winstkans was 0.528. Het toernooi ging over 14 partijen, zijn verwachte score was 7.39. Kramnik scoorde 8 punten. Zijn nieuwe rating wordt dan als volgt berekend:

Nieuwe rating(2775) = Oude rating(2769) + ( score(8) - verwachte score(7.39)) * K-factor(10).

De K-factor 
De K-factor, ook wel verversingsfactor genoemd, is een door de berekenende organisatie vastgestelde coëfficiënt die meestal afhangt van de rating en het aantal gespeelde partijen. Een overwinning op een even sterke tegenstander veroorzaakt een ratingwijziging gelijk aan de K-factor.

Implementatiedetails kunnen per bond verschillen. Zo is het ook mogelijk om ratingverschillen cumulatief per partij te berekenen, hetgeen een iets nauwkeuriger rating oplevert.

K-factor USCF 1967 
K = 45 voor de eerste 100 partijen gespeeld tegen een speler met rating. Of
K = 30 indien de rating hoger is dan 2200.
K = 30 voor de volgende 200 partijen. Of
K = 20 indien de rating hoger is dan 2400.
Daarna
K = 20.

K-factor in België 
De K-factor is een factor die vermenigvuldigd wordt met je winst- of verlieskansen om zo je respectievelijke elowinst of -verlies te bereken. Hoe hoger de waarde, hoe vlugger je elo verandert.
In België heb je de volgende waarden.

K-factor volgens FIDE 
De FIDE berekent ook elo's, maar volgens een ander systeem. We noemen dit dan ook de FIDE-elo's. 
De Fide bepaalt de K-factor als volgt:
K = 40 voor een speler die nieuw is op de ratinglijst totdat hij evenementen heeft voltooid met ten minste 30 wedstrijden.
K = 20 zolang de rating van een speler onder de 2400 blijft.
K = 10 zodra de gepubliceerde rating van een speler 2400 heeft bereikt en daarna op dat niveau blijft, zelfs als de rating onder de 2400 daalt.
K = 40 voor alle spelers tot het einde van het jaar van hun 18e verjaardag, zolang hun rating onder de 2300 blijft.

Als het aantal partijen (n) voor een speler op een lijst voor een ratingperiode vermenigvuldigd met K (zoals hierboven gedefinieerd) meer    is dan 700, dan is K het grootste gehele getal zodat K x n niet groter is dan 700.

K-factor volgens USCF 
De USCF definieert de K-factor door
 
waarin (m) het aantal gespeelde partijen in de ratingperiode is. (Ne) is het effectief aantal partijen waarop de rating van de speler is gebaseerd. Zie voor verdere details:.

K-factor KNDB
De frequentie van de ratingbepaling is éénmaal per jaar per 1 juli. De actuele ratings worden bijgehouden in Toernooibase. Zie: .

In onderstaande tabel is Rp de prestatierating gebaseerd op de score tegen de gemiddelde rating van de tegenstanders, R0 de rating op de voorafgaande ratingdatum. N0, N is het aantal gespeelde wedstrijden tot aan de ratingdatum, in de ratingperiode respectievelijk.

(*) De KNDB factor is tweemaal zo klein als de vergelijkbare schaakfactor. De omrekening van winscore (2 punten) naar een 100% winstverwachting is verwerkt in de K-factor.

De betekenis van de K-factor 
Elo stelde een eenvoudige methode voor om de ware sterkte van een speler te bepalen door middel van continue aanpassingen op basis van gespeelde wedstrijden. De ratingwijziging is evenredig, met een factor K, aan het verschil tussen de werkelijke score (W) en de verwachte score (We) . De nieuwe rating wordt bepaald door

Rn = R0 + K(W-We).

De K-factor bepaalt hoe we verleden en heden afwegen. Een lage K geeft meer gewicht aan prestaties uit het verleden. In het volgende voorbeeld laten we het effect van de K-factor op de ratingontwikkeling nader zien.

De nieuwe rating (Rn) is ongeveer gelijk aan de ratingprestatie (Rp) berekend over de gespeelde wedstrijden in de ratingperiode, bijvoorbeeld N = 5 in het onderstaande voorbeeld, aangevuld met (800/K - N) = 20 fictieve remises tegen de eigen rating.

Stel N = 5, Ne = 20, N + Ne = 25, K = 4C / 25 (=32), R0 = 1613.

Het klasse interval C = 200 is geworteld in traditie van de De Amerikaanse Schaakfederatie.
In dit voorbeeld weegt het verleden 4 keer zo zwaar als het heden. Als K is ingesteld op 10 dan wordt de verhouding tussen heden en verleden 1 op 15.

Nu geldt het volgende:

RnElo   = 1617,33 = 1613 + 32(13,000 – 12,8647).
RnP800 = 1617,60 = 1613 + 32(13,000 – 12,8563).
RpD800 = 1617,60 = 1601,600 + 16.
RpElo  = 1615,93 = 1601,600 + 14,330.

Omdat de verwachtingscurve tussen -300 en +300 bijna lineair is, geldt:

RnElo ≈≈ RnD800 == RpD800 ≈≈ RpElo, berekend over bovenstaande 25 wedstrijden.

De "16 ± 4%" regel valt samen met de ratingprestatie van de lineaire benadering.
Rn16 ± 4% = 1617,60 = 1613 + 16(1 - 0) + 4%(285).

Percentage verwachtingsfunctie
P(D) = norm.dist(D, 0, 2000 / 7, cumulatief).
D(P) = norm.inv(P, 0, 2000 / 7), P strikt tussen 0 en 100%.

Lineaire benadering ( "algoritme van 400")

P800(D) = D / 4C + 50%, richtingscoëfficiënt = 1 / 4C, startgetal = 50%.
D800(P) = (P - 50%)4C.

Geschiedenis 
De Amerikaanse Schaakfederatie (United States Chess Federation) voerde in de jaren 50 een ratingsysteem in, ontworpen door Kenneth Harkness. Dit systeem voldeed niet helemaal. In 1960 ging de USCF over op het systeem van Elo, die overigens veel van dat van Harkness had overgenomen. In 1970 werd het overgenomen door de FIDE en sindsdien heeft vrijwel elke schaakbond het toegepast.

De USCF 16 ± 4% regel
In de beginfase van het nieuwe USCF ratingsysteem werd de nieuwe rating bepaald door:

Rn = R0 + 16 (W-L) - 4% (∑D).
Rn and Ro zijn respectievelijk de nieuwe en oude rating.
W en L zijn het aantal winst- en verliespartijen.
D is het ratingverschil tussen speler en tegenstander.

De 350 punten regel .
Er is een belangrijke beperking dat niemand D met 350 punten mag overschrijden
bij het maken van de sommatie van de D's. Ieder verschil dat groter is dan 350
wordt behandeld alsof het 350 was.
Dit beschermt een speler tegen het verliezen van ratingpunten terwijl hij wint van een speler ver beneden zijn niveau op de ratingschaal (of omgekeerd ratingpunten winnen door te verliezen).

Bovenstaande formule is een speciale vorm van de meer algemene uitdrukking
Rn = R0 + K (W-L)/2 - K (∑D)/4C, met K = 32.
De term (W-L)/2 is de score ten opzichte van: 0 score = 50%. ∑D/4C is de verwachte score volgens: 4C ratingpunten = 100%.

Deze formule kan ook geschreven worden als
Rn = R0 + K(W-We).

Hierin is We is de verwachte score op basis van de lineaire benadering van de verwachtingsfunctie. In deze formule is W de werkelijke score.

Pas in het definitieve voorstel uit augustus 1967 zien we voor de eerste keer de iconische formule:

Rn = R0 + K(W-We).

Echter in de bovenstaande formule is We de verwachte score op basis van de normale verdeling, en niet de lineaire benadering daarvan.
De 350-regel is overbodig geworden en wordt niet meer genoemd.

Toepassingen
Wat schaken betreft wordt de feitelijke berekening op internationaal niveau uitgevoerd door de FIDE en de ICCF en op nationaal niveau door de landelijke schaakbond, in Nederland de KNSB en in België de KBSB. Elke organisatie die een rating berekent, gebruikt een andere verzameling spelers en partijen, en een andere ratingperiode. De FIDE-rating dient wat betreft de hoogte enigermate als ijkpunt. Daardoor zijn ze onderling tot op zekere hoogte vergelijkbaar. Wel zijn er verschillen in de exacte wijze waarop nieuwe uitslagen in de diverse ratings worden verwerkt.

Ook de Vlaamse Tafeltennisliga gebruikt het elo-systeem op haar resultatenwebsite - zij het louter indicatief.

Er is ook een Elo-wereldranglijst van landenteams in het voetbal.

Relatieve ratings 
Als er toernooiresultaten bekend zijn over een langere periode, dan kunnen relatieve ratings worden vastgesteld, ook als spelers niet tegen elkaar hebben gespeeld. Elo werkt dit uit (R5), op basis van de onderstaande kruistabel. De data bestaan uit 342 partijen gespeeld tussen 1846 en 1862.

Aantal gespeelde partijen per speler: N = W + L. Pct = W / N.

Voor het aanpassen van de relatieve rating van een speler hanteert Elo de volgende formule:

Rp is de eigen rating en Rc de gemiddelde rating van de tegenstanders, gewogen per gespeelde partij.

De relatieve rating wordt nu door successieve benaderingen berekend:

 Wijs aan alle spelers één initiële rating Ri toe, groot genoeg om tijdens de iteratie positief te blijven.
 Vind voor iedere speler de D(P) op basis van het werkelijke scoringspercentage P en de relatie tussen winstkans en ratingverschil.
 Bereken vervolgens voor iedere speler de eerste correctie R1 op basis van regel (E1), met Rc = Ri.
 Bepaal vervolgens voor iedere speler het gewogen gemiddelde van de tegenstanderratings Rc1.
 Bepaal de tweede benadering op basis van formule (E1), met Rc = Rc1.
 Vervolg de berekening totdat de berekende ratings weinig veranderen.

Deze methode convergeert niet bijzonder snel.

Relatieve ratings gaan terug tot Thurstone (1927), en Zermelo (1928). Een overzicht van de ontwikkelingen in dit gebied vindt men in.

Berekening relatieve ratings 
De relatieve ratings kunnen beschouwd worden als het nulpunt van de meer dimensionale functie:

Hierin is W de rij van werkelijke scores, We(x) de rij van de verwachte scores als functie van x, en x de rij van ratings. Het nulpunt van deze functie bestaat, en kan met iteratieve methodes efficiënt worden bepaald.

De betrouwbaarheid van ratings 
Verschillen tussen werkelijke score W, en verwachte score We kunnen getest worden, onder de aanname dat de verschillen |W - We| normaal verdeeld zijn:

 percentage spelers met |W - We| ≤ 0,6745 * σ is groter dan 50% (8 spelers).
 percentage spelers met |W - We| ≤ 1 * σ is groter dan 68,3% (11 spelers).
 percentage spelers met |W - We| ≤ 2 * σ is groter dan 95,6% (16 spelers).

Als voorbeeld kiest Elo de grootmeestergroep van het Hoogovens Schaaktoernooi, editie 1975.

De kolom Da is het verschil tussen de eigen rating en de gemiddelde rating van de groep, 2534 in dit voorbeeld. Het gemiddelde verschil |Da| van alle spelers is ongeveer gelijk aan Da = 61 ratingpunten. De daarbij behorende winstkans is P(Da) = 58%. Aannemende dat de score binomiaal verdeeld is, dan is de variantie gelijk aan 15 × 58% × (100% - 58%) = 3,56. De standaardafwijking σ = 1,91 is de wortel hieruit. De waarschijnlijke fout (PE) is gelijk aan 0,6745 * 1,91 = 1,29. Elo schat de PE op 1,27 op basis van het ratingverschil tussen Portisch en Popov. Statistisch verwachten we 8 verschillen |W - We| groter dan de waarschijnlijke fout. In werkelijkheid is dit aantal maar 5. We mogen verwachten dat 15 × (100% - 68%) = 5 uitslagen buiten de standaardafwijking vallen, maar dit aantal beperkt zich tot 2. Alle uitslagen vallen binnen 2 × σ. Hieruit concludeert Elo dat de scores van het toernooi ruim binnen de statistische toleranties vallen.

De werkwijze bevat een aantal vereenvoudigingen. Er wordt geen rekening gehouden met de onderlinge afhankelijkheden in de uitslagen. De verwachte score We en de standaardafwijking σ worden bepaald op basis van gemiddelden, in plaats van individuele wedstrijden.

In de beschouwing wordt uitgegaan van een binomiale verdeling, uitsluitend winst (1) en verlies (0) komen voor. In de schaakpraktijk is remise (½) geen uitzondering. Daardoor wordt de verdeling vlakker. De binomiale variantie van een partij tussen even sterke spelers is per definitie gelijk aan: μ = (0 + 1)/2, en σ = (1 - μ)/2 + (0 - μ)/2 = 1/4. Inclusief remise wordt dit: μ = (0 + ½ + 1)/3, en σ = (1 - μ)/3 + (½ - μ)/3 + (0 - μ)/3 = 1/6. Dit is een factor 2/3 kleiner.

Externe links 
 Chessgraphs.com - Compare chess players' rating histories with FIDE data back to 1970
  Elo Rating System
 Chess Elo Rating in Simple
 Chessbase: Arpad Elo and the Elo Rating System
 Digitaal archief Chess Life.

Schaakrating
Classificatiesysteem