Penalty Kill Analytics

Beginner 10 min read 0 views Nov 27, 2025
Penalty kill analytics evaluate defensive performance during shorthanded situations to minimize opponent scoring. ## PK Effectiveness Metrics **Python Analysis:** ```python import pandas as pd import numpy as np # Penalty kill data pk_data = pd.DataFrame({ 'opponent': ['Team A', 'Team B', 'Team C', 'Team D'], 'pk_opportunities': [5, 4, 6, 3], 'goals_against': [1, 0, 2, 1], 'shots_against': [10, 8, 14, 7], 'zone_clears': [8, 10, 9, 6] }) # Calculate PK percentage pk_data['pk_pct'] = ((pk_data['pk_opportunities'] - pk_data['goals_against']) / pk_data['pk_opportunities']) * 100 pk_data['save_pct'] = ((pk_data['shots_against'] - pk_data['goals_against']) / pk_data['shots_against']) * 100 pk_data['clear_rate'] = pk_data['zone_clears'] / pk_data['shots_against'] print("PK Performance:") print(pk_data[['opponent', 'pk_pct', 'save_pct', 'clear_rate']]) ``` **R Analysis:** ```r # PK structure analysis library(dplyr) pk_formations <- data.frame( structure = c("Diamond", "Box", "Triangle", "Wedge"), shots_against_per_min = c(1.8, 2.1, 1.9, 2.0), goals_against_per_min = c(0.12, 0.18, 0.14, 0.15), zone_time_pct = c(65, 58, 62, 60) ) # Calculate effectiveness score pk_formations$effectiveness <- (pk_formations$zone_time_pct / pk_formations$goals_against_per_min) pk_formations <- pk_formations %>% arrange(desc(effectiveness)) print(pk_formations) ``` ## Key Focus Areas - Shot suppression and blocking lanes - Zone exit efficiency and timing - Faceoff win percentage in defensive zone - Personnel matchup optimization

Discussion

Have questions or feedback? Join our community discussion on Discord or GitHub Discussions.