Friday, June 30, 2006

Quality of Opposition at Even Strength

An important thing obviously. It's a lot easier to look good and put up results against Steve Ott than it is against Mike Modano, I think we all agree on that.

Below are the results of a simple metric for giving an indication of this. It is the sum of the EV+/-'s, and EVicetimes of every player on the ice for every goal scored. Then multiplied by the EVicetime, and then x10 to make it easier on the eyes.

If you are comfortable with matrices, and are a linear thinker ... this sort of stuff is very easy to do.

Empty net goals were ignored in this script. 4on4 goals are included.

My code searches only by jersey number, so in situations where more than one player used the same number (Cross, Tarnstrom, D. Smith, Spacek) ... I cannot separate them out without real work, so I ignored them instead.

Player's roles and linemates change through the season, sometimes even game to game, this should come close to catching all of that though. The fewer the minutes ... the more room for error. A few goalposts here and there, a soft goal here and there, and the numbers can get skewed a bit. Overall it should be pretty close, but this should be regarded as a reasonable indication only.

Quality of linemate is not considered here, nor has the result been parlayed through to account for the fact that good players that play against other good players a lot hurt each others difficulty of icetime numbers. This is just a simple metric that is repeatable by anyone with even modest programming and math skills.

Also, if I've done this right then you should be able to click on the image to enlarge it.

So, if you're the type of person that notices the matchups ... how does this mesh with your memory of events?


Blogger Steven said...

This was the regular season right Vic?

Pretty much matches my memory. Still boggles my mind how they used Hemsky... him going head to head against the toughest opposition. They must have really been hoping it improves him as an all around player.

I'm also pretty surprised about the difference between Smyth and Horcoff. I always thought they were pretty much joined at the hip for all of the games this year. Guess I was wrong... god damn...
that Horc really is a terrific player... hopefully his agent doesn't see any of this when they negociate his contract this year :)

6/30/2006 3:30 pm  
Anonymous nwtoilerfan said...

Not too suprising except for Stoll... boy did MacT shelter him!

6/30/2006 4:04 pm  
Blogger mudcrutch79 said...

Dvorak would probably look a lot better with a strength of linemate thing that was done properly so as to account for the fact that his guys ran up numbers on weak lines. I assume his number is what it is because he was all over the map.

6/30/2006 4:18 pm  
Anonymous Anonymous said...

Interesting stuff. Any chance you could separate out MAB with and without Pronger? I'd be interested in those... Both from what MAB did to Pronger's numbers, and what Pronger did to MAB's...

- Rod

6/30/2006 4:58 pm  
Blogger RiversQ said...

A couple of things:

League average is 12 right? Granted that means about as much a league average salary, but still, the benchmark isn't zero.

I notice these numbers seem quite different from the 03/04 ones. I guess you've adjusted your method or were the previous ones just benchmarked at zero? I'd like to compare them.

6/30/2006 8:46 pm  
Anonymous MikeP said...

Nothing terribly surprising except for Hemsky. No Centre Ice this year so I didn't see most of the games (just Saturday night games, mostly). Still, that's very surprising to me, considering how brutal Hemsky can look in his own end sometimes. He's a lot better this season than last NHL season though, and I guess the RS play came through in the playoffs cos ISTR he got some pretty stiff ice time there too.

6/30/2006 9:23 pm  
Anonymous MikeP said...

So much for Stoll stepping right in as a checking centre like the HFBoarders had it a couple of years ago though, eh? ;)

6/30/2006 9:25 pm  
Blogger hffpff said...

Vic, very cool stuff. I'm interested in this measure myself so it's nice to get a glimpse of your methodology.

Looking at the way the formula is described:

It is the sum of the EV+/-'s, and EVicetimes of every player on the ice for every goal scored. Then multiplied by the EVicetime, and then x10 to make it easier on the eyes.

I'm not sure that I fully understand the description.

I assume that:
a) all EV+/- numbers refer to the seasonal tally
b) all EVicetimes refer to the seasonal per game avg (i.e. instead of the number from the game when the goal is scored)

So for example, let's say that Pronger is on the ice for a goal and the following opposition players are on the ice with these hypothetical EV+/- and EVicetime numbers:

P1: +15, 9 min
P2: +14, 8
P3: +13, 7
P4: +12, 12
P5: +11, 11

Therefore, applying your formula, we have:

sum of EV+/- = 15 + 14 + 13 + 12 + 11 = 65

sum of EVicetime = 9 + 8 + 7 + 12 + 11 = 47 (or perhaps you use fraction of total time here?)

number for this goal event = (65 + 47) * 47 * 10 = 52640

Therefore, Pronger's metric for the entire season would then be the sum of each of these goal events?

Is my interpretation anywhere close? Somehow, I feel like I'm missing the mark by about several continents...

6/30/2006 11:27 pm  
Blogger Vic Ferrari said...


Along the right vein, but not really. I guess I didn't explain myself very well.

Icetimes would be each player's total EV icetime for the season.

And I didn't add them up one game at a time. I just ran a script to build a 3100 x 3100 array for all events. Called it "A" Each row and column represents a team number and jersey number. So both row 1244 and column 1244 (team #12, jersey #44) belong to Pronger. And if, over the course of the season Pronger had been on the ice for 3 goals at the same time as Selanne was on the ice ... then the value of A(1244,0113) is 3. And so is the value of A(0113,1244). Once you have that then life is easy. Build a one diimensional array of icetime and call it "B" for example: So B(1244) would be 1291, because that's the number of minutes that Pronger played at even strength. Then just multiply the matrices.

Of course you can build "A" around head-to-head icetime, just EV+'s, or whatever. And you can make "B" anything; EV-, Wilson#, height, eye colour, goals ... whatever.

That's very simple math, a simple framework. The important thing is to look at the things that matter imo.

7/01/2006 12:41 am  
Blogger Vic Ferrari said...


Ya, the regular season. And agreed on Hemsky, I just couldn't figure that out at all. The one that killed me though was the Minny game, they'd lost 3 in a row after acquiring Rolo and were desparate. So they are up by a goal, 5 minutes to go in the 3rd ... MacT send Hemsky over the boards, long shift too, then he's out there again. I bet he played about half of it. On what planet does that make sense. The game a bit before where he kept throwing Hemsky at Thornton wqhen he could have avoided it, like at the start of periods ... madness, and it didn't work out well. I think he benched Hemmer late in the 3rd in that one, in favour of Laraque of all people ... granted the game was out of reach.

Mad shit, the way Hemsky was handled. I've stopped trying to figure out Mactavish's thinking on that.

BTW: Just by memory, borcoff came out for a bunch of key defensive zone draws all season. And came on when the Stoll line was due for a Dzone draw as well, at least until they got the puck out of their own end ... that sort of thing hurts all your numbers except for the "tough minutes" type. :-) Hemsky played with both Peca and Stoll for short stretches as well.

7/01/2006 12:48 am  
Blogger Vic Ferrari said...


I don't remember what I posted on HF, but it would follow this same form, or something close. Probably just multiplied it by a different number for the "easier on the eyes" factor.

I multiplied this through by the player's icetime too. Which doesn't make much difference, but credits the guys who logged a lot of minutes. It's not an exact science. :-) If you don't do that ... then it doesn't change much. Horcoff edges comfortably into first place, and greene falls off the map. Reasoner takes a big surge up the rankings, and Moreau and Pisani get higher marks too. Not much difference really.

Which seems fairer to you, rivers?

Damn, it's way harder to explain this stuff coherently than it is to actually do it. :)

7/01/2006 12:56 am  
Blogger Vic Ferrari said...


Normally I don't take requests. But that's simple to do and kind of a generally interesting idea (though with these specific guys it's pretty obvious I think).

As far as the toughness of minutes goes ... not much difference, slightly tougher minutes for Pronger without MAB. Probably mostly because Pronger and Smith would play together at critical times.

Pronger was +1 with MAB, and -1 without him.
MAB was +1 with Pronger, and +3 without him.

MAB really played pretty soft minutes when he wasn't playing with big#44 though, think of the first game of the season for example ... paired with Cross and playing the shift immediately after Sakic left the ice. Would have expected Bergeron to generate more positive results with that type of icetime, as he's done in the past. I think maybe he was trying to do too much with the "offense" minutes, instead of just playing his game and letting the Oilers forwards drive the play. I dunno though, I'm not in his head. Still, a good little player, and as nightmarish as his Stanley Cup Finals series was, he'll bounce back I'm sure.

7/01/2006 1:08 am  
Blogger Vic Ferrari said...


Ya probably, when he played tough minutes they were bitchin. Really less and less of that as the season wore on though.

Overall it seems about right to me. I would have guessed Dvorak to have rated much higher, Pisani and Smyth higher ... and Torres and Hemsky lower. And it's tempting to search for reasons for that ... but really it's probably just my bias. We all have our prejudices, and I like puck possession forwards and I hate turnovers in bad places, that's just me.

7/01/2006 1:13 am  
Anonymous pdo said...

Is it just me or is it very worrisome that Stoll rated that low even though we traded Reasoner away with a quarter of the season remaining?

It was obvious how sheltered he was during the playoffs; but I was hoping that more than anything that came because Peca finally found his game.

This team is going to be in a world of hurt next year if we don't get a very good replacement for Peca.

7/01/2006 1:48 am  
Blogger Vic Ferrari said...

I dunno pdo, for a lot of the year Stoll looked pretty effective playing the type of minutes that they used to set aside for Comrie or a young Doug Weight. Though on the whole just not enough offense from his line considering the opportunity.

I remember on HF boards, around December I think, Lowetide pondered how well Reasoner would be doing with the opportunity that had been afforded to Stoll by the coaching staff. He though "about the same" if my memory is right. I agreed. We were universally considered to be fools.

But maybe Stoll's a guy who would be better suited to just playing honest minutes against a reasonable level of competition, with wingers who can keep a bit of possession and cycle the puck well? I dunno. Let's not forget that he was a solid + player at 5on5, Raffi too. So they didn't completely piss away the opportunity.

I mean Selanne and Jagr got cherry minutes again, but they delivered such terrific outscoring results that there were absolutely no complaints from their fans. But I don't know if Stoll and Raffi can deliver enough offense to merit the primo scoring icetime being spent on them. Time will tell.

7/01/2006 2:14 am  
Blogger hffpff said...

Vic, thanks for the clarifications.

While I understand that the set of goal events can be shaped as a player-vs-player matrix and that the computation can be done as a series of matrix ops, what really confuses me (assuming that my comprehension is correct, and that's a big if...) is "how" and "why" some of the variables are being used.

For instance, unless I've totally misinterpreted your description, some of the details that cause me trouble are the following:

#1) One of the steps seems to involve adding EVicetime to EV+/-. I'm having trouble grasping this as they are obviously two conceptually unrelated entities.

#2) If #1 is indeed what's being done, then the opposition player's difficulty level is highly proportional to his total EVicetime for the season. Wouldn't missing games due to injuries distort that number?

#3) Shouldn't one of the last steps involve the division by the number of events observed? For instance, let's say that Lidstrom is involved with 3 goals having Selanne on the ice while Pronger is only involved with 2 goals. In this case, Lidstrom would be deemed to have faced more difficult opposition when in fact it may simply be that a) Lidstrom is a higher event guy, and/or b) Lidtrom played more minutes. I understand that you may perhaps like to attribute a greater rating to a guy who plays more minutes (which definitely makes sense from a wear-and-tear perspective), but isn't this issue already being (kinda) addressed by multiplying a player's number by his own icetime?

Hope I'm not being too much of a pain-in-the-ass by asking all these questions. :)

And if you would like to keep some of the details proprietary, I certainly understand.

BTW, have you considered using all EV events in the play-by-play file as observation points and then cross reference the TOI file to get the players on ice? Even if you discard all the problematic points in the TOI file, it should still yield a pretty dramatic increase in sample size methinks. Or do you think it would be too much work for too little gain?

7/02/2006 1:00 am  
Blogger Vic Ferrari said...


That isn't what I did. Though there are a lot of ways to skin a cat.

By way of example, and I won't bother to look up the real numbers here.

If Horcoff is on the ice for a goal against Forsberg and Gagne ...
and Forsberg was +50, -25, 7 hours EV icetime.
and Gagne was +70, -40, 12 hours EV icetime

The Horcoff gets those numbers added to his opposition list.
so +120, -65, 19 hours.

Keep adding those up for the other two or three Flyers on the ice, and do the same for every goal he was on the ice for, it ends up at:

+23400, -21367, 8566 hours.

Or to present those same results a different way, the overall opposition melts down to:

+2.73/hour -2.49/hour

Which is a bitchin' level of competition overall.


As for the last bit. Ya, I've done that for past seasons scraping the info off of the shift charts. It's not hard to do, but it takes ages for the script to run because I'm heavy handed at programming. The shift chart resoultion isn't great either, at 6 seconds per pixel or so. So there is a bit of error in it, if you're looking for shots-for/shots-against while a player was on the ice or whatever. Because a lot of shifts end with a shot on net.

I wrote a wee script to scrape the info off of the TOI charts a couple of months ago, and run it against the play-by-play. Easier to do is that. It should take nothing to write a script to loop that through for a season or a part of a season ... but they only started giving us the TOI sheets in January. And it would take literally hours and hours to run I suspect.

There are a whole lot of things I'm hoping other people will look into. Like the time between shifts by bench coach (some guys look like they're running four lines ... but really they are running 3 lines, the 3rd line just alternates with 5 or 6 guys. And a couple of those are PKers. Real tough to keep all the legs from getting called with all these penalty filled games)

Whose shifts result in PPs or PKs for your squad - by player?

Which players are on the ice for the most puck icings, either way?

For any player, when a shift ends in a stoppage ... which end of the rink is faceoff in for the guys coming over the boards after you?

Who plays when there is a defensive zone draw against the other team's top players?


I mean we all watch the Oiler games, so have a pretty good idea for these guys, but for the rest of the players around the league ... you just don't know unless you have this kind of info.

7/02/2006 1:59 am  
Blogger hffpff said...

Vic, thanks for the detailed explanation. Now I understand what you're doing.

Had wanted to write a bit more on this metric but now I'm just too ticked off with the Pronger deal to continue with this nice discussion.

Sad day.


7/03/2006 8:44 pm  

Post a Comment

<< Home