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.
Table of Contents
Related Topics
Quick Actions