Definitions for all 54 statistics used across UpIce.
Number of games played.
Total goals scored.
Total assists (primary + secondary).
primary_assists + secondary_assistsFirst assists on a goal — the pass directly before the shot.
Second assists on a goal — the pass before the primary assist.
Total points (goals + assists).
goals + assistsTotal penalty minutes accumulated.
Goals scored for minus goals scored against while the player is on ice (all strengths).
plus_total - minus_totalGoals for minus goals against while on ice at even strength only.
Total time on ice displayed as MM:SS.
Average time on ice per game played.
Total time on ice expressed as a decimal minutes value.
toi_seconds / 60Total number of shifts taken during the season.
Average shift length in minutes.
toi_seconds / shifts / 60Total shots on goal — shots that would have entered the net without the goalie.
Goals divided by shots on goal. Measures how often a player converts a shot into a goal.
goals / sog × 100Saves divided by shots faced. Core goalie efficiency metric.
saves / shots_against × 100Share of total shot attempts (for vs against) while on ice. Above 50% means the team generates more shot attempts than it allows. Primary possession proxy.
cf / (cf + ca) × 100Unblocked shot attempt share. Similar to CF% but excludes blocked shots.
ff / (ff + fa) × 100Goals scored per 60 minutes of ice time. Normalizes scoring rate across players with different ice time.
goals / toi_minutes × 60Assists per 60 minutes of ice time.
assists / toi_minutes × 60Points per 60 minutes of ice time. Best single-number rate stat for offensive output.
points / toi_minutes × 60Shots on goal per 60 minutes of ice time.
sog / toi_minutes × 60Successful zone entry denials per 60 minutes. Measures how often a defender prevents clean zone entries.
zone_ent_denials_successful / toi_seconds × 3600Zone entry denials (forced dumpins) per 60 minutes. Proxy for defensive suppression at the blue line.
zone_ent_denials / toi_seconds × 3600Total shot attempts for while on ice: goals + shots on goal + missed shots + blocked shots.
Total shot attempts against while on ice.
Unblocked shot attempts for while on ice (goals + shots on goal + missed shots).
Unblocked shot attempts against while on ice.
Expected goals based on shot quality, location, and type. Measures shot value independent of goalie.
Expected goals for while on ice — sum of shot quality generated.
Expected goals against while on ice — sum of shot quality allowed.
Share of expected goals for while on ice. xGF / (xGF + xGA) × 100.
Games won as the starting goalie.
Games lost in regulation as the starting goalie.
Games lost in overtime or shootout.
Average goals allowed per 60 minutes of play. Lower is better.
goals_against / toi_minutes × 60Total shots faced as goalie.
Total saves made as goalie.
Total goals allowed as goalie.
Games where the goalie allowed zero goals.
Goals prevented above average based on shot quality (xGA − GA). Positive = above-average goalie performance.
xGA - GATotal goals scored by the team.
Goals for minus goals against. A quick measure of team quality.
goals_for - goals_againstWins divided by games played.
wins / games_playedLeague standings points. Win = 2 pts, OT/SO Loss = 1 pt, Regulation Loss = 0 pts.
Games ending in a tie or requiring overtime.
Faceoff wins divided by total faceoffs taken.
fo_wins / (fo_wins + fo_losses) × 100Total faceoffs won.
Total faceoffs lost.
Completed passes divided by pass attempts.
pass_completed / pass_attempts × 100Turnovers that gave possession to the opposing team.
Turnovers won from the opposing team.
Composite score (0–100) measuring quality of defensive zone exits. Combines controlled exit rate, success rate, and under-pressure success rate.
0.40 × zone_ext_control_pct + 0.30 × zone_ext_success_pct + 0.30 × zone_ext_controlled_success_pct