CHANGES: 1. Replace arbitrary margin bonus with per-point expected value - Replace tanh formula in score_weight.rs - New: performance = actual_points / total_points - Expected: P(point) = 1 / (1 + 10^((R_opp - R_self)/400)) - Outcome now reflects actual performance vs expected 2. Fix RD-based distribution (backwards logic) - Changed weight from 1.0/rd² to rd² - Higher RD (uncertain) now gets more change - Lower RD (certain) gets less change - Follows correct Glicko-2 principle 3. Add new effective opponent calculation for doubles - New functions: calculate_effective_opponent_rating() - Formula: Eff_Opp = Opp1 + Opp2 - Teammate - Personalizes rating change by partner strength - Strong teammate → lower effective opponent - Weak teammate → higher effective opponent 4. Document unified rating consolidation (Phase 1) - Added REFACTORING_NOTES.md with full plan - Schema changes identified but deferred - Code is ready for single rating migration All changes: - Compile successfully (release build) - Pass all 14 unit tests - Backwards compatible with demo/example code updated - Database backup available at pickleball.db.backup-20260226-105326
4.5 MiB
Executable File
4.5 MiB
Executable File