What this page covers
The calculation logic used inside the app today: rating updates after a match, how leaderboards sort, and how automatic suggestions pick the next match.
Modes and calculations
This page explains the current logic behind ELO updates, ranking modes (ELO, win rate, volume, form), and session matchmaking modes (ELO, random, variety, manual and pegboard).
The calculation logic used inside the app today: rating updates after a match, how leaderboards sort, and how automatic suggestions pick the next match.
Rankings shown in a club are club-specific views, but player ELO is stored on the user profile and can carry across clubs (global profile rating, not per-club ELO).
Recorded match results drive ratings. Leaderboard modes change how players are sorted, and matchmaking modes change how the next suggested pairing is chosen.
This is a product explanation page (not a formal rules document). It describes how the current app version calculates and sorts results so club organisers and players can understand what each mode is optimising for.
RacketRate has two separate things that users often call "modes":
Ranking modes change how the leaderboard is sorted. Matchmaking modes change how the next suggested court assignment is chosen.
Singles and doubles are handled separately in key places:
singles_elo_rating and doubles_elo_rating.In doubles, team strength for rating expectation is based on the average ELO of the two players on each side.
RacketRate uses an ELO-style model. The expected result is based on the rating difference between the two sides.
1 / (1 + 10^((ratingB - ratingA) / 400))1, loss = 0 (draws can be 0.5 in the core service model)delta = K * (actual - expected)1200 if no prior rating is available for the formatA lower-rated player beating a higher-rated player causes a larger rating change than an expected win.
Each player's singles ELO is updated after a recorded singles match.
Expected outcome uses each team's average ELO, then each player gets an individual delta.
RacketRate currently uses a higher K-factor for newer players in a format so ratings settle faster, then drops to a normal K-factor after the provisional period.
80 for the first 10 games in that format32 after thatMatch score margin also scales the ELO change:
0.51.01.25In practice, this means narrow wins usually move ratings less than clear wins, all else equal.
The same underlying match history can be sorted in different ways depending on the mode selected in the Rankings tab.
Mode
Sorted by current ELO descending, then win rate, then total matches, then display name.
Mode
Uses a confidence-adjusted win rate (Wilson lower bound) rather than raw percentage, so players with a tiny sample size are less likely to rank above players with stronger evidence.
A minimum matches threshold is applied (default is 3 in the UI and can be adjusted).
Mode
Sorted by matches played (highest first), then win rate, then ELO as tie-break support.
Mode
Uses recent results (last 5) plus current streak. Current form score uses weighted recent results
[5,4,3,2,1] and adds current_streak * 1.5.
Example: a player on a win streak with strong recent results will rank higher in Form even if their ELO rank is lower.
Matchmaking modes apply during live sessions when assigning the next court. All automatic modes build on a fairness-first queue ordering, then apply their own pairing logic.
Mode
No automatic calculation. An owner/admin chooses players directly for the court.
Mode
Pegboard mode is a queue-based picker. The person at the top of the queue picks from a top-N pool (admins can also pick on behalf of players).
No ELO scoring is used for the pick itself.
Mode
Not purely random. It still leans toward fairness by preferring players/teams with fewer games and more even game counts.
Mode
Prioritises reducing repeated pairings so players face or partner with a wider range of people across the session.
Mode
ELO mode uses a weighted scoring model for suggestions, combining fairness and match-quality signals. Default weight values are stored on the session (or use app defaults if unset).
Current implementation detail: singles applies a weighted pair score; doubles currently chooses between team partitions using a balance-focused score (team strength gap + games balance) on the top fair four players.
Automatic suggestions start from a fairness ordering that rewards players who have waited longer and played fewer games.
wait_seconds - (games_played * 120)Where multiple candidates score the same, the app uses tie-breaks (and sometimes cycling through equal top candidates) to avoid repeating the exact same suggestion every time.
We may tune weights, thresholds or sorting details as we improve matchmaking fairness and ranking quality. If we make meaningful changes to how results are calculated or presented, we will update this page.
Want to see it live?
Use the Rankings tab to switch sorting modes and create a session to compare matchmaking behavior.