Home / Forum / Suggestions / Unrated Elo

Unrated Elo

Hello Stefano,

I’m getting back to a topic we mentioned earlier because as I continued testing the program I realized that the subject deserves a bit more depth, especially now that you’ve implemented the fantastic feature for massively updating the Elo of registered players from the FIDE lists (Standard, Rapid and Blitz). By the way, great job—this is such a convenient feature!

For individual tournaments, the fact that an unrated player is recorded with Elo “0” or “1399” is practically irrelevant for the board’s purposes, but in team events it can create confusion.

I’ll give you a numerical example to explain myself better. If a team has a 2000‑Elo player and an unrated (NC) player, is it more correct to consider the team’s average Elo as 1000 or 1700?

You can see there’s a huge difference. If an organizer must accept teams or calculate brackets based on a balanced average, a team with an average of 1000 (actually composed of a 2000 and a beginner) completely distorts the field values and skews the balancing criteria. An unrated player will likely play with a strength estimated between 1000 and 1300 points, not zero. Another practical case: in our tournament we have a player who has Blitz Elo but no Rapid. When we switch the event from Blitz to Rapid, the Elo adjustment function leaves him with his Blitz Elo; there are three options: keep the Blitz Elo, set it to 0, or set it to 1399. Each of these possibilities has pros and cons, but I honestly prefer 1399.


You’re absolutely right when you say that the worldwide FIDE standard for unrated players is “zero” (or rather, no rating) and that below 1400 they simply appear as unrated on the international list. However, for tournaments played under the FSI umbrella, 1399 is the golden rule for unclassified players. Moreover, leaving the Elo field open in online registration carries a real risk of having non‑uniform data (some register with 0, others with 1399 depending on what comes to mind).


Since the new FIDE list update function “reads” and corrects ratings based on the type (Standard/Rapid/Blitz), do you think it would be feasible to integrate a special handling for these cases?


I’m throwing in a couple of ideas on how this could be structured at the program logic level, keeping the software’s international footprint while preserving local specifics:


  1. Fictitious calculation value (Default Rating for Unrated): Allow the program to keep the “Unrated” flag in the database (or retain the official 0 FIDE), but add an option in the tournament settings such as: “Assign fictitious Elo to Unrated players for average calculations.” If the organizer sets 1399, the program will use that value to compute team averages or sorting, without contaminating the player’s real data.
  2. During list updates: When the function queries the FIDE list and doesn’t find the player (or finds them with a missing/zero rating), it could act based on a tournament configuration parameter (e.g., If not present in FIDE list → Set Elo to X or Keep Unrated).


What do you think? I’d like to know if, in your view, the topic deserves further exploration, or if you have an alternative approach in mind to avoid the problem of skewed averages in team events (which could also be extended to individual ones).


Thanks and goodbye,

Claudio

View original (IT)

hello @LTB

The issue of players without a rating in team tournaments is exactly as you described, and the example of 2000 + NC becoming “average 1000.”

I just released v5.12.0 which closes the matter. I’ll recap how the program behaves now, because I think it follows your line of reasoning well:

What changes in practice

For Italian tournaments (profile federation = ITA, you’ll see it from the profile) I introduced a concept of “Elo for Unrated calculation” set to 1399, the FSI golden rule you mentioned. The important point is that:

- The player’s actual value in the database is never touched — a player at 0 in the register stays at 0. The 1399 is used as a calculation value, exactly as you proposed in your first hypothesis.

- It applies to three key points:

1. Team average — now a team with 1 at 2000 + 3 Unrated has an average of 1549, not 500. The ranges for subdivision make sense again.

2. Pairings (TRF / pairing engine) — bbpPairings also sees 1399 instead of 0, so the pairings are no longer unbalanced.

3. “Update rating from FIDE” function — now it proposes 1399 even for those who have no rating in the tournament category (the case “Blitz→Rapid: the player only has Blitz” you described). You’ll see this as a line highlighted in yellow in the preview.

For international tournaments (profile federation different from ITA) the behavior remains standard FIDE: Unrated = 0, no forced values.

Your specific question about the “Std → Rapid” case

I confirm you caught a real case: a player with Blitz Elo and no Rapid, in a Rapid tournament, was previously left at their Blitz value (not very correct from a FIDE perspective). From v5.12.0 in the FIDE sync preview that line shows “Rapid n/d → apply 1399 (floor tournament)” already pre‑checked.

Important: each row in the preview has its own checkbox, all checked by default. If for some reason you want to preserve a specific player’s current value (e.g., because you set it manually), just uncheck that line before confirming. The counter on the “Apply” button updates in real time. It’s designed to give you fine control without forcing global settings.

On manual override

There’s a nuance I wanted to respect: the floor only triggers if the player’s rating is 0 (or missing). If you manually set any positive Elo — even low, even 800 for an eight‑year‑old child — that value is respected in the team average and calculations. It’s never forced up to the floor. You always have the final say.

The only exception is the FIDE sync function, where (because it’s an explicit action you consciously trigger) the program proposes overwriting the manual value with 1399 if the FIDE list for that category is empty — but even there you can simply uncheck the line in question and the manual value will be preserved.

What you need to do

Nothing. The feature is already active on all your tournaments (ITA federation → default floor 1399). Existing tournaments will see the floor applied from the next generated round (for those in progress) or immediately (for those still open for registration).

If you want a specific tournament to keep the “pure FIDE” behavior (0 = 0) or a different value, let me know: the floor is a per‑tournament field, we can change it case by case. For now I haven’t added an interface option to modify it directly from the tournament because I believe that for FSI tournaments 1399 is always the right choice — if you want a selector exposed in the UI I’ll gladly add it.

I’m glad when feedback leads to an improvement that makes sense beyond the single case. The logic of skewed averages was indeed a flaw, and fixing it within the same framework as “Update rating from FIDE” keeps everything coherent: the two tools now speak the same language.

Try it out and let me know if you find anything odd or think of a use case we haven’t considered.

Nice, I like it! I also think we have addressed an abnormal situation with FIDE; for once I believe the Italian approach makes more sense.


Thanks and goodbye,

Claudio.

hello @LTB

thanks to you for the positive feedback — it’s always nice when an initial doubt turns into a real improvement that makes sense.


Just a small addendum to frame the choice: I slightly softened the message compared to what I wrote to you, because in reality most users of the program are not Italian. Behind the scenes the logic is exactly what we discussed (for ITA federation tournaments the Unrated become 1399 in calculation), but in the visible text I chose not to explicitly mention “FSI rule” or “Italian 1399”: the label simply says “Unrated value of the tournament” and shows the number that the organizer sees. That way a French or Spanish user doesn’t encounter a reference that isn’t theirs. For international tournaments (non‑ITA federation) the default floor remains 0 (or whatever they set in their profile) and the behavior is the classic FIDE one. In practice we gave the option to “Italianize” the software to those who want it, without imposing it on anyone — I agree with you that in this specific case the FSI approach is more robust than the FIDE one, but I wanted it to be an organizer’s choice rather than a forced default.

I’ll also update you on something for next month: in the coming weeks I won’t add new features to the tournament modules (neither individual nor team). We’ve released a lot in a short time (your requests from v5.4 down, chess‑results for teams, late entry, reopen‑tournament, FIDE sync, and now the Unrated floor) and I want to give organizers — you first of all — the chance to test everything added in production without immediately overlapping with something else. I’ll limit myself to bug fixing on reports: if you or other users encounter anything that doesn’t work, let me know and I’ll fix it right away.


Requests for new features are still welcome — I’ll note them, we’ll discuss them, and when the stabilization period ends we’ll pick them up again.


A warm greeting,

Hello Stefano,

I agree, now we need to let the numerous features introduced settle in and work on any bugs that may arise. I will continue to keep track of possible improvements, but the most important thing is control – i.e., not finding ourselves in situations that could jeopardise the success of the tournament or leave us without an exit strategy. A lot has already been done in this regard, but we will keep researching on the ground. At the moment, in our little corner, we still have two stages of the combo (the first one today afternoon), and another team tournament already under construction for June 17th. Regardless of the pairings themselves, one thing I don’t find is a way for a public user to search/find the various scheduled tournaments without knowing the direct link… if you reach the home page at chesspairings.org, you’ll honestly feel a bit lost (IMHO): it feels somewhat scattered; I think we need some links (at the start and prominently displayed) to dive into the heart of the program and find public tournaments. Otherwise, people might not know how to proceed (people read less and less, they need guidance in the midst of action or they get discouraged faster than expected… scrolling is already a strong deterrent for the lazy!). To go to my.chesspairings.org you have to click on the language, then select “Open App,” and I confess I discovered this by looking at the page source to find various links :) So to buy some time, I would try to improve accessibility by creating a guided path that captures the visitor’s attention and doesn’t let them leave. Forgive my critical tone; take it as such.


In the future, I will also avoid long threads on disparate topics and try to open specific threads for specific problems – definitely more manageable.


Bye,

Claudio.

Hello @LTB these days I’m working (it’s still in beta with broken pages, so this is just to explain it to you) on https://www.wpchess.com/.


In practice it’s a WordPress plugin that will allow you, via a private token (which you’ll create in your profile, which you can’t do yet), to automatically publish on your site/blog the tournaments you’re about to create, the rankings and pairings in real time (exactly as if they were on chess-results or within the public section of chesspairings.org).

In this way users who know your site or follow the tournament page will only need to navigate and read your pages, and from there they’ll have everything; a ChessPairings user won’t have to do anything else but tick a box during tournament creation to indicate whether you want it added to the list or not. Obviously with a calendar.


Let me know what you think

Hello @LTB these days I’m working (it’s still in beta with broken pages, so it’s just for explaining) on https://www.wpchess.com/.


In practice it’s a WordPress plugin that will let you publish automatically to your site/blog the tournaments you’re about to create, the rankings and pairings in real time (exactly as if they were on chess-results or within the public section of chesspairings.org) via a private token (which you’ll have to create in your profile, you can’t do it yet).

In this way users who know your site or follow the tournament page will only need to browse and read your pages and they’ll have everything from there, and a ChessPairings user will just need to tick a box during tournament creation to indicate whether that tournament should be added to the list or not. Obviously with a calendar.


Let me know what you think

Hello Stefano,

It could be interesting; it seems useful for clubs with a website like ours, but how do you address the search for all available public tournaments?! I mean, think of someone who says: tonight I'm going to find a tournament, I wonder if there are any in my area? Or even more effective for someone who might be traveling to an unfamiliar city and wants to look up tournaments. Currently it is possible to reach pages on other tournament management sites and set search strings for date, location, tournament name, etc. In this way you increase the visibility of your site, using it also as a tool to find future tournaments. Anyway I will forward your message to our webmaster; he will definitely find it interesting.

By the way, today we completed the second stage of our combined effort, all smooth :)

During registrations I noticed an issue regarding FIDE Elo: when registering from "Search FIDE", the standard Elo is always offered in the list, even if the tournament does not use it (and then it is added correctly with the right Elo). Let me know if you think it's worth noting, or we'll see after the "settling down".


Bye,

Claudio.

Hi @LTB I added the ability to upload the tournament notice (which points to an external cloud service, so as not to compromise the server’s security) during the creation of the tournament:



which can then be downloaded in the public tournament:



I’ve also added mapping of the venues for tournaments so I can start searching later. I’ll finish the WP plugin and then move on to what you pointed out.

Hello Stefano, great, thank you, I assure you that I would have come back to it on the announcement :) But I tried adding it to an already created tournament, and I can't find it on the public page... maybe you didn't propagate it to team tournaments? I've added it here: https://my.chesspairings.org/pubblico/torneo_squadre.php?id=258&token=cbf155e7e2787c6fdaccbb780a0597ee3993310166ece3532d9fc4e44c683515

hi @LTB

actually I see it at the link you pointed to:


Hello Stefano, it's here now! But before it wasn't, I swear! :) Probably the cache gave us a nudge. Even though the page is in English, even though I copied the public tournament link from the Italian admin page. This is something I never reported to you because I haven't yet figured out how to reproduce the "problem" consistently, but sometimes the page opens in English even if the link was copied from the Italian "Copy Link" button, getting the link I indicated above. Now, after repeatedly refreshing, the page has become Italian, even though the link is always the same. If I open it from an incognito page it returns to English. What determines the language of the public page?

Hello @LTB


If you’re not logged in, the default page is in English.

Ciao Stefano, in fase di iscrizione ricevo un "Errore di rete" se provo ad aggiungere ad una squadra un giocatore tramite la funzione "Cerca FIDE" (tra l'altro vorrei incollare un screenshot, ma non trovo come fare, però ho visto che tu sei riuscito). Se invece vado ad aggiungere uno spaiato, e cerco per giocatore FIDE, allora funziona.

Mi sono anche reso conto che apparantemente non c'è modo da parte dell'admin di cambiare l'Elo (o il nome) di un giocatore, anche se iscritto manualmente fuori FIDE. L'unico modo è cancellarlo e reiscriverlo. Credo che questa funzione dovrebbe essere presente.


Ciao,

Claudio.


ciao @LTB

solo amministratore può incollare immagini (sempre tema sicurezza).


Per le tue segnalazioni:


  1. "Errore di rete" nella ricerca FIDE — ho fatto manutenzione al db ed aggiornato una VPS, temo che ci siamo incrociati
  2. Modifica giocatore iscritto — aggiunta icona matita (✎) blu accanto a ogni giocatore nel roster. Cliccandola si apre un modal per modificare cognome, nome, rating e titolo. Disponibile sia in fase iscrizioni che a torneo in corso.


Per favore prova ora entrambi

Ciao Stefano,

La matitina sembra funzionare solo per l'ultima squadra iscritta... non sono riuscito a capire la logica, all'inizio pensavo che funzionasse solo per i giocatori iscritti manualmente, ma non sembra essere così, nel torneo dove sto iscrivendo funziona solo per l'ultima squadra elencata! Inoltre solo l'ultima squadra ha un bottone "Iscrizione Squadra". C'è qualcosa di strano che non sono in grado di capire.


L'"Errore di rete" scritto in rosso da "Aggiungi da FIDE" lo prendo ancora.


@LTB che torneo è? mi copi anche url della pagina dove si verifica questo? prova ad aggiornare la pagina con CTRL+MAIUSC+R

Edited on 27/05/2026 13:47

Ciao Stefano, adesso la matitina funziona per ogni giocatore. Prima di scriverti avevo provato innumerevoli volte a rifrescare con CTRL+F5. Comunque ok, anche se il fatto che ti apra un form di modifica al fondo delle formazioni è davvero poco intuitivo. Immagina un torneo con molte squadre, clicchi sulla matitina e poi devi scrollare la pagina fino in fondo per poter modificare il giocatore, uno può anche non minimamente avvedersene che in fondo alla pagina è apparsa la "Modifica giocatore".

L'errore di rete persiste.

Il torneo è questo: https://my.chesspairings.org/pubblico/torneo_squadre.php?id=258&token=cbf155e7e2787c6fdaccbb780a0597ee3993310166ece3532d9fc4e44c683515


Ciao,

Claudio.

@LTB questo?


Sì, il torneo è questo, ma l'Errore di rete era nella pagina dell'admin, quando clicchi su una squadra e hai la possibilità (per intenderci) di cambiare la formazione. Adesso funziona anche lì :) Non è andato per tutta la mattina. Spero che la segnalazione permetta di capire cosa potesse non andare. Purtroppo non potendo allegare screenshot la comunicazione è meno efficace.


Grazie e ciao,

Claudio.

12»
Log in to join the discussion
This site uses technical and analytics cookies to improve your experience.