Win % Attribution Methodology

How Full Flight VHL assigns a win percentage to an individual skater or goalie.

Working Model

Each player’s Win % is a win probability added (WPA) score derived from their complete stat breakdown. Rather than counting team results, we estimate how many wins the player contributed to through their on-ice actions.

Step 1: Coefficient Generation

Win coefficients are calculated using the Analyze_Wins.py script by correlating individual statistics with team wins across all VHL and VHLM regular season and playoff data:

Coefficient = correlation(stat, team_wins)

Positive stats (goals, assists, hits, etc.) use positive correlations, while negative stats (penalties, giveaways) use negative correlations

Step 2: Win Probability Added Calculation

The Win_Probability_Added.py script applies these coefficients to season data using a sophisticated weighting system:

Player Score = Σ (player_stat / team_total_stat) × coefficient

Category WPA = team_wins × category_weight × (player_score / team_score_total)

Scores are adjusted to ensure non-negative values and scaled so team totals equal actual wins

Key Weighting Parameters

Final win percentages are normalized so each team's player contributions sum to exactly 100% of their wins, distributed proportionally across skaters and goalies.

Statistical Categories

Skater Stats (Positive Correlation)

  • G: Goals
  • A: Assists
  • +/-: Plus/Minus
  • HIT: Hits
  • SHT: Shots
  • SB: Shot Blocks
  • PPG/PPA: Power Play Goals/Assists
  • PKG/PKA: Penalty Kill Goals/Assists
  • SCHT: Successful Hits
  • TA: Takeaways
  • PRET: Puck Retrievals
  • PI: Pass Interceptions

Skater Stats (Negative Correlation)

Goalie Stats

Positive:

  • PCT: Save Percentage
  • GA: Goals Against
  • SA: Shots Against
  • SAR: Shots Against Rate
  • PS%: Penalty Shot Save %
  • PSA: Penalty Shots Against

Negative:

  • PIM: Penalty Minutes

Dataset Notes

Technical Implementation Details

Score Adjustment Process

Raw player scores undergo several adjustments to ensure meaningful WPA values:

Category Weighting Algorithm

Skater and goalie contributions are balanced using a hybrid approach:

Score Weight: Category's share of total team performance score

Player Weight: Category's share of total roster size

Blended Weight: 35% score + 65% player count

Final weights are raised to 0.75 power and renormalized

Output Normalization

Individual win percentages are calculated using precise fractional distribution:

Future Enhancements

The analytics team is evaluating the following ideas: