Méthodologie

Mise à jour : 9 novembre 2026

D'où viennent les chiffres de PuckLab : la provenance des données, le fonctionnement de chaque modèle, les règles de hockey que suit chaque statistique et la façon dont les chiffres sont tenus à jour. Chaque définition ci-dessous est celle que le site calcule, et chaque terme renvoie à sa fiche du glossaire.

Sources des données

Chaque match provient des données publiques de la LNH : le calendrier, les événements du jeu par jeu, les présences et les sommaires des API de la LNH (api-web.nhle.com et api.nhle.com), et les rapports de match HTML de la LNH quand les présences d'un match manquent. Les totaux officiels de la saison proviennent de l'API de statistiques de la LNH.

Les contrats proviennent de CapWages, associés à l'identifiant LNH de chaque joueur; les transactions, des pages de transactions de la LNH sur Wikipédia. Chaque statistique sur la glace est calculée par PuckLab à partir des événements bruts de la LNH, sans fournisseur de statistiques tiers.

Buts attendus (xG)

Les buts attendus (xG) donnent à chaque tentative de tir non bloquée la probabilité qu'elle devienne un but. Le modèle de PuckLab (version 3, en service depuis septembre 2026) fonctionne en deux étapes : l'étape A estime la probabilité qu'une tentative non bloquée atteigne le filet, l'étape B la probabilité qu'un tir au but soit un but, et le xG d'un tir est A × B.

Il lit 49 variables tirées du jeu par jeu : la distance et les angles du tir par rapport au filet réellement attaqué, son emplacement (enclave, pointe, côté inversé), son type, les retours et les séquences de tirs de l'équipe qui tire, l'événement précédent (son type, l'équipe, la zone, la distance, la vitesse et le temps écoulé avant le tir), le temps depuis la dernière mise au jeu et qui l'a gagnée, et le nombre de patineurs de chaque côté, avec des indicateurs de filet désert et d'attaquant supplémentaire.

Il est entraîné sur les trois saisons régulières les plus récentes, pondérées 0,5, 0,75 et 1,0 de la plus ancienne à la plus récente : des saisons plus anciennes ont été testées et ont nui aux prédictions sur des matchs inédits. Les tirs bloqués n'ont pas de xG (0, comme les comptent MoneyPuck et Evolving-Hockey), les tirs de pénalité ont une valeur fixe (leur taux de réussite observé), et les tirs de fusillade et les tirs ratés qui n'atteignent pas le filet sont écartés. Les tirs vers un filet désert reçoivent un xG et sont signalés, et chaque total de xG du site les exclut.

Le modèle est neutre : il ne sait ni qui a tiré ni qui était devant le filet, ni la période, le temps, le pointage ou l'avantage de la glace (testés puis retirés, sans valeur sur des matchs inédits). Ce qu'ajoute un tireur ou un gardien se voit à côté : les buts au-delà des attentes pour un tireur, les GSAx pour un gardien.

Précision sur des matchs que le modèle n'a jamais vus : un modèle entraîné sur 2021-22 à 2023-24, avec 2024-25 pour l'arrêt anticipé et la calibration, a prédit la saison régulière 2025-26 et a été évalué à côté du modèle public de MoneyPuck sur les tirs évalués par les deux modèles. Aire sous la courbe ROC (1 = chaque but classé au-dessus de chaque non-but, 0,5 = pile ou face) : 0,766 pour PuckLab et 0,770 pour MoneyPuck sur les 109 038 tirs avec un gardien devant le filet; 0,778 et 0,742 sur les 85 950 d'entre eux à 5 contre 5. L'avantage numérique n'est pas comparé : le fichier de MoneyPuck consigne le temps de pénalité restant après un but, ce qui trahit le résultat.

Calibration : chaque saison a son propre ajustement (un par étape et par type de tir) pour que ses buts attendus correspondent à ses buts. En saison régulière, l'ajustement de la saison en cours est recalculé chaque semaine sur ses propres tirs, rapproché de celui de la saison précédente tant que l'échantillon est petit, puis une dernière fois quand la saison régulière est terminée; jamais en séries. Un recalcul réévalue les matchs déjà joués de la saison.

Buts sauvés au-delà des attentes (GSAx)

Buts sauvés au-delà des attentes (GSAx) = les buts attendus des tirs au but qu'un gardien a reçus − les buts qu'il a accordés, tirs et buts dans un filet désert exclus. Seuls les tirs au but comptent, par l'étape B (la probabilité qu'un tir au but soit un but) : un tir raté n'est pas un arrêt. Un GSAx positif signifie qu'il a accordé moins de buts que ces tirs n'en laissaient attendre.

Le premier terme, ce sont ses buts attendus alloués (xGA) : le xG des tirs au but qu'il a reçus. Les GSAx commencent avec la saison régulière 2015-16 et les séries 2010-11; avant, ils sont inconnus et affichés vides, jamais 0.

Corsi, Fenwick et les règles du hockey

Le Corsi compte chaque tentative de tir : buts, tirs au but, tirs ratés et tirs bloqués. Le Fenwick compte celles qui ne sont pas bloquées. Le CF%, le FF% et le xGF% d'un joueur sont la part de son équipe des tentatives, des tentatives non bloquées et des buts attendus quand il est sur la glace à 5 contre 5 : pour ÷ (pour + contre) × 100. Ceux d'une équipe sont les mêmes parts sur son jeu à 5 contre 5, et son HDCF% la part des occasions à haut danger, les tentatives des endroits les plus dangereux.

Chaque statistique suit les mêmes règles du hockey :

  • Les situations (5 contre 5, avantage numérique, désavantage numérique) proviennent du code de situation de la LNH sur chaque événement, pas d'une chronologie reconstruite à partir des pénalités.
  • Une tentative de tir bloquée par un coéquipier du tireur compte pour l'équipe du tireur. Le SAT de NHL.com en attribue la plupart à l'autre équipe : à partir de 2023-24, un CF% à 5 contre 5 peut donc s'écarter ici de quelques dixièmes de point du SAT % de NHL.com.
  • En saison régulière, la fusillade est exclue de chaque statistique tirée des événements du match. En séries, chaque période de prolongation compte (il n'y a pas de fusillade), et une défaite en prolongation est une défaite; les matchs de classement du tournoi à la ronde de 2020, joués selon les règles de la saison régulière, font exception.
  • Chaque total de buts attendus, les buts au-delà des attentes et les GSAx excluent les tirs vers un filet désert; les buts dans un filet désert comptent toujours au pointage.
  • Un match joué par un gardien est un match où la LNH l'inscrit (du temps de glace, une décision ou un tir reçu); un départ, c'est être devant le filet à 0:00 de la première période; un blanchissage, aucun but accordé en étant le seul gardien de son équipe à jouer.
  • La saison régulière compte 84 matchs à partir de 2026-27.
  • Les rangs centiles comparent les patineurs du même groupe de positions (attaquants ou défenseurs) ayant joué 20 matchs ou plus, et les gardiens ayant 10 départs ou plus, en saison régulière. La page Comparer et chaque classement des séries classent tous ceux qui ont joué au moins un match.

Archétypes de joueurs

Chaque patineur reçoit l'un de dix archétypes selon ses rangs centiles : des seuils stricts sur les centiles, testés dans l'ordre, et le premier qu'il franchit est le sien, avec un niveau tiré de son temps de glace. Les dix se regroupent en six familles de rôles : snipers et fabricants de jeu, attaquants de puissance et bidirectionnels, attaquants défensifs et joueurs de combat, défenseurs offensifs, défenseurs bidirectionnels, et défenseurs défensifs et physiques.

Un patineur doit avoir joué 20 matchs à 5 contre 5 dans une saison pour être classé. Pendant la saison régulière, son étiquette est mise à jour jour après jour et ne change que si un autre archétype lui convient nettement mieux; une fois la saison régulière terminée, la saison est classée de nouveau en une seule passe. L'archétype d'un joueur pour une saison est le plus récent parmi cette saison et les deux précédentes.

Valeur des contrats

L'impact sur la masse salariale d'un contrat est sa valeur moyenne annuelle : le salaire total ÷ la durée, le même à chaque saison de l'entente.

La valeur du contrat d'un patineur (modèle v3) est la juste valeur moyenne annuelle des saisons restantes de son contrat : son profil de la saison précédente, évalué par un modèle de marché de la part du plafond ajusté sur cinq entre-saisons de contrats de patineurs (contrats d'entrée exclus) au sein de sa famille de rôles, puis déplacé le long de la courbe de vieillissement de sa position; les saisons d'agent libre avec restriction sont évaluées au prix de l'agent libre avec restriction, et aucune saison n'est évaluée sous le salaire minimum de la ligue. La valeur excédentaire = cette juste valeur − son impact sur la masse salariale, et chaque patineur qui n'a pas un contrat d'entrée est classé au sein de sa famille de rôles.

Chaque page affiche une seule valeur : le modèle v3, sinon celle de l'ancien modèle v2, sinon la valeur de contrats comparables. Un contrat qu'aucun d'eux n'évalue affiche « Non évalué », jamais 0 $.

Mise à jour quotidienne et corrections de la LNH

Une mise à jour quotidienne à 10 h 30 UTC charge les matchs joués depuis la dernière (événements, présences et sommaires), le classement, les alignements et les transactions, puis recalcule les statistiques et les valeurs des modèles qui en découlent.

La LNH révise parfois le sommaire d'un match quelques jours plus tard (tirs au but, temps de glace). Chaque jour, la mise à jour compare les matchs enregistrés aux statistiques de la LNH et recharge ceux qui diffèrent. Les chiffres officiels par match proviennent des sommaires de la LNH et les totaux officiels de la saison, des statistiques de saison de la LNH.

Les pages lisent ces chiffres enregistrés, mis en cache jusqu'à ce que la prochaine mise à jour écrive de nouvelles données, de sorte qu'un chiffre se lit de la même façon partout où il apparaît.