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

4.8 KiB
Raw Permalink Blame History

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.