Elo Rating Matchmaking
The Elo system is a highly mathematical approach to skill rating, originally designed for chess and widely used in competitive video games. League Dispatcher uses a modified team-based Elo algorithm to create perfectly balanced matchups.
How it Works
Every player starts with a base rating (e.g., 1200). After every game, their rating adjusts based on the outcome and the relative skill of the opposing team.
The dispatcher first prioritizes players who haven't played yet today. Among waiting players, it clusters those who have been waiting the longest (within the configured time window). For each player in that cluster, it evaluates what court would look like if they were the lead — finding their closest-rated companions. The lead that produces the tightest Elo grouping wins, and that court is dispatched.
Each team's Elo is calculated as the average of all team members' individual ratings. After a game, both teammates receive the same rating adjustment based on the result and the opposing team's average Elo.
Dynamic Rating Adjustments
Over time, player ratings stabilize exactly at their true skill level.
When evenly matched teams play, the point exchange is balanced.
If a lower rated team pulls off an upset, they gain a large amount of points, and the highly rated team loses a large amount.
If a highly rated team beats a lower rated team, their rating goes up only slightly (it was an expected win).
Algorithm Parameters
These parameters are configured in Game Settings under the Elo Rating Settings section. They control how ratings evolve over time.
Initial Rating
The starting Elo rating for new players who haven't played any games yet. Default is 1200. All players begin at this level and their rating adjusts from there based on results.
K-Factor (New Players)
Controls how much a new player's rating changes after each game. A higher value (default 32) means ratings shift quickly, allowing new players to find their true level faster.
K-Factor (Experienced Players)
Controls rating volatility for experienced players. A lower value (default 16) stabilizes ratings so a single bad game doesn't dramatically change a veteran's ranking.
Experience Threshold
Number of games a player must play before switching from the new player K-factor to the experienced K-factor. Default is 20 games. Until then, their rating moves more aggressively.
Show Elo Rating
Controls whether Elo ratings are visible on player cards in the dashboard. Some recreational leagues prefer to hide ratings to keep the atmosphere friendly.
Score Margin Impact
Controls how much the score difference affects Elo changes. When set to 0 (default), all wins are treated equally. When enabled (e.g., 0.5), dominant wins like 21-5 produce larger rating swings than close wins like 21-19. Uses logarithmic scaling so the effect has diminishing returns — a 16-point margin is not 16 times more impactful than a 1-point margin. The zero-sum property is preserved: winners gain exactly what losers lose.
When to Use
Highly competitive leagues where tracking absolute skill and balancing every single match is the top priority. The league must be disciplined about entering scores for every game.
Example Scenario
A competitive tennis league where players want strict pairings so beginners aren't crushed by veterans. The system automatically groups the 1800-rated players together on Court 1, and the 1200-rated players together on Court 2, ensuring tight 21-19 games everywhere.