Scoring
Points are calculated automatically when a match is confirmed. Here's exactly how.
The formula
Winner
20 + game_diff + upset_bonus (max 45)
Loser
5 + close_loss (max 12)
game_diff = winner games − loser games
upset_bonus = max(0, loser rank − winner rank) × 0.5
close_loss = max(0, 6 − game_diff)
Why this formula?
- Game difference is uncapped — a blowout feels different from a war, and the points reflect that.
- Upset bonus rewards climbing. Beating someone ranked far above you pays significantly more than beating a peer.
- Close-loss credit rewards competitive matches even in defeat — taking someone to 7-6 is worth more than losing 6-0.
- The formula is intentionally simple. No hidden multipliers, no Glicko ratings — you can calculate your points in your head.
Examples
| Match | Winner | Loser |
|---|---|---|
| #2 beats #1, 6-4 6-3 | 25.5 pts | 6 pts |
| Even players, 7-6 7-6 war | 22 pts | 9 pts |
| Top dog blowout 6-0 6-0 | 33 pts | 5 pts |
| Upset: #20 beats #5, 6-3 6-4 | 32.5 pts | 6 pts |
| Big upset: #40 beats #1, 6-4 6-2 | 45 (cap) pts | 5 pts |
Special cases
- Default win (opponent no-show): winner gets 15 pts, loser gets 0.
- Unranked opponent (no matches yet this season): treated as bottom rank for upset bonus calculation.
Standings
- Standings are based on points earned in the last 90 days.
- Points update live — the moment a match is confirmed, the standings reflect it.