Skip to main content
Tournaments Guide What's New

What's New

Latest updates and improvements to Chesstide.

May 12, 2026

Improved

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.

Improved

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.

Improved

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.

Fixed

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.

Fixed

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.

Fixed

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

New

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.

New

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.

New

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.

New

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.

Improved

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.

Improved

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.

Improved

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.

Improved

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

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.

Fixed

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).

Fixed

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.

Fixed

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.

Fixed

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

New

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.

New

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.

Improved

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.

Improved

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.

Improved

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.

Improved

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.

Fixed

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.

Fixed

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.

Fixed

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.

Fixed

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

New

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.

New

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.

Improved

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.

Improved

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.

Fixed

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.

Fixed

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.

Fixed

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.

Fixed

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.

Fixed

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

New

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.

New

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.

New

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.

New

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.

New

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.

Improved

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.

Fixed

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.

Fixed

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.

Fixed

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.

Fixed

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.

Fixed

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.

Fixed

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

New

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.

New

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.

Improved

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.

Improved

Localised home-screen install

The installable PWA now picks up the right name and labels in English, French and Dutch.

Improved

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.

Improved

Faster team-tournament pairings

Team rating lookups are batched into a single query, removing per-team round-trips during pairing generation.

Improved

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.

Fixed

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.

Fixed

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.

Fixed

Bye request settings now save

The four bye-request configuration fields were silently dropped on save; they now persist correctly to the tournament.

Fixed

Tournament types simplified

The tournament type list is now the canonical Open, Invitational and School. Legacy values (club, federation, championship) were migrated to Open.

Fixed

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.

Fixed

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.

Fixed

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.

Fixed

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.

Fixed

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

New Chesstide branding

Refreshed logo, favicons, og:image and PWA manifest, giving Chesstide a consistent look across browsers, mobile home screens and link previews.

New

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.

New

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.

Improved

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.

Fixed

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

New

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.

New

Haley acceleration for Swiss pairings

Swiss tournaments now support the Haley acceleration system in addition to Baku and manual acceleration.

Improved

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.

Improved

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.

Improved

Faster standings calculation

Tiebreak calculations (Buchholz, Sonneborn-Berger, etc.) are now significantly faster, especially on large tournaments.

Improved

Finer youth age categories in statistics

Tournament statistics now break down youth participants into more detailed age groups.

Improved

Keyboard navigation in staff search

Navigate the staff search dropdown in the cockpit using the keyboard.

Fixed

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.

Fixed

Cockpit staff search selection

Clicking a staff search result now correctly selects that person.

Fixed

Profile refresh after linking chess account

The profile page now reloads properly after linking a chess profile, so the updated data is visible immediately.

Fixed

Withdrawn participants counted correctly

Withdrawn players are now treated as registered in tournament statistics and the active filter.

Fixed

Standings respect empty tiebreak config

When no tiebreaks are configured, standings no longer silently apply defaults.

Fixed

Tournament duplication copies all settings

Duplicating a tournament now correctly copies all execution config fields, not just a subset.

Fixed

Profile linking forms on production

Resolved an issue that prevented profile link and claim forms from submitting in production.


April 10, 2026

New

Categories and ranking

Tournaments now support categories with separate rankings, letting organizers group players by age, rating, or custom criteria.

New

Bye request support

Players can now request a bye (planned absence) and receive configurable points for that round.

New

My Tournaments filtering

The My Tournaments page now supports filtering by status and date, plus back navigation for easier browsing.

New

Getting Started Guide

A step-by-step guide to help new organizers get started with Chesstide.

New

Keyboard shortcuts for results

Use keyboard shortcuts to quickly encode game results in individual tournaments.

New

What's New page

A changelog page accessible from the help menu so users can discover recent changes.

New

Accelerated pairings

Tournaments now support Baku and manual acceleration systems for pairings.

Fixed

Correct Buchholz and SB tiebreaks

Tiebreak calculations now follow FIDE Article 16 rules for unplayed games, fixing incorrect standings in some cases.