Over — KNSB-rating

Je rating, helder uitgelegd

Je begint bij 1200 en na elke gerangschikte partij beweegt je rating — met een formule die rekening houdt met je kans, je uitslag en hoe ervaren je bent.

Over Schaaks / KNSB-rating
De basis

Wat is je KNSB-rating?

Je rating is één getal dat je speelsterkte samenvat. Win je van iemand met een hogere rating, dan stijg je meer dan wanneer je van iemand met een lagere rating wint — precies zoals het officiële Elo-systeem dat de KNSB gebruikt.

Waarom een rating?

Zo weet je waar je staat, wie een eerlijke tegenstander is en hoe je vooruitgaat. Je ranglijstpositie, je profiel en zelfs de indeling bij toernooien gebruiken je rating. Het maakt matchmaking eerlijker — in de wachtkamer zoekt Schaaks eerst binnen ±100 rating, daarna breder.

  • Alleen gerangschikte partijen tellen — tegen de computer oefenen, puzzels of dagelijkse puzzels geven geen KNSB-rating.
  • Geen gast-rating: gasten (negatieve ID’s) hebben geen profiel — hun partij wordt wel bewaard, maar hun ratingverandering is altijd 0.
  • Altijd veilig: je rating wordt nooit onder 100 afgerond en elke partij wordt precies één keer verrekend.
Jij — 1.324
+18 na winst vs 1.410
▲ +18
1.200 startVolgende mijlpaal 1.400

Na elke partij zie je direct je nieuwe rating, het verschil en een melding met link naar de partij.

Begin

Je start bij 1200

Iedere nieuwe speler begint op 1200 — het middenveld. Vanaf je eerste gerangschikte partij beweegt je rating. Je statistieken (total_games, wins/losses/draws) groeien mee en bepalen hoe snel je rating nog kan schommelen.

1200Start voor iedereen
100Absolute ondergrens — je zakt er nooit onder
0Geen ratingverlies bij gastpartijen
Let op: puzzelrating is iets anders (andere K-factor, andere schaal) — zie puzzels → rating. Je KNSB-rating gaat alleen over partijen tegen mensen.
De formule

Zo wordt je nieuwe rating berekend

Na elke partij berekent Schaaks hoeveel je verdiend hebt vergeleken met wat werd verwacht. Die verwachting hangt af van het ratingverschil met je tegenstander.

In één formule
Nieuwe rating = oude rating + K × (score − verwachting)
Afgerond op een heel getal en nooit lager dan 100. Voor wit en zwart apart berekend, binnen één transactie.
1

Verwachting berekenen

Verwachting = 1 / (1 + 10(tegenstander − jij)/400). Tegen een gelijke rating is dat 0,50. Tegen 200 punten hoger is het ±0,24 — je wordt geacht minder te scoren, dus winst levert meer op.

2

Uitslag bepalen

Score = 1 bij winst, 0,5 bij remise, 0 bij verlies. Wit en zwart krijgen elk hun eigen score.

3

Verschil × K-factor

Neem (score − verwachting) en vermenigvuldig met je persoonlijke K (zie hieronder). Dat is je ratingverandering.

4

Afronden & opslaan

round() + max(100, …). Beide spelers worden in één transactie bijgewerkt, met een rij in rating_history en een notificatie met je nieuwe rating en link naar de partij.

Uitslag (jij)ScoreWat telt
Winst1Je krijgt het meest — zeker tegen een sterkere tegenstander.
Remise0,5Je houdt gelijke tred als de verwachting rond 0,5 lag; anders kleine plus/min.
Verlies0Je levert in — minder tegen een sterkere, meer tegen een zwakkere.
Tegenstander veel sterker? Dan is je verwachting laag en is het verschil (score − verwachting) bij winst groot — dus grotere plus. Andersom geldt hetzelfde.
K-factor

Hoe snel je rating beweegt

De K-factor bepaalt hoe gevoelig je rating is. Ben je nieuw, dan beweegt hij sneller; ben je ervaren of al hoog, dan stabieler.

BeginnersK hoog — snelle aanpassing
ErvarenK 25 — normale stapjes
TopK klein — extra stabiel
WanneerKWat het betekent
Minder dan 75 partijen216 / √partijenVeel partijen = rustiger. Voorbeeld: bij 5 → ±96, bij 25 → ±43, bij 50 → ±30, bij 74 → ±25. Bij 0 telt de code intern als 1 om delen door nul te voorkomen.
75+ partijen en rating < 210025Vaste, gematigde stapjes.
75+ partijen en 2100–240025 − (rating − 2100)/20Lineair aflopend van 25 naar 10 (bij 2200 → 20, bij 2300 → 15).
75+ partijen en ≥ 240010Topniveau — minimale schommelingen.

Elke speler heeft zijn eigen K (op basis van zijn eigen aantal partijen en rating). Daardoor kan wit +18 krijgen terwijl zwart −12 krijgt bij dezelfde partij — dat is normaal.

Voorbeelden

Rekenen met echte getallen

We nemen telkens je eigen rating, die van je tegenstander, de K en de uitslag — en laten zien wat er gebeurt.

1. Gelijke sterkte, winst

Jij 1200 vs 1200, K=25, winst
+13
Verwachting 0,50 → 25 × (1 − 0,50) = +12,5 → afgerond 13. Nieuw: 1213.

2. Sterkere tegenstander, winst

Jij 1200 vs 1400, K=25, winst
+19
Verwachting ~0,24 → 25 × (1 − 0,24) = +19. Nieuw: 1219. Tegen 200 hoger levert winst dus flink op.

3. Sterkere tegenstander, verlies

Jij 1200 vs 1400, K=25, verlies
−6
Verwachting ~0,24 → 25 × (0 − 0,24) = −6. Je verliest weinig, want het was voorspeld.

4. Remise tegen gelijke

Jij 1500 vs 1500, K=25, remise
0
Verwachting 0,50 → 25 × (0,5 − 0,5) = 0. Keurig in lijn met verwachting.

5. Nieuwe speler, snel kalibreren

Jij 1200 (5 partijen → K≈96) vs 1200, winst
+48
96 × 0,5 = 48. Nieuw: 1248. Daardoor vind je snel je niveau.

6. Topniveau, stabiel

Jij 2400 (80 partijen, K=10) vs 2400, winst
+5
10 × 0,5 = 5. Nieuw: 2405. Minimale schommeling, zoals bedoeld.
Alle waarden afgerond en met ondergrens 100. In de echte code wordt per speler apart gerekend met zijn eigen K en verwachting.
Waar vind ik het?

Je rating volgen

  • Profiel — je huidige rating, total_games/wins/losses/draws, laatste 5 ratingveranderingen met tegenstander en datum, en een grafiek vanaf 1200 bij registratie (rating_history + prepend 1200).
  • Na elke partij — melding “Je rating is nu X” met directe link naar /speel/partij?game_id=… (via notificaties met `rating_change`).
  • Overal waar je naam staat — ranglijsten en teamlijsten tonen je actuele rating.

Elke verandering wordt bewaard in rating_history (user_id, game_id, opponent_id, old→new, change, result, created_at) — de bron voor je grafiek en de laatste-5-lijst.

Ratingverloop vanaf 1200
StartNu

Een partij tegen een gast? Dan zie je de uitslag wel, maar je rating blijft onveranderd — gasten hebben geen profielrij en hun ratingverstoring wordt niet meegeteld. De gast ziet de partij terug via een 4-uurs cookie op /voltooide-partijen.

Veelgestelde vragen

Nog vragen over je rating?

Telt elke partij mee?

Alleen gerangschikte partijen tegen een andere geregistreerde speler. Tegen de computer, puzzels, dagelijkse puzzel of oefeningen geven een eigen score/cijfer, maar geen KNSB-rating.

Ik won en kreeg maar +2 — klopt dat?

Ja, als je tegenstander veel lager stond, was je verwachting hoog (bijv. 0,90) en is het verschil (1 − 0,90) klein. Ook met een lage K (ervaren/top) wordt de plus kleiner. Met een zwakkere tegenstander moet je dus winnen om hoog te blijven — dat is precies de bedoeling.

Kan mijn rating onder 100 zakken?

Nee — de code doet max(100, …). Je blijft altijd op of boven 100.

Waarom krijg ik en mijn tegenstander niet dezelfde plus/min?

Omdat ieder zijn eigen K heeft. Een nieuwe speler (hoge K) beweegt sneller dan een ervaren speler (lage K). De verwachtingen zijn wel elkaars spiegelbeeld (samen 1), maar de K maakt het verschil.

Wordt mijn rating ooit dubbel bijgewerkt?

Nee — er is een vangnet: als er al rating_history rijen voor die game_id bestaan, gebeurt er niets meer. Ook het opslaan gebeurt in één transactie voor beide spelers, met melding en historie tegelijk, of helemaal niet.

Wat met timeouts en afgebroken partijen?

Time-outs en toernooi-afwikkeling lopen via dezelfde centrale afronding (resolveTimeoutAndFinishhandleGameEnd + toernooi-logica). Zo gaat er nooit rating of toernooipunt verloren, ongeacht of je of de cron de vlagval ontdekt.

Klaar om te stijgen?

Daag iemand uit of ga naar de wachtkamer — je volgende partij telt meteen.