Golf Power Index
Match Predictor
Live Tournament Projection
World ChampionshipOverall GPI
Overall GPI uses the Ranked League rating as the baseline, then applies a match-count confidence-weighted tournament adjustment after translating tournament performance onto the Ranked League scale. Players without a Ranked rating receive a provisional GPI from tournament rating and tournament strength of schedule.
-
Eligibility
if tournament_matches < 3: total_gpi = ranked_rating -
Standardization
ranked_z = (ranked_rating - ranked_mean) / ranked_stdtournament_z = (fitted_tournament_rating - tournament_mean) / tournament_stdtournament_delta_z = tournament_z - ranked_z -
Delta Confidence
progress = min(1, tournament_matches / 10)tournament_delta_confidence = progress² * (3 - 2 * progress) -
Adjustment
if tournament_delta_z >= 0: tournament_delta = tournament_delta_confidence * 120 * tanh(tournament_delta_z / 1.5)if tournament_delta_z < 0: tournament_delta = negative_evidence_confidence * tournament_delta_confidence * 60 * tanh(tournament_delta_z / 1.5)negative_evidence_confidence = evidence from tournament losses to lower-rated tournament opponents -
Total
total_gpi = ranked_rating + tournament_delta -
Provisional
if tournament_matches < 3: provisional_gpi = no_ratingtournament_sos = average opponent tournament ratingprovisional_gpi = 0.75 * tournament_rating_on_ranked_scale + 0.25 * tournament_sos_on_ranked_scale
Ranked League Rating
Ranked League GPI is an opponent-aware composite built from the full ranked sample, peak performance, and recent player-aware form.
-
Composite
ranked_rating = 0.50 * full_history_pl + 0.25 * peak_pairwise_elo + 0.25 * recent_form_pl -
Full History
full_history_pl = opponent-aware weighted pairwise Plackett-Luce over all tracked Ranked League matches -
Potential
peak_pairwise_elo = highest weighted pairwise Elo reached during the ranked replay -
Recent Form
recent_form_pl = opponent-aware weighted pairwise Plackett-Luce from each player's last 100 Ranked League matchesrecent_form_shrinkage_matches = 0recent_form_pl = z_score_normalize(recent_form_pl, recent_distribution, full_history_distribution)if ranked_matches < 100: recent_form_pl = full_history_pl -
Lobby Weight
match_weight = min(3, 1 + 0.7 * log2(player_count - 1))pair_weight = match_weight / (player_count - 1)
Tournament Rating
Tournament GPI is independent from the Ranked League model. It uses fitted flat Plackett-Luce ratings from solo 1v1 tournament results, with each tournament match counted as twice the weight of a Ranked League match. Match count controls the Tournament GPI delta applied to Overall GPI.
-
Model
tournament_rating = flat Plackett-Luce rating from tracked solo 1v1 tournament matches -
Match Weight
tournament_weighted_matches = tournament_matches * 2 -
Confidence
tournament_rating = fitted_tournament_rating -
Distribution Scale
displayed_tournament_rating = base_rating + 1.5 * (tournament_rating - base_rating) -
Recency
recency_weight = none