DOCUMENTATION ADDED:
1. docs/rating-system-v2.tex (681 lines, ~9,000 words)
- Complete technical report on system redesign
- Includes: introduction, mathematical foundation, v1 review
- Motivation for all 4 changes with detailed explanations
- Complete v2.0 formulas with clear notation
- Worked example: concrete doubles match (v1 vs v2)
- Discussion of advantages, edge cases, future work
- Professional typesetting for blog/website publication
- 36 subsections with table of contents
2. docs/README.md
- How to compile the LaTeX document
- File overview and contents summary
- Compilation instructions for macOS, Linux, Docker, Overleaf
- Publishing guidance (HTML conversion, blog extraction)
- Citation format for references
3. docs/FORMULAS.md
- Quick reference card for all formulas
- Match outcome calculation (singles & doubles)
- Effective opponent examples
- RD distribution formula with worked examples
- Expected point win probability table
- Parameter meanings and initial values
- Summary of v1 vs v2 changes
- FAQ section
STATUS: Ready for publication ✅
- LaTeX file is syntactically correct
- All formulas verified against code
- Example calculations match implementation
- Suitable for recreational audience + technical rigor
- Can be compiled to PDF or converted to HTML/blog format
141 lines
4.8 KiB
Markdown
141 lines
4.8 KiB
Markdown
# Pickleball Rating System v2.0 - Quick Reference
|
||
|
||
## Match Outcome Calculation
|
||
|
||
### Singles Match
|
||
```
|
||
Outcome = Points Scored by Player / Total Points in Match
|
||
```
|
||
|
||
**Example:** Player scores 11 points, opponent scores 9 points
|
||
- Total = 20 points
|
||
- Outcome = 11 / 20 = 0.55
|
||
|
||
### Doubles Match: Effective Opponent
|
||
|
||
```
|
||
Effective Opponent Rating = Opponent 1 Rating + Opponent 2 Rating - Teammate Rating
|
||
```
|
||
|
||
**Example:**
|
||
- Opponents: 1500, 1500
|
||
- Teammate: 1500
|
||
- Effective: 1500 + 1500 - 1500 = 1500 (neutral)
|
||
|
||
**With strong teammate:**
|
||
- Opponents: 1500, 1500
|
||
- Teammate: 1600
|
||
- Effective: 1500 + 1500 - 1600 = 1400 (weaker-seeming opponent)
|
||
|
||
**With weak teammate:**
|
||
- Opponents: 1500, 1500
|
||
- Teammate: 1400
|
||
- Effective: 1500 + 1500 - 1400 = 1600 (stronger-seeming opponent)
|
||
|
||
## Rating Update Distribution (Doubles Only)
|
||
|
||
After computing the team's rating change (via Glicko-2), distribute to each partner:
|
||
|
||
```
|
||
Change for Player 1 = Team Change × (RD₁² / (RD₁² + RD₂²))
|
||
Change for Player 2 = Team Change × (RD₂² / (RD₁² + RD₂²))
|
||
```
|
||
|
||
**Example:** Team gains +30 points
|
||
- Alice: RD = 100 (established)
|
||
- Bob: RD = 150 (newer)
|
||
|
||
```
|
||
Total Weight = 100² + 150² = 10,000 + 22,500 = 32,500
|
||
|
||
Change for Alice = +30 × (10,000 / 32,500) ≈ +9.2
|
||
Change for Bob = +30 × (22,500 / 32,500) ≈ +20.8
|
||
```
|
||
|
||
Bob gets more despite the team's shared success because his rating is less certain.
|
||
|
||
## Expected Point Win Probability
|
||
|
||
For a player rated R_player vs opponent rated R_opponent:
|
||
|
||
```
|
||
P(win point) = 1 / (1 + 10^((R_opponent - R_player) / 400))
|
||
```
|
||
|
||
**Examples:**
|
||
|
||
| Player | Opponent | Difference | P(Win Point) |
|
||
|--------|----------|-----------|--------------|
|
||
| 1500 | 1500 | 0 | 0.500 (50%) |
|
||
| 1600 | 1500 | -100 | 0.640 (64%) |
|
||
| 1400 | 1500 | +100 | 0.360 (36%) |
|
||
| 1700 | 1500 | -200 | 0.759 (76%) |
|
||
|
||
## Glicko-2 Parameter Meanings
|
||
|
||
| Parameter | Symbol | Range | Meaning |
|
||
|-----------|--------|-------|---------|
|
||
| **Rating** | r | 400–2400 | Skill estimate. 1500 = average |
|
||
| **Rating Deviation** | d | 30–350 | Uncertainty. Lower = more confident |
|
||
| **Volatility** | σ | 0.03–0.30 | Consistency. Higher = more erratic |
|
||
|
||
### Initial Values for New Players
|
||
- Rating: 1500
|
||
- RD: 350 (very uncertain)
|
||
- Volatility: 0.06
|
||
|
||
### After ~30 Matches (Established)
|
||
- Rating: varies (1300–1700 typical)
|
||
- RD: 50–100 (fairly confident)
|
||
- Volatility: 0.04–0.08
|
||
|
||
## V2 Changes Summary
|
||
|
||
### What Changed from V1
|
||
|
||
| Aspect | v1.0 | v2.0 |
|
||
|--------|------|------|
|
||
| **Match Outcome** | Arbitrary tanh(margin) formula | Performance ratio (points/total) |
|
||
| **Expected Difficulty** | Ignored | Accounted for (point-based Elo) |
|
||
| **Team Rating** | Simple average | Not used directly |
|
||
| **Effective Opponent** | Not personalized | R_opp1 + R_opp2 - R_teammate |
|
||
| **RD Distribution** | weight = 1/d² | weight = d² (FIXED) |
|
||
| **Effect of high RD** | Slower updates (wrong) | Faster updates (correct) |
|
||
| **Ratings** | Separate singles/doubles | Prepared for unified rating |
|
||
|
||
### Why This Matters
|
||
|
||
1. **More Fair to Uncertain Ratings** — New/returning players now update faster, converging to their true skill more quickly.
|
||
|
||
2. **Accounts for Teammate Strength** — In doubles, carrying a weak partner is rewarded; being carried by a strong partner is appropriately devalued.
|
||
|
||
3. **Performance Measured vs Expectations** — A 1500-rated player barely beating a 1400-rated player is underperformance; the system now reflects that.
|
||
|
||
4. **Theoretically Grounded** — Every formula has a clear mathematical justification, not just "this seemed reasonable."
|
||
|
||
## Common Questions
|
||
|
||
### Q: Why does my doubles rating change seem weird?
|
||
|
||
A: In v2.0, your effective opponent depends on your teammate's rating. Winning with a strong teammate is less impressive than winning with a weak teammate (even if the score is identical).
|
||
|
||
### Q: Should I play more singles or more doubles?
|
||
|
||
A: In v1.0, they were separate. In v2.0 (coming), they'll be consolidated into one rating. Either way contributes equally to your skill estimate.
|
||
|
||
### Q: What if my rating is really high/low?
|
||
|
||
A: The system works at any rating. The formulas scale appropriately. You might face extreme "effective opponents" in doubles with huge rating imbalances, but that's realistic.
|
||
|
||
### Q: How long until my rating stabilizes?
|
||
|
||
A: Roughly 30–50 matches to reach RD ~100. After that, rating changes slow down (you're confident in the estimate) but still respond to actual performance.
|
||
|
||
### Q: Can I lose rating by winning?
|
||
|
||
A: Only in the (rare) case where you dramatically underperform expectations. For example, a 1600-rated player barely beating a 1300-rated player might lose 1–2 points because they underperformed what a 1600-rated player should do against a 1300-rated player.
|
||
|
||
---
|
||
|
||
**See `rating-system-v2.tex` for the complete technical report with derivations and detailed examples.**
|