PickleBALLER/docs/FORMULAS.md
Split 4e8c9f53bf Add comprehensive LaTeX documentation for rating system v2.0
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
2026-02-26 11:02:35 -05:00

141 lines
4.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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 | 4002400 | Skill estimate. 1500 = average |
| **Rating Deviation** | d | 30350 | Uncertainty. Lower = more confident |
| **Volatility** | σ | 0.030.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 (13001700 typical)
- RD: 50100 (fairly confident)
- Volatility: 0.040.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 3050 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 12 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.**