What's New
Latest updates and improvements to Chesstide.
August 22, 2026
Points and ratings beside each pairing
The cockpit pairing list now shows, for each player, the score the round was paired on and the rating used — the same figures the print sheets and the public pairings page already carried. No more opening the standings in another tab to check a generated round. Individual tournaments only.
Re-generating a round no longer shifts acceleration
In an accelerated tournament, generating a round that had already been paired recorded the acceleration bonus a second time, shifting every later round's bonus by one. That produced wrong pairings, wrong per-board badges and a wrong ranking on any recalculated round. Bonuses are now stored against the round they belong to.
No more false "ranking settings changed" warnings
Saving a tournament's settings after an update could report that the ranking configuration had drifted even when nothing meaningful had changed — triggering a full recalculation on an open tournament, or a locked-configuration warning on a closed one. Only real changes are flagged now.
Scores are spelled the same way everywhere
The cockpit showed a whole score as "3" where the print sheets and public pairings say "3.0", which made reading the two side by side harder than it should be. Scores now match across all surfaces, and the tie-break explainer shows the same values as the standings table it opens from.
August 21, 2026
Categories can include unrated players
A category with a rating limit can now count players who have no rating at all — the "under 1400 and unrated" prize group many organisers run. Tick the box next to the rating bound in the category editor; age and gender conditions still apply as before. Existing categories are unchanged.
Accelerated tournaments rank on total points
Standings for an accelerated tournament showed Points, Extra and Total but ranked on Points alone, so a player on 1.0 total could sit above one on 1.5. The ranking now uses the total, and the acceleration extra is stored with each round so rank and total can never disagree. Already-published rounds keep their ranks until recalculated.
Categories follow a player edit straight away
Changing a player's rating, date of birth or gender left the standings page showing their old category, while the participants page already showed the new one. That player's categories are now restamped as soon as you save. Closed tournaments keep their published categories untouched.
Clubs now appear on chess-results
Uploading to chess-results published only clubs typed as a per-tournament exception, so a field of federation-affiliated players arrived with every club cell empty even though the participants page showed them. Federation clubs are now published too.
Entry fee help names the right payer
The Entry Fee field said "Fee per team" on every tournament, including individual ones that have no teams. The help line now matches the tournament and the fee type you chose.
Belgian federation birth dates are handled precisely
The federation now publishes only a birth year. Chesstide records that a date is year-only instead of treating it as 1 January, so importing no longer overwrites the precise dates already on file, a genuine 1 January birthday is kept, and the birth-date mismatch warning no longer flags a day-and-month conflict against a record that only states a year.
August 18, 2026
Publish your tournament to chess-results.com
Tournaments can now be uploaded straight to chess-results.com from the cockpit — players, pairings, results and tie-breaks — and re-published after each round under the same tournament number. You choose once, per tournament, whether it goes to the test area or the real site; that choice is fixed by chess-results and cannot be changed afterwards, so a new help article walks you through it, including the round dates chess-results requires before it will accept a tournament.
Names no longer show a stray comma or space
A player or team member saved with only one name part appeared with the separator still attached — "Lovelace, " or a leading space — in standings, registration lists and the financial report. Names with a missing part now display cleanly, and a name typed as only spaces is refused at entry.
The organiser filter dropdown behaves properly
On the tournament list, the organisation dropdown stayed open on top of the location fields after you left the field with the keyboard, and on Safari, Firefox and iPhone a tap on an organisation could be swallowed — sometimes selecting a different one than the one you pressed. Escape now closes it from the clear button too.
August 13, 2026
Financial report for tournaments with an entry fee
A new Finance tab shows the money side of a tournament in one place: total due, paid and outstanding, how many participants sit at each fee amount — so discount tiers and exemptions are visible — and the full per-participant list, with a print view and CSV export. Team tournaments list each team, expandable to its players with what each one owes and has paid.
Retrying a failed sign-in now works
When sign-in, registration or a password reset was refused, the page came back missing pieces the form needs, so the next attempt failed the same way and the only way out was reloading. Every one of these pages now re-renders complete. A failed Lichess or Google sign-in also no longer echoes text from the provider onto our own page.
Pop-up messages speak your language
Dialogs raised while pairing a round, swapping colours, entering results or managing players — including the "network error" and session-refresh prompts — appeared in English whatever language you had chosen. They are now translated into French and Dutch.
Further sign-in security work
Sign-in now completes only through the secure authorization-code exchange; the older fallback that installed a session from the page itself has been removed.
August 9, 2026
See who is in each group category
A group's public page gains a categories section, plus a page listing every category with its criteria in plain language and the players it holds — ranked members numbered within the category, entrants who aren't ranked yet listed after. Players who only appear in an unpublished leg stay hidden.
Filter tournaments by organiser
The public tournament list can now be narrowed to a single organisation, picked from a searchable dropdown in the filter bar — so "everything my federation or club organises" no longer means visiting each organisation's page. The choice survives the upcoming/past switch and paging.
A page for organisers on the homepage
The homepage now says what Chesstide is, a "For organizers" link sits in the navigation, and a new organiser guide covers registrations, FIDE-Dutch pairings, standings and tie-breaks, and TRF export — including an honest note on where Chesstide sits next to your federation's own tools.
Player ratings freeze with the standings
Closing a tournament already froze its standings; the ratings those standings were computed from could still be rewritten afterwards, so a tie-break explanation could disagree with the published result. Bulk and per-player rating updates, hand-typed ratings, and the re-stamp on reactivating a cancelled registration are all now refused while a tournament is closed. Names, clubs, countries, titles and birth dates still save.
Staff list says what a linked account grants
Configuration → Staff now states that adding a staff member who has claimed their profile also hands them full cockpit access — pairings, results, registrations — with a link to the help article.
Further account and API security work
API keys stop working the moment their owner is deactivated, anonymised or deleted; sign-in sessions can no longer be extended indefinitely by staying logged in; more cockpit actions verify their request token; and player names and email addresses are no longer written to server logs.
Your email survives a failed sign-in
After a failed sign-in, registration or password-reset request, the email field came back empty and the submit button stayed disabled, with nothing saying that retyping the address was what re-enabled it. The address you submitted is now kept in the field.
Refused saves say so
A player-info, team-name or team-member save that was refused returned you to an unchanged players tab with no message, indistinguishable from a save that worked. Refusals now explain themselves, successful saves confirm, and every outcome keeps the filters you had applied.
Server errors no longer masquerade as expired sessions
Any cockpit fault was reported as an invalid security token, producing a "Session refreshed. Please try again." message and a retry that failed the same way. Only genuine token problems now show it.
The selected tab scrolls into view
On narrow screens, a long strip of board or category tabs didn't scroll to the one that was selected, leaving it off-screen.
Deleted accounts sign out cleanly
After an account was deleted or deactivated, the browser kept replaying its sign-in for days instead of clearing it. Those sessions are now dropped at the first refusal — while a temporary provider outage still leaves you signed in.
Listings no longer repeat or skip entries
Paging through organisations, people and other lists could show one entry twice and never show another, because the underlying order wasn't fixed. Organisation pickers and lists also read alphabetically now instead of in arbitrary order.
August 3, 2026
Non-standard scoring systems
Tournaments can now use a point system other than the standard 1-½-0 — pick 3-2-1 (where a played loss still scores), football-style 3-1-0, or enter your own values. Standings, tie-breaks and pairings all follow the system you choose, and it survives a round trip through TRF and SWAR import/export.
Three visibility levels for tournaments and groups
Tournaments and groups are no longer just public or private. A new middle level keeps an event out of the public tournament list and search while still showing it on your organisation's page, so a club event stays findable by its members without appearing in global discovery.
Set a player's club for your tournament
Edit Player Info now has a Club field: search your federation's clubs and pick one, or type any name for a foreign or brand-new club. The club you set is the one shown in the players tab, the CSV export, the public participants list and the standings.
Group pages present the whole series
A group's public page now shows its own dates and location, the schedule of all its legs with a status badge each, participation figures, and a formatted description — so a challenge series reads as a scheduled event rather than a bare list.
Category rankings within a group
Groups can now define categories — by age, rating or gender — the same way tournaments do, and the combined ranking can be filtered and re-ranked per category.
Final standings are locked once a tournament closes
Completing a tournament now freezes its published standings and the settings that produce them, so a later recalculation or tie-break edit can no longer rewrite the final result. Reopening the tournament unlocks them again, and each standing records which tie-break engine build produced it.
Jump straight to a section of a group page
An 'On this page' row above the description links to each section the group actually has — schedule, combined ranking, rules — so a long description no longer hides the legs underneath it.
Rankings highlight the row you're pointing at
Combined group rankings and prize tables now highlight the hovered row, including the pinned player and total columns, which makes following one player across a wide, horizontally scrolling table far easier. Podium rows keep their gold, silver and bronze tint when hovered.
Copy a player's full contact email
Long email addresses in the cockpit players tab were cut off by the column, so selecting them copied only part of the address. A copy button beside each address now puts the full value on the clipboard.
See which staff members can manage your tournament
The staff list in Configuration now shows the user account linked to each staff member, or a 'No account' badge — making it visible who actually has cockpit access to your tournament.
Faster page refreshes for spectators
Live pairing and standings pages could re-download the full page on every refresh instead of confirming that nothing had changed. They now reuse what your browser already has, which cuts data use and speeds up follow-along viewing.
Account and organiser-only actions hardened
A round of security work restricts registration status and payment changes to organisers, scopes team search to teams you may see, prevents player names containing hidden characters from corrupting exported pairing and rating files, and tightens sign-in redirects and request limits.
Clearer messages when a password is refused
Choosing a password that is too weak, or re-using your current one when resetting it, showed a generic 'something went wrong' error. Each case now explains what to change.
Signing in cannot take over an existing account
Signing in with a provider whose email matched an existing account silently rebound that account to the new sign-in method. It now stops and asks you to sign in with the method you originally used.
Pages refresh properly after an update
A page your browser had already stored could keep being reused after a new version shipped, so a fix wouldn't reach you until you cleared your cache. Every deploy now retires those stored copies.
Export filenames keep version numbers
A tournament named 'Spring Open 1.0' exported as 'Spring Open 10'. Dots in tournament names are now preserved in downloaded filenames.
July 28, 2026
Live pairings work again for spectators
On public pairing and standings pages, visitors who weren't signed in could end up on a page whose interactive parts had stopped working — pairings no longer refreshed on their own. Those pages are now fully live again for everyone.
Menus close when you tap elsewhere
On phones, entering a result or opening a collapsible section left the account menu or another dropdown hanging open. Tapping anywhere outside a menu now closes it, the same way it already did on desktop.
Account deactivation and deletion are final
Deactivating, anonymising or deleting an account now takes effect on every open session immediately, and a deleted account can no longer reappear by signing back in. Erasing an account also removes the associated sign-in identity, and reports an error rather than success if anything goes wrong.
Extra-points controls read correctly
In the cockpit, the amount selector next to the reduce-extra-points button now has a proper label and is announced correctly by screen readers, instead of reading as an unnamed list of numbers.
July 26, 2026
Category prizes shown on tournament pages
Category prize details entered when creating or editing a tournament are now displayed in the Prizes section of the tournament page, rendered as formatted markdown alongside the prize fund.
Expand and collapse controls work with the keyboard
Several expandable sections — including team pairing boards, the cockpit team roster, and every collapsible form section — can now be opened and closed with the keyboard, and screen readers correctly announce whether each is expanded or collapsed.
Payment bar for free tournaments
On tournaments with no entry fee, the payment progress bar could render incorrectly. It now shows a full, fully-paid bar as expected.
July 25, 2026
Ranking details stay on screen
Clicking a player or team near the bottom of a ranking opened a details panel that ran off the edge of the screen, hiding their round-by-round history. The panel now opens on whichever side has room and scrolls if the history is long.
Draft groups stay hidden until published
Tournament groups that were still in draft or had been cancelled could show up in the public groups list and their pages opened for anyone with the link. They are now visible only to the organiser until published.
Private groups reachable by their link
A published group marked as private stays out of the public listings, but its landing, standings and registration pages now open for anyone the organiser shares the link with.
July 24, 2026
Formatting in tournament descriptions
The tournament description, prize fund, extra fees and payment information fields now support markdown, so you can use headings, bold text, lists and links. A short formatting cheat-sheet sits under each field.
Rearrange pairings with the keyboard
Swap mode on the pairings page could only be used with a mouse. Every swappable seat, bye and roster row is now a real button, so you can reach and select them by keyboard, and screen readers announce the mode and each selection.
Faster first page load
The site's scripts are now compressed before being served, cutting about 65 KB from a first visit.
Clearer link wording
The cookie banner's 'Learn more' link now says what it leads to, and the homepage's three 'See all' links each announce which section they belong to — easier to follow with a screen reader.
July 23, 2026
Shared side events in festivals
Festivals can now offer optional common side events — like a blitz, rapid, or puzzle leg — that any player may opt into on top of their one main tournament. Players still play exactly one exclusive leg, but can now add as many shared events as the organizer offers.
Search tournaments by name
The public tournaments page now has a name search box in the filter sidebar. It matches tournament names and also surfaces a group when the group's name or one of its tournaments matches.
Navigate between a group and its tournaments
A tournament's public pages now show a 'Part of:' link back to each group it belongs to, and a group's combined-ranking column headers link straight to each tournament — so you can move between a group and its legs in both directions.
Faster repeat visits
Style, script, and image files are now cached by your browser between page loads, so navigating around the site downloads less and feels quicker on repeat visits.
Homepage 'Upcoming' grid fills cleanly
The Upcoming section on the homepage left an empty slot in its bottom row on wide screens. It now shows up to nine events so the three-column grid fills completely.
July 22, 2026
Group pages explain how the ranking works
A tournament group's public page now includes a plain-language summary of how its combined ranking is computed, derived from the group's actual scoring settings. Organizers can also add their own Rules section from the group settings, written in markdown.
Dialogs no longer appear in the corner
Pop-up dialogs on the pairings and simul pages rendered flush against the top-left of the screen instead of centered. They are now centered again on every page that uses them.
Missing translations no longer show raw keys
Some pages displayed internal text like 'tournaments.someLabel' when a translation was missing, and one error message showed a literal '{id}' placeholder. Translations now fall back to readable English text, and 27 previously untranslated labels have been added in all three languages.
July 21, 2026
Rearrange simul boards mid-event
A new rearrange mode on the simul boards table lets you swap two players' boards, flip a board's colours, or erase a single result. Board numbers and givers stay in place, so swapping players across givers reassigns both.
Combined ranking shown on the challenge group page
Challenge groups now display their combined ranking table directly on the public group page instead of only a link to a separate page. The dedicated standings page remains available as a permalink below the table.
Player and Total columns stay visible while scrolling
In challenge groups with many legs, the ranking table scrolled Total off-screen. The Player and Total columns are now pinned to the left and right edges, so both stay readable however far you scroll.
Standings tab has its own icon
The Standings and Statistics tabs on the public tournament page used the same bar-chart icon. Standings now uses a podium icon, matching its empty state.
July 20, 2026
Simultaneous exhibitions (simuls)
You can now run a simul, where one or more givers play the whole field at once. Create a simul tournament, pick the givers, assign the field manually, at random, or balanced by rating, enter per-board results, and follow a live giver score summary. A public page shows scores and boards to spectators once published, and you can export all boards as PGN.
Help center
A new Help Center replaces the old guide with a full set of organizer and player articles — from setting up a tournament and running rounds to registering and paying — in English, French, and Dutch. Contextual '?' links across the cockpit jump straight to the relevant article.
Erase pairings to restart a round
The cockpit pairings toolbar now has an 'Erase pairings' action that blanks a draft round back to empty so you can regenerate from scratch. It's offered only on the latest draft round, to protect the Swiss history earlier rounds were built from.
Edit a player's payment from the cockpit
Individual tournaments now have an 'Edit payment' action in the player menu to view and set how much a player has paid and still owes, without leaving the cockpit. Shown only when the tournament charges an entry fee.
Redesigned homepage
The homepage now shows three focused sections — Happening now, Upcoming, and Recently finished — instead of a single long list. Ongoing events display a live badge and their current round progress.
Compact tournament cards
Tournament listings are now easier to scan: agenda-style rows on mobile and slim cards on desktop, with clear status chips including a 'Closes soon' marker when registration is about to end.
Friendlier placement points editor
For cumulative challenges, the placement points table now has a row-based 'place → points' editor instead of a raw JSON box, matching the prize structure editor.
Country dropdown in the organization directory
The organizations directory filter now uses the same searchable country dropdown (with flags) as the tournaments filter, instead of a two-letter text field.
Clearer registration confirmation page
The confirmation page now words its message for the right context — player versus team — and, when you're checked in during an open window, shows a dedicated headline with your round number.
Working analytics opt-out
The analytics toggle in the cookie banner now functions as a real opt-out. Analytics are cookieless, and the cookie and privacy policies have been updated accordingly.
Sign-in and registration no longer fail under rate limiting
A bug could turn a successful login, registration, or session refresh into an error whenever rate limiting was being applied. These now succeed reliably.
Invalid payment amounts are no longer silently saved as zero
The Edit payment and Extra points editors now reject an invalid or negative amount with an inline error instead of quietly recording €0 or 0 points.
Tidier pairings and standings display
A bye is now shown once (not twice) in the standings details popover and pairings table, byes always display their correct score, and the round selector's dropdown arrow no longer overlaps the round text.
Cookie settings dialog sits above tournament cards
The cookie settings dialog now appears on top of the page instead of having tournament card buttons show through it.
Consistent FIDE event codes across exports
The SWAR and TRF exports can no longer attribute different FIDE event codes when a stored code is unparseable — both now read the same first valid code.
Players list re-sorts instantly when you change the sort column
In the cockpit players list, picking a different column to sort by now reorders the players immediately, instead of sometimes needing a second click or a page refresh.
Fine-grained multipliers for challenge legs
When weighting the legs of a challenge group, you can now enter precise decimal multipliers such as ×1.25 or ×0.75, instead of being limited to whole and half steps.
July 17, 2026
Cumulative Challenges: register once, play every event
A new Cumulative Challenge group type lets organisers run a multi-event circuit (such as a Triathlon) where players register a single time for the whole challenge and are entered into every event automatically, with a combined ranking across all the events.
Head-start pairings from earlier events
Within a Cumulative Challenge, each player's running total from the other events now shapes their pairings in the next one, so front-runners are matched appropriately. A carry-over badge shows this in the cockpit; individual-event standings and the combined ranking are unchanged.
Rating-based entry-fee discounts
Organisers can now waive or reduce the entry fee for players above or below a rating threshold — for example free entry for blitz Elo 2200 and above — instead of tracking it by hand.
Dedicated rating controls in the player editor
The cockpit player-info editor now has explicit controls to set a player's pairing rating, mark them unrated, reset it, or correct the rating used for prize categories — separate from the name and country fields.
Prize categories stay put when you refresh ratings
Running Update All Ratings mid-event no longer reshuffles players' prize categories: the rating that decides categories is now frozen at registration.
Status and payment save as you pick them
In the cockpit, changing a participant's status or payment now saves immediately when you choose a value — the separate save button is gone.
Check-in icon refreshes when status changes
Changing a participant's status now also updates the check-in column, so its icon no longer shows a stale state.
Swap mode stays on until you exit it
In the pairings view, swap mode now persists across swaps until you turn it off, with a banner showing it's active and result entry disabled to prevent slips. Selecting both players of the same pairing now performs the colour swap directly.
Add players by club shows the tournament rating
The By-Club list in the cockpit now shows and sorts by the tournament's effective rating instead of the raw national rating.
Stay on Manage after saving a tournament
Saving tournament edits now returns you to the Manage page you were working on, instead of bouncing you to My Tournaments.
Safer festival moves
Moving a player between festival sections now reactivates a previously cancelled entry in the target section, and refuses a move that would double-register someone already on a team there.
Arbiter actions no longer freeze during pairing
While pairings are being generated, actions like checking players in, moving, or removing a registration now return a quick 'being updated, try again' message instead of hanging.
More accurate tie-breaks with unrated players
Rating-based tie-breaks (such as average rating of opponents and performance) now correctly count games against unrated opponents at the default rating, and a Buchholz forfeit edge case was corrected.
July 10, 2026
Swap a player or team holding a bye
In the cockpit you can now swap a player or team that has an assigned bye with another entrant, and the bye point moves to whoever takes the seat. Requested byes (full, half or zero-point) stay locked, since they belong to the player who asked for them.
Add several players in a row without reopening the dialog
In the cockpit, adding a player from the search tab now keeps the Add Entry popup open and clears the search, ready for the next name. A running count shows how many you've added, and Done closes the popup and refreshes the list once.
Long matches: up to 1000 games per pairing and 1000 rounds
Round-robin tournaments now allow up to 1000 games per pairing and up to 1000 rounds, so long formats such as a 24-game world-championship match or a many-game blitz match can be set up as a two-player round-robin.
Recalculate a Points Challenge ranking
Recalculating the combined standings of a Points Challenge no longer fails with a security-validation error.
July 7, 2026
Festival groups: one entry across parallel tournaments
A new Festival group type lets you run several parallel tournaments (for example by rating or age section) where each player enters exactly one. Players pick their section during a single registration, and organizers can move a player from one section to another before pairings are made.
Tournament groups now appear in public listings
Published groups — festivals and challenges — now show up right alongside individual tournaments on the homepage and the Tournaments page, so visitors discover them where they already browse. Each group appears as a single stacked-card that hints at the events inside, and a new Publish button makes a group public when you're ready.
Reopen a completed tournament
Organizers can now reopen a tournament that was marked complete, to correct results, revert a round or continue play, and then complete it again — no need to ask an administrator.
Link a club (as an organization) to its national federation membership
A club organization can now be linked to its official national-federation club record (starting with the Belgian RBCF), shown on the club's profile. The link is picked from a search on the club form.
Friendlier error pages
If something goes wrong or a page can't be found, you now see a clear, chess-themed error page with a way back home or to the previous page, instead of a raw technical message.
Understand each group type as you create it
The Create group form now shows a short explanation of the selected type — Collection, Points Challenge or Festival — that updates as you change your choice, so it's clear which one fits your event.
Create an organization from the public directory
The public Organizations directory now has a Create Organization button, so signed-in users can add a club or organization without first going to My Organizations.
Players added at the desk are ready to pair
When a tournament manager adds a player through the cockpit, that player is now checked in automatically — adding someone at the desk implies they're present, so they can be paired right away without a separate check-in step.
Round-robin tournaments with just two players or teams
You can now run a round-robin (all-play-all) tournament with only two players or teams, instead of it being rejected for having too few entrants.
Linking a federation ID keeps a player's exact birth date
Linking a national-federation ID that only knows a birth year no longer overwrites a player's already-known full birth date with a January 1st placeholder.
July 5, 2026
Tournament Groups: link your events together
You can now group several tournaments under one banner. Create a Collection to showcase a series of related events on a single public page, or a Points Challenge to build a combined ranking across all the events — with per-event weightings, dropped scores and configurable tie-breaks. A new 'My groups' area, linked from My tournaments, lets you create and manage your groups and attach the tournaments you organize.
Stay logged in while a form is open in another tab
Submitting a form you'd left open in another tab or on an earlier page no longer bounces you to the login screen. You now stay signed in throughout your session.
Federation ID lookup ignores stray spaces
Searching for a player by federation ID now works even if the ID has leading or trailing spaces, instead of silently returning no results.
July 4, 2026
Faster page loads during live tournaments
We've made further behind-the-scenes performance improvements so pages stay fast and responsive even during busy live events.
June 30, 2026
Public organizations directory
A new public directory lets anyone browse the clubs and organizations on Chesstide, making it easier to discover who's running events.
Faster public pairings and standings during live events
The public pairings and standings pages now load near-instantly even when a crowd of spectators — signed in or not — keeps refreshing during a busy live tournament, and organizers stay logged in throughout.
More consistent form styling across the app
Input fields, dropdowns and checkboxes now share a single, consistent style site-wide for a cleaner, more uniform look.
June 26, 2026
Find and register any player already in the system
The player directory is now shared: you can search for, view and register any player who already exists, instead of hitting a dead-end when another organizer entered them first. Editing a player's details still stays restricted to whoever created the record.
Edit players directly from Players management
Admins can now edit a player's core details — including linking national-federation and FIDE IDs — straight from the Players management list, with full validation.
Dismiss recent players from 'My Players'
The profile's 'My Players' section now shows your recent players too, and lets you dismiss ones you don't manage. A dismissed player stays hidden — in both your profile and the registration finder — until they register again.
Clearer 'Edit player info' form
The per-tournament player override form has been redesigned to be input-first: each field is prefilled with the current value, and a changed field is highlighted with a 'Modified' badge and a one-click reset to the original. Linked national and FIDE ID fields now have clearly visible, evenly sized inputs.
Cockpit-added players no longer appear in 'My Players'
Players you add while managing a tournament through the cockpit — or import from a crosstable — no longer show up in your personal 'My Players' list.
June 23, 2026
Re-register a player already entered by someone else
When you register a player during an open check-in window who is already actively registered by a different user, the registration now transfers to you and the player is checked in, instead of hitting a dead-end 'already registered' error. Payment, pairing and scoring state are preserved and the change is recorded in the audit log.
Record unrated results
Results can now be marked as unrated, so games that shouldn't count toward ratings are handled correctly.
Light/dark theme toggle for presenter mode
The full-screen projector view now has a light/dark theme toggle, so you can match the room's lighting.
One column chooser now drives the players table, sort and export
On the individual players tab, the column chooser now controls both what you see on screen and what's exported, and feeds a client-side sort dropdown that reorders rows instantly. New Club Number and Club Name columns are available (populated for Belgian players today), alongside optional gender, birth year, national ID, FIDE ID and withdrawn columns.
Linking a national ID now fills in FIDE ID and player details
When you link a player's national federation ID, their FIDE ID and demographic details (such as gender and birth year) are now pulled in automatically.
Birthdate-mismatch warning now shown in team registration
The warning that flags a difference between an entered birthdate and the federation's records now appears in the team registration flow too, not just individual registration.
Federation labels now shown in your language
Federation names and labels are now translated per locale, so they display in your selected language.
Cleaner per-round controls for round-robin tournaments
The per-round 'generate pairings' button is now hidden for round-robin events, where all rounds are generated together — removing a control that didn't apply.
Affiliated players now show their club after registration
Players registered by FIDE ID — including those already in the system from an earlier import — now have their national federation linked automatically, so their club appears in the cockpit instead of showing blank. Existing affected players have been backfilled.
Linked national and FIDE IDs now stay visible when editing a player
The Edit Player Info modal previously hid an official ID once it was linked, which could look like the ID was missing. Linked national and FIDE IDs now stay visible as clickable links to the federation fiche and FIDE profile, and the 'Check' lookup only appears for federations Chesstide can look up.
Swap mode no longer turns on by default in pairings
The pairings view no longer auto-enables swap mode for manual or 'Other' pairing systems. It now stays off by default everywhere; enable it with the existing toggle when you need it.
Action buttons no longer collide with long page titles
On the Manage Tournament and tournament detail pages, a long tournament name no longer overflows into the action buttons — the buttons now wrap onto their own row below the title.
Pairings toolbar no longer jumps around
The buttons in the pairings toolbar now stay in stable rows instead of shifting position as the toolbar wraps on narrower screens.
Editing a player keeps your place in the list
Saving an edited player, or refreshing their data from the federation, no longer scrolls the players list back to the top.
Black-player marker now visible in dark mode
In the presenter view's dark theme, the dot indicating the player with the black pieces is now clearly visible.
Correct round dates in rating report exports
When a round's games were entered with mixed or missing dates, the exported rating report could pick the wrong date for the round. Each round's date is now chosen reliably from the games actually played.
June 18, 2026
Pin a team to a fixed table
Teams can now be pinned to a specific board/table for pairings, the same way individual players can. Set it from the new 'Fixed table' action in the players tab; a board badge shows the pinned position.
Warning when handicap tournaments aren't rating-eligible
Enabling handicap on a tournament marked for FIDE or national rating now shows a warning that handicap time controls generally aren't rating-eligible. It's informational only and doesn't block saving.
Player registration is easier to use on phones
The player registration flow has been reworked for narrow screens: tabs, search and ID-lookup controls, and form fields now fit without horizontal clipping or zoom-on-focus, with larger tap targets, and the page scrolls to results and the selected player automatically. Team registration gets the same improvements.
Standings flagged as out of date after any ranking setting change
Standings are now marked stale whenever a ranking-affecting setting changes — tie-break order, board tie-breaks, team scoring system, categories, or fictitious ratings — through any path, even if no new results were entered. Recalculate to refresh them.
Clearer label for national IDs without a federation name
When a federation has no specific name, a player's national ID now shows a 'National ID' label qualified by country (for example 'National ID (FR)') instead of a bare country code, so different countries' IDs stay distinguishable.
No flash of completed boards on the pairings screen
With 'Show only remaining' turned on, completed boards no longer briefly appear when the pairings page loads or reloads — they're now hidden before the page first paints.
June 15, 2026
Clearer "not authorized" messages
When an action is blocked because you don't have permission, the message again names what you were trying to reach — a team, tournament, organisation, or registration — instead of a generic "Unauthorized".
June 14, 2026
Round-robin pairings for team tournaments
Team events can now be paired as a round-robin (all-play-all), with the same options as individual round-robins — including multiple games per pairing and an optional manual ordering step. Start it from 'Generate All Rounds' on a team tournament.
Regenerate the boards of a team match
Arbiters can now refill a team match's boards (or a whole round's) from the current line-up without losing results already entered — useful after a late line-up change, an absence, or a reserve swap. New 'Regenerate boards' buttons appear per match and per round.
Team and board tie-breaks no longer come back as zero
Team tournaments with an under-rostered team — fewer players than the boards being played — could show every team and board tie-break as 0.00. Sonneborn-Berger and the board tie-breaks now compute correctly in these cases; recalculate standings to refresh an affected event.
Status and payment badges stay in sync across screen sizes
After editing a registration's status or payment badge in the cockpit, switching between the mobile and desktop layouts (for example by resizing the window) could briefly show a stale value. Both layouts now update together.
June 12, 2026
More player detail columns in standings
Standings tables (public and cockpit) can now show Title, Gender, Birth year, FIDE ID, and National ID as optional columns, picked from the column chooser. They appear only where a row maps to a single player; off by default.
Presenter mode now supports team tournaments
The full-screen projector view works for team events too, showing one compact row per team match (home — score — away, plus byes) and cycling through them automatically like the individual view.
Prompt for a full birthdate when FIDE registration needs one
On FIDE-homologated tournaments, players without a FIDE ID who only have a birth year (no full date of birth) are now flagged with an amber badge in the players tab and on the FIDE export page, so arbiters can collect the missing date before registering them.
Projector display follows the latest published round
Left unattended, the presenter view now automatically advances to the newest published round as the arbiter publishes it — no reload needed. Pinning a specific round with the round selector still holds that round.
Warning when a configured tie-break can't be calculated
If the tie-break engine is unavailable when standings are computed, a configured tie-break could silently fall back to zero and stop breaking ties. The standings page now shows a clear warning naming the affected tie-break(s) so you can restore the engine and recalculate.
Tournaments can no longer be saved ending before they start
Editing a tournament now rejects an end date earlier than the start date with a clear message, and country codes are stored consistently so they no longer slip past search and federation lookups.
FIDE export no longer double-reports catch-up games
When a postponed or late-played game was exported in a later batch, it could be reported to FIDE twice. The team and individual TRF exports now attribute each game to its export and emit catch-up games at the correct grain, so re-exporting never duplicates or drops them.
Unrated players no longer treated as 0-rated
A federation rating of 0 (the 'unrated' convention) could leak in as a genuine 0 Elo, affecting pairings, acceleration, and ordering. Such values are now normalised to unrated everywhere they're read.
Safer CSV exports
Player, standings, cross-table, and SWAR CSV exports now neutralise cell values that spreadsheet apps could interpret as formulas, protecting against 'CSV formula injection' from user-entered names and other free-text fields. Numbers, ratings, and IDs are unaffected.
Confirmation messages on tournament management pages
Publishing, cancelling, completing, copying, editing, or deleting a tournament now shows the success banner on the Manage and My Tournaments pages, which previously stayed silent after these actions.
June 8, 2026
Projector mode for live pairings
A new full-screen presenter view turns the pairings page into an unattended projector display: it fills the screen with the round's boards in readable columns and automatically cycles through them on a timer, with a countdown ring showing when the next page is due. Open it from the new 'Presenter mode' button on a pairings page; results entered during the round refresh automatically. (Individual tournaments for now.)
Recalculate standings on demand
Arbiters can now force a standings recompute at any time from a Recalculate button in the standings toolbar — previously it was only reachable from the 'standings out of date' warning. A failed recalculation now reports an error instead of silently looking like success.
Standings count results from the round in progress
Standings now include results already entered for the current, in-progress round instead of waiting until the round is fully completed — so live rankings and a manual recalculation reflect the latest results.
Edit extra points from the player menu
Manual extra-points editing has moved into each player's ⋮ context menu via an 'Edit Extra Points' action that opens a modal, consistent with the other per-player actions. The amber +X.X badge remains as a read-only indicator.
Clearer screen reader support for detail pop-ups
The detail and tie-break pop-ups (on pairings, standings, the cross-table, and player lists) now announce a descriptive name to screen readers and correctly report their open/closed state, making them easier to use with assistive technology.
Postponed team matches included in the FIDE export
Team matches played in an earlier round but not yet exported (for example a postponed match) are now folded into the FIDE TRF team export, matching how individual tournaments already handle catch-up games.
No more random sign-outs during busy events
Players were occasionally logged out mid-session — most often during login and registration surges at the start of a tournament. The underlying server-side session handling has been fixed so one person signing in no longer disturbs other users' sessions.
Helpful message when no teams are checked in
Trying to generate team pairings with no checked-in teams now shows a clear, actionable message instead of a raw internal error, matching the individual-tournament behaviour.
June 6, 2026
See how a player's tie-breaks were calculated
A new cockpit page breaks down how each of a player's sum-based tie-breaks (Buchholz, Cut-1, Median, Sonneborn-Berger, Progressive) was computed — round by round, including dropped rounds and FIDE adjustments for unplayed games. Open it from the 'see full calculation' link in the standings popover or by clicking a tie-break cell in the standings table.
Tie-breaks no longer break when a future round is published early
If a later round had already been published and assigned a player a full-point pairing-allocated bye, the standings tie-breaks for the current round could silently fail and show as zero. Standings now compute correctly in this situation.
Direct Encounter now breaks ties within a smaller group
When Direct Encounter is used as a tie-break, it now correctly settles a tie that only emerges after an earlier tie-break (such as Number of Wins) narrows the tied players down to a pair who played each other — the head-to-head winner is now ranked ahead. This previously failed in individual, team, and board standings.
June 5, 2026
Printable tournament poster with QR code
The cockpit now generates a printable poster for each tournament, with the event details and a QR code linking to the public page — handy for taping up at the playing hall or sharing on social media.
Six more FIDE tie-breaks available
APRO (Average Performance Rating of Opponents), APPO (Average Perfect Performance of Opponents), Score-Strength Combination, and the four Extended Sonneborn-Berger team-Swiss variants are now selectable in the tie-break picker, all computed by the official TieBreakServer engine.
Secondary tie-break list to break remaining ties
A second 'break-ties only' list can be configured alongside the primary tie-breaks — it applies only when the primary list still leaves teams or players tied, so columns stay clean on screen but rankings get fully resolved. The setting is written into the FIDE TRF-2026 record 202 for downstream tools.
Permanently delete a tournament
Tournament creators and global admins can now permanently delete their own tournaments, including cancelled ones that used to clutter the listings. Other roles still can't delete; a confirmation dialog prevents accidents.
Customisable columns on standings and participants
Standings and participants pages now have a column chooser — hide tie-break, rating, federation, or any other column you don't need. The selection is remembered in your browser and also honoured by the CSV export.
Sortable participant columns
Every column on the participants page is now sortable — click a header to sort, click again to reverse, click a third time to clear. The sort survives pagination, so you can scan a 200-player field without losing your place.
Player popover on public pairings
Clicking a player name on the public pairings page now opens a popover with their federation, rating, and tournament history — the same shortcut already available on the standings page.
Team tournament import from a TRF file
The TRF import action now supports team tournaments — players, teams, board rosters, registrations, rounds, pairings, results, arbiters, forbidden-pairing groups, and tie-breaks are all created from the file in one step.
All FIDE tie-breaks now computed by the TieBreakServer engine
Buchholz family, Sonneborn-Berger, Koya, ARO, AROC, TPR, Progressive Score, Wins, Direct Encounter, and the team-level Direct Encounter and board-standings variants are now computed by the official FIDE TieBreakServer rather than in-house code. Results align with FIDE TBR 03/2026 — including the §6.2 recursive Direct Encounter rule that's hard to get right by hand.
TRF export pre-selects all players
The TRF export dialog used to start with no players selected. It now pre-selects every player by default so the common 'export everyone' flow is one click.
Clearer SWAR import warnings
SWAR import warnings (missing FIDE IDs, ambiguous players, unknown federations, etc.) now display in a dedicated translated panel above the imported tournament, with duplicate warnings collapsed and a sensible cap so a problem file doesn't flood the page.
Clearer TRF import warnings
TRF import warnings are now translated, grouped by category, and deduplicated when the same message would otherwise repeat many times — keeping the post-import banner readable on large files.
Same tie-break can now appear twice in a cascade
FIDE TBR 03/2026 §5 allows Direct Encounter and Extended Direct Encounter to repeat in the same cascade (for example, 'Points, DE, Buchholz, DE'). The configuration form accepted duplicate entries before but silently collapsed them when computing standings; the second occurrence now correctly re-applies inside whatever sub-group the intermediate criteria narrowed down.
Black games played and won no longer count forfeits
FIDE TBR §11.3 defines these tie-breaks as 'games actually played with the Black pieces' — forfeit wins/losses shouldn't count. The previous in-house calculator did count them; TieBreakServer's spec-conformant reading is now used, so values may shift for tournaments with forfeits.
Baku team-Swiss scoring preserved on TRF export
Tournaments configured with the Baku team-Swiss scoring system used to silently fall back to match points on TRF export, dropping the configured game-points scoring. The export now respects the configured scoring.
Team result auto-advance skips collapsed matches
When entering team results, the keyboard auto-advance to the next pairing used to stop working once an earlier match had been collapsed in the UI. The auto-advance now correctly skips collapsed matches and lands on the next visible board, so result entry stays keyboard-friendly down the round.
May 29, 2026
More FIDE tie-breaks: Fore Buchholz, forfeits-as-played, Rounds Elected to Play
Three additional FIDE tie-breaks are now available in the tie-break configuration: Fore Buchholz, Buchholz counting forfeits as played, and Rounds Elected to Play. They are computed by the official TieBreakServer engine for FIDE-accurate results, and Black games played/won now report their standard FIDE codes.
Import a tournament from a TRF file
A new "Import TRF" action creates a fully-populated individual tournament from a FIDE TRF file — players, registrations, rounds, pairings and results, arbiters, forbidden-pairing groups, tie-breaks, and pairing settings are all brought in. Team tournaments aren't supported yet.
TRF export for team tournaments
The TRF export page is now available on team tournaments, producing a FIDE-format team file with full team rosters and match results, not just individual events.
Round-robin Buchholz warning
When a round-robin tournament is configured with a Buchholz-family tie-break — which FIDE rules discourage for round-robins — the cockpit now shows an amber warning. It's only a heads-up; the tie-break is still calculated and the form still saves.
Reactivate a cancelled team registration
Re-registering a team whose previous registration was cancelled now reactivates the existing entry instead of failing. If some of the team's players have since moved to other teams, the wizard lists who was removed so you can add replacements.
TRF exports now use the modern FIDE TRF-2026 format
All TRF files ChessTide produces now follow the latest FIDE TRF-2026 specification, with richer per-round bye and tournament-type information for better compatibility with current FIDE tooling.
Category filter is now a dropdown on standings
The category navigation on public and cockpit standings is now a dropdown instead of a horizontal tab strip, giving a better experience on mobile and on tournaments with many age categories.
Standings re-rank when you change the tie-break order
Editing the tie-break configuration saved the new order but left the displayed standings ranked by the old one, so the ranking could contradict the configured priority. Standings are now recomputed automatically whenever the tie-break order changes.
Pairing no longer falls back when a player has a pairing-allocated bye
A player granted a pairing-allocated bye had their score under-counted in the TRF file, which the pairing engine rejected — forcing a fallback to a less-strict pairing algorithm. The bye is now scored as a full point so pairing runs normally.
Standings details popover stays on screen
The player/team popover on standings could open downward and run off the bottom of the screen once its round history loaded. It now reserves the right amount of space up front and flips above the row when needed.
Accurate performance ratings against unrated players
Players stored as unrated (rating 0) were treated as genuine 0-Elo opponents, which could crush performance-rating estimates — a player who swept rated opponents could show an absurdly low TPR. Unrated players are now handled correctly, giving realistic performance and average-opponent ratings.
FIDE export header uses the official tournament dates
On a full TRF export, the start and end dates in the FIDE header are now taken from the tournament's scheduled start and end dates rather than from when individual rounds happened to be played. Partial-range exports still bracket exactly the rounds included in the file.
May 25, 2026
TRF export for non-FIDE tournaments and an "All rounds" option
The TRF export page is now available on individual tournaments that aren't FIDE-rated, so you can produce a TRF file for any external tournament program. An "All rounds" entry has also been added that bundles rounds 1..N in a single file, regardless of how the FIDE event-code ranges are configured.
Completed tournaments stay publicly viewable
Tournament detail, standings, cross-table, and pairings pages used to return 404 for tournaments marked as completed, and the "past" tab on the home and tournament listings hid them entirely — only the API still served them. Finished events are now publicly viewable again across the SSR site, the listings, the public REST endpoint, and the sitemap.
Draft and cancelled tournaments no longer leak participants or statistics
The /participants and /statistics pages skipped the visibility check applied to the other public tournament pages, so an anonymous visitor with a direct link could see the participant list and statistics of a draft or cancelled event. Both pages now respect the same visibility gate as standings, pairings, and cross-table.
Signing out no longer disconnects your other devices
The web logout endpoint was calling Supabase without restricting the scope, which revoked every refresh token in the account family and silently signed out every other browser and tab. Logout now affects only the current session, so other devices stay signed in.
May 23, 2026
Buchholz tiebreak now follows FIDE 03/2026 rules
Buchholz and Sonneborn-Berger now cap the dummy opponent's score per FIDE 03/2026 Article 16.4 — a half-point bye, withdrawal, or forfeit no longer inflates the tiebreak above what the rule allows. Standings of tournaments with unplayed rounds may rank differently than before.
Staying signed in for the full session
A background refresh-token timer in our auth library was silently rotating tokens on the server, so the next browser request would fail with 'Invalid Refresh Token' and sign the user out around an hour after each login. The background timer is now disabled; sessions persist as expected.
Manual pairings: pair and unpair from the cockpit
Rounds set to manual pairing now show a 'Players to pair' (or 'Teams to pair') roster sorted by score, with a click-two-players flow to create pairings, plus an unpair button next to swap-colors on each board. Works for both individual and team tournaments.
Multi-game round-robin (N-fold)
Round-robin tournaments can now be configured with multiple games per pairing (1–10) and a 'cyclic' or 'grouped' distribution. Cyclic plays each game across full Berger cycles with alternating colors; grouped plays each pair's games back-to-back as a mini-match. SWAR imports detect the right distribution automatically.
Self-healing bye and absence lists
Editing a player whose stored bye or absence rounds fell outside the current round count — after the schedule was shortened, the bye cap lowered, or the bye-request feature toggled off — used to fail with a validation error. Now only newly-introduced entries are validated; legacy entries are grandfathered, and the absent/bye lists are trimmed automatically the next time the tournament is saved.
FIDE export defaults to the first range with pending games
The FIDE rating export dialog now annotates each event code with a 'Sent' or 'Pending' badge and pre-selects the first range that still has played-but-unexported games, so you don't have to scan for what's left to submit.
Faster tournament detail page
The check-in button on the public tournament page no longer fetches the full registration list just to decide whether to show itself. A lighter existence check is used instead, noticeably speeding up the page for tournaments with many registrations.
Creating a tournament with an unusual pairing system
Setting the pairing system to 'Other' on the tournament form used to crash the round-creation step. 'Other' is now mapped to 'manual' on rounds, and case/whitespace variants (e.g. 'Swiss' vs 'swiss') are normalized consistently across the app.
Re-importing SWAR tournaments without duplicate-key errors
Re-importing a SWAR file containing players who had previously been inserted without a FIDE ID used to fail with a duplicate-key error. The importer now matches existing players by name and birth date when no FIDE ID is provided.
May 21, 2026
Forbidden pairings
Organizers can now define groups of players who must never be paired together (rotating teams, family members, etc.). The constraint is enforced by the pairing engine, and when the engine has to fall back to a less-strict pass any forced violations are surfaced as warnings on the pairings page.
Self check-in for already-registered players
Players who are already registered for a tournament now see a check-in proposal banner during the on-site confirmation window, so they can confirm attendance themselves instead of waiting for an arbiter to mark them present.
Richer player popover on standings
Clicking a player name in the standings now opens an expanded popover with federation info and additional tournament details — useful when arbiters and spectators want context on a particular result.
"After Round N" badge on standings
Public and cockpit standings pages now display a badge beside the subtitle showing how many rounds have been completed, so it's clear at a glance which round the standings reflect.
Simpler withdrawal model in the cockpit
Withdrawal is no longer a separate state on a player record — a withdrawn player is now simply absent for the remaining rounds. Redundant withdrawal-specific UI in the cockpit has been removed, leaving a single, clearer way to handle players who stop participating partway through a tournament.
Empty date and time fields are now visually distinct
Date and datetime fields throughout the app (tournament dates, check-in window, round times, player birth dates, filters) now show their format hint in muted gray when empty, so it's obvious which optional fields you haven't filled. Partially-typed datetime fields keep their digits dark and gain a red outline to flag that something is still missing.
Club number column on the participants list
The participants list now includes a club number column and lets you sort by it, making it easier to group or find players by their club affiliation.
More accurate rating estimate in mixed-rating events
The tournament performance rating now uses FIDE's published K-factor and the appropriate FIDE-vs-national basis when estimating a player's strength, giving better TPRs when FIDE-rated and nationally-rated players meet.
Faster standings on tournaments with many tied players
Tied-group tiebreak resolution now fetches the round data it needs once per call instead of repeatedly per tie group, noticeably speeding up standings on large events where many players share the same score.
Cleaner print sheets for in-progress rounds
The print pairings view now derives the per-player 'points before round' correctly even when the current round is still in draft, avoiding a stale or misleading points column on freshly-generated round sheets.
Registration is blocked after the tournament end date
It was previously possible to register for a tournament after its end date had passed. The system now rejects late registrations with a clear error.
Reliable tournament auto-completion
Tournaments occasionally stayed in 'in progress' past their end date if the auto-close job missed them. A stale-closer fallback now catches missed tournaments, and organizers can manually mark a tournament complete as a last resort.
French tiebreak terminology corrected
Several tiebreak labels in French were inaccurate or inconsistent with FIDE terminology, and one empty-state hint pointed users 'above' a list when it should have said 'below'. Both are now corrected.
May 17, 2026
Step through rounds with navigation arrows
The public and cockpit pairings pages now have previous/next arrows beside the round selector, so you can move through rounds one at a time without opening the dropdown.
PGN export: board ranges and a remembered selection
The PGN export dialog now accepts a board range like "1-16, 20, 22-24" as a shortcut for ticking games, and remembers which boards you exported per tournament so the same selection is pre-applied on the next round.
Cleaner tournament listing cards
The "View External Tournament" button no longer appears on announcement-only cards in the tournament listing. The external link is still available on the tournament's detail page.
Staying signed in across multiple tabs
Opening the same account in several browser tabs at once could trigger a security check that signed you out of every tab. Simultaneous session refreshes are now coordinated, so multiple tabs stay signed in.
May 15, 2026
Handicap tournaments
Organizers can now run handicap tournaments. A cockpit toggle enables the format and exposes the clock parameters (base white/black minutes, minutes per Elo bucket, maximum shift cap, unrated rating floor). Each player's adjusted thinking time appears as a small badge next to their name on the cockpit, public, and print pairings views, with an amber 'Handicap' chip on the public tournament page.
Choose which games to export to PGN
PGN export now opens a dialog listing the round's games so you can pick exactly which ones to export, with a select-all/none toggle and every game selected by default. Available from both the cockpit and public pairings views.
"Show only remaining" filter on cockpit pairings
A new toolbar toggle hides boards whose results are already in, so arbiters can focus on games still in progress during a round. The choice persists per tournament, and a board that gets a result after the filter is applied stays visible until you re-toggle or refresh, so the result can still be confirmed. Covers individual pairings, team matches, and the tiebreak layout.
Performance rating (TPR) always shown in standings
Standings tables now include a tournament performance rating column whenever the event has at least one rated player, even when TPR is not a configured tiebreak. Ranking still uses only the configured tiebreaks, so the displayed TPR never affects placement.
Per-board game date tucked behind a menu
The manual per-pairing game date (a FIDE edge case for postponed games) now sits behind a three-dot menu instead of an always-visible input, reducing clutter in the pairings table. The cell shows the date when set and offers 'Change game date' and 'Clear date'.
Editing absences after an earlier round is completed
Changing a player's absent or bye rounds no longer fails just because an earlier round has already been completed. Only the rounds you actually add or remove are checked against the completed-round rule.
Half-point bye granted after pairing now counts in standings
A requested half-point bye added after a round's pairings were generated now creates the matching pairing, so the bye point appears in standings and tiebreaks. Removing the bye again deletes it.
Active standings tab scrolled into view on mobile
On the public and cockpit standings pages, selecting a category or board tab from the middle of the scrollable strip on mobile now centers the active tab instead of leaving it off-screen.
Failed cockpit actions no longer leave partial changes
When a cockpit action across pairings, players, teams, the waiting list, or TRF export failed partway through, partial changes could still be saved. Failed actions are now fully rolled back.
May 14, 2026
Birthdate consistency checks against FIDE and national records
Chesstide now compares each player's date of birth against their linked FIDE and national federation records and flags disagreements in three places: a new global-admin report with one-click resolution, a badge next to player names on the cockpit players tab, and a soft warning during individual tournament registration. Detected mismatches are recorded for admin review.
Pairing points include acceleration extras
On printed pairing sheets and the public pairings page, the per-player points column now combines the score from prior rounds with the acceleration extras granted for the current round, so the value matches what was actually used to pair the round.
Sign-in no longer logs out unrelated users
A login, registration, or password reset on one device could silently revoke other users' refresh tokens across all of their devices, surfacing later as 'session expired' on the next page load. Sign-out now affects only the current session.
Print button on cockpit print pages fully clickable
The fixed print button on cockpit print pages was only clickable on its leftmost few pixels because the page header was painting over it. Clicks now register across the whole button.
May 12, 2026
Public pairings page opens on the live round
On a tournament's public pairings page, the default-round selector now picks the earliest published round still being played, so spectators land on the in-progress round instead of round 1. The selector and each option also show the round's scheduled date and time.
Toggling withdrawal updates only the affected row
Switching a player between active and withdrawn in the cockpit players page no longer re-renders the full list. The single row, attendance badge, team title, and active/withdrawn counts swap in place for a smoother check-in flow.
Much faster standings recalc on large tournaments
Tournament-wide score lookups used by Buchholz, Sonneborn-Berger, and Koya are now computed once per recalc instead of once per player. On a 500-player, 11-round, 6-tiebreak event this drops the standings refresh from around 8 seconds to under one. Team board standings get the same speedup.
Unique ranks in crosstable for tied players
When two or more players share a final standings rank, the crosstable (and its CSV export) now assigns them sequential, unique row numbers using TPN as a final tiebreaker. Opponent cell references like '25 W 1' are now unambiguous, and team grids get the same fix using team id.
Empty fields blocked when creating organizations and players
Submitting an organization or player creation form with an empty name, gender, or date of birth is now rejected with a clear error and the form re-rendered, instead of silently creating a blank-name record or showing a generic error page.
Session refresh more reliably preserves login
Improved how the app delivers refreshed login cookies after an automatic session refresh. Previously, due to a FastAPI internal quirk, the refresh ran on the server but the new cookies never reached the browser, which could contribute to premature logouts mid-session.
May 11, 2026
Print pairing sheets for individual tournaments
Two new print views — per-board (wall-poster format) and alphabetical-by-player — alongside the existing result sheets. The alphabetical sheet helps players in large fields find their pairing by name; sort handles accented and non-Latin names correctly.
Koya tiebreak (FIDE TBR 03/2026 §9.2)
Sum of points scored against opponents finishing with at least a configurable percentage of the maximum possible score. Forfeit results count when the opponent qualifies; tiebreak rounds are excluded from the threshold calculation.
Download CSV from crosstable
Adds a Download CSV button to both the cockpit results tab and the public cross-table page. Header labels and color codes (W/B, B/N, W/Z) follow the viewer's language, and team views export home/away markers.
One-click payment toggle in the cockpit
Cockpit registrations now show a 44×44 €-in-circle button next to paid/unpaid rows so admins can flip payment status in a single tap during check-in. The pencil + dropdown remain for partial, waived, and refunded states.
QR codes on printable pages link to the live page
Pairings and standings print pages now show a QR code in the header. Scanning it opens the matching public live page, so spectators viewing a wall poster can follow updates from their phone.
Mobile-responsive cockpit pairings page
Below 1024 px the cockpit pairings page renders as stacked cards (individual, team, and tiebreak), with both player names visible without horizontal scroll and all result-entry buttons meeting the 44×44 px touch target. The desktop table is preserved on tablets and larger.
FIDE and national IDs on My Registrations cards
Individual registration cards now show the player's host-country federation id and FIDE id under their name, so participants can confirm at a glance that the right ids are on file.
Cumulative score on individual print pairings
The three cockpit individual print views (boards, alphabetical, result sheets) now show each player's cumulative score from prior completed rounds, so players can locate themselves on the wall sheet by their running total.
Fixed-board pin honored beyond the round's board count
A FIXED_BOARD constraint targeting a board higher than the round's pairing count (e.g. board 30 in a 9-board round, for an accessibility-adapted physical board) is now applied literally instead of being silently dropped.
Direct encounter hidden when tied players never met
When tied players have not all played each other, the Direct Encounter column now renders as `-` and falls through to the next tiebreak, instead of misleadingly showing 0 for everyone (per FIDE 13.13.5).
Final standings rank in TRF (FIDE) export
Positions 86–89 of the 001 player line now carry the final standings rank with tiebreaks applied, as the TRF16 spec requires. The export previously duplicated the starting rank there, which made rating reports inconsistent.
Excluded players' pairings stamped to prevent FIDE catch-up bleed
Pairings involving excluded players (e.g. players without a FIDE id, default-deselected) are now marked as exported so they do not resurface as false catch-up entries in the next FIDE event code's TRF.
Site chrome removed from prizes print page
The cockpit prizes print page no longer renders the global header, navigation, footer, or cookie banner — matching the other print views and producing clean prize-list printouts.
May 8, 2026
Public REST API for tournament data
Public endpoints now expose tournament pairings, players, and live state, so federations and partner sites can pull live tournament data programmatically instead of scraping pages.
API documentation page in the help menu
Users with API access now see an API Docs link in the help menu that renders the full reference inside the app, with no need to track down external documentation.
Mobile-responsive cockpit players page
The cockpit players tab now adapts to phone-sized screens with stacked card layouts instead of a horizontally-scrolling table, making mid-tournament check-in and edits practical from a phone.
Mobile-responsive public pairings page
The public pairings page now uses a card layout on phones so spectators and players can read board pairings without horizontal scrolling.
Mobile-friendly My Registrations cards
The My Registrations page now uses a responsive card layout so registration details, status, and actions are readable on phones.
44px minimum touch targets on icon buttons
Icon-only buttons across the app — including TPN editor controls and player-finder edit actions — now meet the 44px touch-target spec, so taps on phones land reliably.
Cockpit status badge updates after per-player check-in toggle
Toggling a single player's check-in in the cockpit now refreshes the tournament status badge straight away instead of waiting for a page reload.
Requested byes remain visible after player withdrawal
When a player is withdrawn after requesting a bye, their requested-bye entries no longer disappear from the cockpit, preserving the audit trail of what was requested.
Buchholz cut variants render distinctly
Buchholz-cut-1, Buchholz-cut-2 and similar variants now appear as separate columns in the tiebreak settings and standings instead of collapsing into a single ambiguous label.
Progressive tiebreak treats withdrawal rounds correctly
The Progressive (Sonneborn-Berger-style cumulative) tiebreak now records withdrawal rounds as zero-point cumulative entries, so withdrawn players' progressive scores are calculated consistently with the FIDE handling for forfeit rounds.
May 6, 2026
Auto check-in when registering during open window
Players who register while the check-in window is open now go straight to CHECKED_IN, skipping the redundant manual confirmation step. Audit log records the implicit transition.
Re-registering after cancellation reactivates the original entry
Cancelled registrations are reactivated in place when the same player re-registers, instead of failing on the duplicate-entry constraint. Stale per-tournament data (byes, absences, payment notes, TPN, acceleration history) is reset.
No more confirm popup for publish and complete round
Removed the confirmation dialogs before publishing pairings or completing a round — both actions are reversible (unpublish, revert), so the extra click was friction without value.
Card and heading consistency across pages
Organisation, profile, legal, guide and what's-new cards now match the rest of the platform with consistent shadow elevation and borders. Page titles use responsive sizing on mobile so they no longer overflow on narrow phones.
Requested-bye score shown next to BYE label
The crosstable and standings player card now distinguish requested byes (BYE 1, BYE ½, BYE 0) from pairing byes (plain BYE), so a half-point bye no longer looks identical to a zero-point absence.
Buchholz tiebreak corrected for forfeits and tiebreak rounds
Forfeit wins and pairing-allocated byes are no longer treated as voluntary unplayed rounds in Buchholz cut-1, withdrawals now contribute a dummy opponent, and tiebreak playoff rounds are excluded from regular standings calculations.
SWAR import correctly classifies pairing vs requested byes
Imports now consult AbsentRondes to distinguish player-requested byes from pairing-engine assignments, and bye-request configuration (allowed, points, max count, excluded rounds) is derived from SWAR fields. Future requested byes also materialise as half-point pairings so standings and Buchholz are correct.
Tournament listing pagination
The home page now honours ?page= and ?limit= query params, so clicking page 2 or 3 in the tournament listing actually loads the next page instead of reloading page 1.
Special results dropdown updates after selection
Picking a special result (e.g. forfeit) in the cockpit result editor now correctly updates the dropdown label instead of keeping the chevron showing.
May 2, 2026
Prize calculation page
Compute and display awarded amounts from the configured prize structure and current standings, applying place / shared / Hort splits and the cumulative rule. Team tournaments can also configure per-board prize lists alongside general and per-category lists.
Printable result sheets for individual tournaments
From the cockpit pairings page, organisers can now open a print-friendly view that renders one signed result sheet per pairing — mirroring the existing 'Print Boards' feature for team tournaments.
Reserve alignment mode for team tournaments
Choose how a reserve player slots into the lineup when a higher-board teammate is benched: slide every player up (default) or fill the benched player's exact board.
Waiting list section on participants page
Waitlisted registrations now render in their own dedicated section below the main participants list, with a matching statistics card so totals reconcile at a glance.
Swiss pairing fallback
When bbpPairings cannot find a valid Swiss pairing, the round now falls back to a deterministic last-resort algorithm instead of failing — and a persistent warning banner flags rounds where the fallback was used.
Payment column hidden for free tournaments
Payment column, badges, filter, and bulk payment actions are now hidden across cockpit and public participants pages when the tournament has no entry fee.
Baku acceleration for players added mid-tournament
Players who joined after round 1 used to receive no acceleration virtual points even when their seeding placed them in Group A. The acceleration history is now backfilled and recomputed before each round.
National rating preserved for players without FIDE rating
Players added by club who only have a national federation rating no longer end up with rating '—' in the cockpit — their national rating is now persisted correctly.
Confirmation dialogs restored on cockpit forms
Federation-refresh and merge-players forms used inline confirmation handlers that were silently dropped by the Content Security Policy. The prompts now appear reliably.
Withdrawn players counted on tournament listings
Withdrawn registrations are now included in the 'registered: N players/teams' count on tournament listings, alongside pending, confirmed and checked-in registrations.
Bulk check-in flips team member flags
In team tournaments, 'Check-in All' / 'Uncheck-in All' now also updates the per-board check-in flags, so the badge and per-board toggles reflect the bulk action.
Pairing byes vs requested byes
Players with a requested bye no longer appear twice on pairings pages. Pairing byes (odd-player-out) now display the awarded points from the tournament configuration, and the public pairings page now shows an absent-players section.
April 28, 2026
Player self check-in for individual tournaments
Registered players can now check themselves in — and undo — from a dedicated check-in page during the active check-in window.
Structured prize configuration
Organisers can define per-place prize amounts for the overall standings and each category, with split method (Place / Shared / Hort) and a cumulative flag. Public detail pages render the structure.
Publish all rounds at once in round-robin tournaments
In round-robin, the Publish action now releases every draft round in one click since the full schedule is generated upfront.
Localised home-screen install
The installable PWA now picks up the right name and labels in English, French and Dutch.
Quicker bye-request workflow
Round-absence now cycles Present → Bye Request → Absent so the more common scored bye is one click away, and Bye R<rounds> badges now sit next to Absent in the Players tab.
Faster team-tournament pairings
Team rating lookups are batched into a single query, removing per-team round-trips during pairing generation.
Accessibility and performance polish
Skip-to-main link, keyboard-focusable language switcher, screen-reader friendly error pages, deferred scripts and explicit image dimensions to reduce layout shift.
Check-in window times shown in your timezone
Cockpit check-in start/end fields now match the other datetime inputs and display in your local timezone.
Any integer Elo accepted in category rating inputs
Thresholds like 1801 or 2001 are now accepted in category and acceleration rating fields — no more 100-step rounding.
Bye request settings now save
The four bye-request configuration fields were silently dropped on save; they now persist correctly to the tournament.
Tournament types simplified
The tournament type list is now the canonical Open, Invitational and School. Legacy values (club, federation, championship) were migrated to Open.
TRF export honors per-tournament birth-date override
Birth-date overrides set on a tournament participant are now reflected in the exported TRF file, alongside the existing title/gender/country/name overrides.
Region-tagged language codes no longer crash
Visiting a page with ?lang=en-US (or similar) no longer crashes country dropdowns; the middleware now normalises to the supported primary subtag.
Pairing generation across check-in resets
Stale tournament pairing numbers are now cleared across registration statuses, so re-pairing after a multi-round check-in reset no longer aborts on a unique-constraint violation.
Participation-mode switch is admin-only and confirmed
Switching a tournament between team and individual modes is now restricted to global admins and prompts for confirmation before deleting registrations.
Self check-in respects privacy
Cross-user check-in attempts now return a generic error instead of revealing details about the target registration.
April 22, 2026
New Chesstide branding
Refreshed logo, favicons, og:image and PWA manifest, giving Chesstide a consistent look across browsers, mobile home screens and link previews.
Export tournaments to SWAR
Individual tournaments can now be exported as a SWAR-compatible CSV ZIP, making it easy for Belgian organizers to keep SWAR in sync with Chesstide.
Refresh player info from federation data
From the cockpit players page, staff can bulk-refresh or per-player refresh date of birth, gender, country and FIDE ID from the latest federation and FIDE data.
Better birth dates for Belgian players
Newly-created Belgian players now pick up their birth year from the federation directly, instead of falling through to a 1900 placeholder.
Gender labels in edit-player modal
The gender select in the cockpit edit-player modal now shows translated labels instead of raw translation keys.
April 20, 2026
Link federation and FIDE IDs from the cockpit
Tournament staff can now link a player's national federation and FIDE ID directly from the cockpit, with automatic FIDE profile lookup as a fallback when an ID is missing.
Haley acceleration for Swiss pairings
Swiss tournaments now support the Haley acceleration system in addition to Baku and manual acceleration.
Richer public participants page
The public participants list now supports sorting and category filtering, shows each player's club, and displays the FIDE federation instead of nationality.
Smarter player and registration search
Player and registration searches are now scoped to the tournament's country federation, so you see the right results for local tournaments.
Faster standings calculation
Tiebreak calculations (Buchholz, Sonneborn-Berger, etc.) are now significantly faster, especially on large tournaments.
Finer youth age categories in statistics
Tournament statistics now break down youth participants into more detailed age groups.
Keyboard navigation in staff search
Navigate the staff search dropdown in the cockpit using the keyboard.
Pairings refuse invalid generation
Pairings generation is now blocked when every TPN holder is absent, and late check-ins after round 4 are correctly assigned a TPN.
Cockpit staff search selection
Clicking a staff search result now correctly selects that person.
Profile refresh after linking chess account
The profile page now reloads properly after linking a chess profile, so the updated data is visible immediately.
Withdrawn participants counted correctly
Withdrawn players are now treated as registered in tournament statistics and the active filter.
Standings respect empty tiebreak config
When no tiebreaks are configured, standings no longer silently apply defaults.
Tournament duplication copies all settings
Duplicating a tournament now correctly copies all execution config fields, not just a subset.
Profile linking forms on production
Resolved an issue that prevented profile link and claim forms from submitting in production.
April 10, 2026
Categories and ranking
Tournaments now support categories with separate rankings, letting organizers group players by age, rating, or custom criteria.
Bye request support
Players can now request a bye (planned absence) and receive configurable points for that round.
My Tournaments filtering
The My Tournaments page now supports filtering by status and date, plus back navigation for easier browsing.
Getting Started Guide
A step-by-step guide to help new organizers get started with Chesstide.
Keyboard shortcuts for results
Use keyboard shortcuts to quickly encode game results in individual tournaments.
What's New page
A changelog page accessible from the help menu so users can discover recent changes.
Accelerated pairings
Tournaments now support Baku and manual acceleration systems for pairings.
Correct Buchholz and SB tiebreaks
Tiebreak calculations now follow FIDE Article 16 rules for unplayed games, fixing incorrect standings in some cases.