Just another WordPress site


Home | All Situations | 5-on-5 | Special Teams | Context | Goalies | Glossary

If you’re new to either hockey analytics or my Marlies-specific work, you’re likely going to be left a little confused by some of the metrics used in this portal. Fret not, though: here’s a handy guide to everything that’s going on in this little corner that goes beyond the basic box score.

All Situations

  • TOI/ATOI: Time on Ice isn’t exactly an uncommon concept in the hockey world, but this isn’t regular time on ice. Believe it or not, the American Hockey League still doesn’t publicly release that data. While I’m not tracking everyone’s time by hand, the play-by-play format I use to log events gives me shift totals, that can be cross-referenced with the team ice-time to create average shift lengths at even strength, on the powerplay, and on the penalty kill. These change over time, so you might see the totals fluctuate slightly, though this should stow to a crawl as the season progresses and the sample is bigger. ATOI is a player’s average time on ice per game played. Time is displayed in decimal format, rather than mm:ss (for example: 13.5 would be equal to 13:30).
  • PD: Keeping it simple here, this is Penalties Drawn.
  • GS/60: This is Game Score, one of my favourite community creations. Dom Luszczyszyn crafted it as a single-game model back in 2016 for NHL games, but there are other applications for it as well. Ours slightly differ in the sense that I do not track individual shot blocks, and as such, they are not included in my formula. This total number is averaged on a Per 60 minute basis, using the time on ice estimates we’ve got.
  • SOG/60: Similarly, this estimates how many shots a player is taking per hour. Individual shot generation is one of the more reliable “basic” stats in the AHL, as it shows that a player is finding his own opportunities. A great number doesn’t necessarily mean you’ll be an NHLer, but it’ll be hard to get there without at least a good one.


  • Corsi For/Against (CF/CA): Corsi, perhaps the most famous of the “advanced” stats, is community shorthand for attempted shots. Shot attempts are any shot that either lands on goal, misses the net, or is blocked. On-ice Corsi is most popularly used as a proxy for possession and game flow; these numbers are how many attempts the player has been on the ice for and against.
  • Corsi For Percentage (CF%): Put simply, this is the percentage of the shot attempts that come out in the player’s favour. If a player is on the ice for 6 Marlies shot attempts for, and 4 opponent shot attempts against, they’ve accrued a 60% Corsi-for.
  • Team-Relative Corsi (CF% Rel): Here, we stack up the player’s Corsi-For Percentage against the team’s percentage with them off of the ice. The goal of this is to gain more insight on who is driving the percentages upwards and downwards; in some cases, being a 45% player on a 40% team is more impressive than being a 60% player on a 65% team.
  • CF/CA60: You probably get the idea at this point: It’s how many on-ice shot attempts are earned and allowed in an hour’s worth of hockey for that player.
  • PTS/60: Same idea, but 5-on-5 points.
  • OZS%: This uses my play-by-play data (I start shifts when at least one person from the previous group has changed and either a shot is attempted or a faceoff its taken) to see where players start their shifts. Specifically, it creates a ratio of shifts started in the offensive zone to shifts started in the defensive zone. In some cases, this can shed light on results, but it’s best use is simply to see who the coaches trust where.
  • Sel%: This is a somewhat proprietary number – it’s a ratio of shifts started at the faceoff dot versus a line change between whistles. A higher percentage in a small sample usually means a coach is trying to get a feel for you, while a higher percentage in a big sample usually shows some form of trust. A low percentage often just means you’re a relatively roleless player.

Special Teams

  • CF/CA60: Similar to what we described above. For simplicity’s sake, we’re only looking at Shot Attempts for on the Powerplay, and Shot Attempts against on the Penalty Kill.
  • PPU/PKU%: On top of tracking ice time, I also have “unit” percentages. This is a percentage of a player’s games where the coaching staff has distinctly placed this player on either a Powerplay or Penalty Kill unit. This is to weed out anomalies (say, a someone playing a penalty kill because someone from the unit is the one in the penalty box) and identify patterns in my personal player logs more than anything, but I’ve included it nonetheless.


  • OZ/NZ/DZ: These are the zones where a player starts their shift. Note that these starts only happen on faceoffs, otherwise they are..
  • OTF: On the Fly shifts. These are any shifts where the group changes mid-play.
  • Linemate A/B: I’ve included the top two most frequent linemates/pairmates of every player on the team, just to give an idea of how they’ve gotten to where they are.


  • GS: Games Started. Pretty simple.
  • QS/QS%: Quality Starts. This is when a goaltender starts the game and finishes with a save percentage above the AHL league average, which historically is about 0.915.
  • RBS/RBS%: Really Bad Starts. This is when a goaltender starts the game and finishes with a save percentage under 0.850.