Welcome to NL Ice Data, hockey fans !

To complement the current Swiss hockey statistics resources so that you, hockey fans, can engage more with its data, I decided to launch a new Swiss hockey website entirely focusing on hockey statistics, called NL Ice Data. The goal is to present statistics for the the National League, Swiss League, Junioren Elite A and Novizen Elite.

By using most of the different statistics the SIHF displays on its website this platform aims at providing new interactive tools to better analyse teams, players and goalies performances to better understand the game of hockey.

A non-exhaustive list of tools including:

  • Interactive tables and charts;
  • New available statistics and metrics for Swiss hockey (GF/GA for teams and players, Corsi and Fenwick for teams). More will come soon before this season's end;
  • Shot tracker maps;
  • A glossary to explain the different terms used on this website and in the hockey analytics community.
  • New tools and statistics along with some projects will be added to the platform, stay tuned! News and website's updates will be shared on the following Twitter accounts: @NLIceData | @spz19
    If the League publishes its proprietary data, in whatever format (.json, .xml or else), this website will be able to add more *advanced* statistics for individual players.

    This website is the result of a few hundred hours of work as part of a project made under the supervision of Hockey-Graphs through their Mentorship program. Hockey-Graphs is one of the most renowned, and deservedly so, analytical hockey resources in North America and regularly publishing research about various hockey topics (contracts, tactics and much more).

    If you plan to use the different charts, table or data coming from this website, please link back to the website or Twitter accounts.
    There is a possibility that some developments/data/charts contents will be made available through subscriptions in the future. The subscriptions will be affordable and will be reinvested in the website.

    For any commercial use of the available content on this website, please send me an e-mail first at: nl.ice.data@gmail.com

    As this website is new, do not hesitate to reach out would you have any remarks/suggestions or see any error:

  • On Twitter: @NLIceData || @spz19
  • By e-mail: nl.ice.data@gmail.com

  • For other hockey statistics on Swiss hockey, you surely know the following classic resources:

  • www.sihf.com
  • www.planetehockey.com
  • www.hockeyfans.ch
  • www.eliteprospects.com
  • www.hockeydb.com
  • www.leading-sport.com

  • For some more *advanced* hockey statistics on Swiss hockey, you can also use the following resources:

  • Micha Hofer's hockey charts and viz with Tableau || Blog: Micha Hofer's blog on swisshockeyblogs.ch about advanced stats in Switzerland || Twitter: @EuroCaps
  • Daniel Weinberger's website about German and Swiss hockey || Twitter: @DanielT_W
  • Paul Yerly's blogspot (National League Stats) with interactive tables and charts || Twitter: @NLAStats
  • MySports' videos and articles on Advanced stats || Twitter (German) : @MySports_CH || Twitter (French) : @MySports_CH_fr
  • RSI Sports proposes some analyses with Andreas Hanni

  • Thank you for your visit!

    © NL Ice Data 2019. All Rights Reserved | Last updated: 19th June 2019

    Players - Statistics

    Game Logs - Statistics per game

    Players - Fouls

    Players - Shootouts

    Players - Shot tracker

    Players - Time on ice tool

    Goalkeepers - Statistics

    Game Logs - Statistics per game

    Goalkeepers - Fouls

    Goalkeepers - Shootouts

    Goalkeepers - Shot tracker


    Teams - Statistics - All situations

    Teams - Fouls

    Teams - Fouls chart

    Teams - Shootouts

    Teams - Shot tracker


    Teams - Standings

    Teams - Point matrix


    Teams - Results


    Teams - Schedule

    Teams - Remaining games


    It is time to welcome a new additon to NL Ice Data: Fines and suspensions of NL- and SL-Players! This tool helps you find certain cases or sort them by player, teams, rule violation and so on. The aim is to provide an overview over the many judgements for research and with that eventually also create a better understanding of which procedures and criteria are applied in the effort to issue comparable rulings.

    Even though comparing previous cases to a current one can often be treacherous, you will hopefully find the similar action you are looking for with the tools provided or can dive into some of the more debated cases. The links to the announcements, decisions in full and PSO reports are linked in the database whenever the league makes them available.

    The database is set to include cases from the National and Swiss League, as well as any Cup games of teams from those leagues conducted both in tariff and ordinary proceedings by the Single Judge(s). As of now, only cases from the current season can be searched, further seasons will be added during the summer.

    The data is compiled by hand, so there may be mistakes. If you spot any, please let us know here: @EDSharkie31 | @NLIceData | @spz19

    The Disciplinary system of the SIHF (NL & SL)

    As of the past season, 4 Single Judges (Oliver Krueger, Karl Knopf, Stefan Mueller and Reto Annen) and two Player Safety Officers (PSOs; Stephane Auger and Ryan Gardner) are involved in different capacities in the Disciplinary proceedings concerning the National and Swiss League.

    In Player Safety matters, the PSO acts as a *prosecutor* and requests the opening of proceedings, whenever it is not obvious, that no rule has been violated or the player has been sufficiently penalised on the play, until 7 AM on the following day. These recommendations are not binding on the single judge who decides until 10 AM on the same day, whether he will open proceedings. The responsible Single Judge then decides on possible fines and suspensions, either in tariff or ordinary proceedings. When opening ordinary proceedings, the single judge can issue a maximum of two games provisional suspension, which cannot be appealed.

    In tariff proceedings the Single Judge only determines whether he finds the recommendation of the PSO plausible or not (Process II), while in ordinary proceedings the actions are examined in depth, including statements from the involved parties (Process III). Suspensions of two or more games are always issued in ordinary proceedings.

    In other matters, other parties like e.g. the Officiating department can request the opening of either tariff or ordinary proceedings (Process I or IV). In cases of a second or third Game Misconduct Penalty within the same regular season, the Referee Report automatically serves as a request to open proceedings. The first Game Misconduct Penalty of the season also results in a fine for the player according to the fine tarif. However, those are not published and therefore not included in the database unless the case was examined in ordinary proceedings and then stopped.

    Furthermore, clubs have the right to hand in Club Requests regarding actions involving their own players. The PSO has to forward these to the single judge but is not obliged to recommend a suspension. If the PSO does not make a recommendation for further discipline, the single judge will either decide not to pursue the matter further (that decision can be appealed) or to open proceedings after all. The league does not publish Club Requests that do not lead to proceedings.

    When determining the length of the suspension the Single Judges use the following categories for actions posing a risk to players' health, as defined in Numbers 6 - 9 of the Practice Guidelines:

  • Category 1 (careless): 1-2 games suspension
  • Category 2 (reckless): 2-4 games suspension
  • Category 3 (intentional): 5 or more games suspension
  • More detail on the criteria for these categories in general and for checks against the head and similar infractions in particular can be found in the Practice Guidelines in French and German.

    Any decision by the Single Judge can be appealed by any of the parties who can present a legitimate interest. Decisions in ordinary proceedings can be appealed to the SIHF Sports Tribunal. Decisions in tariff proceedings to the Single Judge. The SIHF Sports Tribunal or the Single Judge then either uphold or overturn the previous decision or decide not to treat the appeal on formal grounds (dismissal).

    The Disciplinary regulations, procedures and practices have been fundamentally changed and developed over the past few years. More detail on those developments and changes as well as more in-depth treatment of the processes and procedures are also planned to be ready in time for the start of the upcoming season. However, if you have any questions regarding the procedures or anything in the database until then, do not hesitate to get in touch!

    Documentation and Links

    Videos of most of the decisions are available in the SIHF Videocenter:

  • Link
  • The relevant regulations and directives of the league can be found on the Website of the SIHF in German and French.

  • Link (German)
  • Link (French)
  • The IIHF Rule Book (2018 - 2022) is available in English as well as Italian, French and German:

  • Link (English, German, French or Italian)
  • For anyone interested in the Disciplinary process, the Practice Guidelines, who have been published to the public for the first time in 2017 in German and French, are well worth a read. The current version dates from August 2017.

  • Link (German)
  • Link (French)
  • Furthermore, the SIHF has started publishing articles dealing with questions around the Disciplinary process.

    NL & SL Inside:

  • Die willkuerliche Ligajustiz ? | Justice arbitraire de la Ligue ?
  • Von Prozessen, Bussen und Sperren | Procedures, amendes et suspensions

  • to


    Recap per team


    Term Definition
    Player Penalised player
    Team Club of the player at the time of the action in question.
    League National League | Swiss League
    Season Season at the time of the action in question.
    Date Date on which the action under review has taken place.
    Decision date Date of the (first) decision by the single judge.
    IIHF rule Rule of the IIHF Rulebook that has been violated.
    Process Process I and II: Tarif proceedings | Process III and IV: Ordinary proceedings.
    # games Final # of game suspensions including any changes by an approved appeal.
    Total fine Total fine including any changes by an appeal.
    Opponent Opposing team
    Opposite player Opposing player
    Injury If the opposing player did not finish the game or is otherwise determined injured by the Single Judge after review of the evidence.
    Penalty on the play Penalty issued by the referee on the play (in minutes).
    Request by Request to open proceedings.
    Club request Club Request filed by
    PSO(s) Name of the PSO requesting proceedings be opened.
    PSO recommandation Recommendation by the PSO for (no) further discipline with the request to open proceedings.
    Provisionary suspension Provisionary suspension issued by the Single Judge with the opening of ordinary proceedings.
    Judge Single judge who decided the case at hand (1st decision).
    Category Categories (1-3) to determine the length of a suspension for actions posing a risk to players health, as defined in Numbers 6 - 9 of the Practice Guidelines.
    Category *-*: The Single Judge deems that none of the criteria have been met to issue a suspension and the proceedings are stopped.
    # games - 1st decision Number of games suspension in the (first) ruling by the single judge.
    Total fine - 1st decision Fine for the rule violation including costs for the procedure of the (first) decision by the Single Judge.
    Fine - 1st decision Fine for the rule violation as defined in the fine tarif of the league.
    Procedure cost - 1st decision Costs for the procedure in front of the single judge.
    Appeal Club that has filed the appeal.
    Decision by Appellate authority taking the decision.
    Appeal decision Appeal decision upholding (appeal rejected) or overturning (appeal approved) the previous decision or a decision not to treat the appeal (dismissal).

    Data availability

    SIHF data availability has evolved and increased over the last ten years, as the SIHF has been tracking more and more statistics during the games (in the National (ex-NLA) and Swiss Leagues (ex-NLB)). The SIHF has kept part of these newly tracked statistics private. Yet, the SIHF still publicized more data over the last few years. The evolution since 2008/09 is as following for the National League:

  • GF/GA: since 2008/09. This information is used to calculate the well-known but useless +/-. The League does not display it in on its website. but the information is available on NL Ice data in the Players -> Statistics section.
  • Shots on goal (SOG): since 2008/09.
  • Shots against (SA), saves (SV) and save percentage (SVS%): since 2010/11.
  • Shootouts: since 2013/2014.
  • Shots missed (SHM) and shots on post (SHP): since 2016/17.
  • Blocked shots (BkS): Opponents shots blocked since 2016/17.
  • Time on ice (TOI): since 2016/17
  • Faceoffs: since 2016/17.
  • Shot tracker: since the 28.02.2018.
  • Some of these statistics have been tracked and made available later for the Swiss League.

  • GF/GA: since 2015/16.
  • Shots on goal (SOG): since 2015/16.
  • Shots against (SA), saves (SV) and save percentage (SVS%): since 2015/16.
  • Shootouts: since 2013/2014.
  • Shots missed (SHM) and shots on post (SHP): since 2016/17.
  • Blocked shots (BkS): Opponents shots blocked since 2017/18.
  • Time on ice (TOI): not available.
  • Faceoffs: not available.
  • Shot tracker: not available.
  • For the juniors Leagues (Junioren Elite A and Novizen Elite), there hasn't been any new statistics made available since 2008/09.

  • At the current state of things, we are able to compute:
  • Corsi/Fenwick per team and for all situations (without adjustments) since 2016/17.
  • Since end of February 2018, we are able to have Corsi/Fenwick per team and per situation, using the shot tracker information.
  • An xG model (should be coming soon), using the shot tracker and shots locations.
  • A non-exhaustive list as the current state of data availibility still offers some more possibilities. They will be talked about soon on this platform.

    Even if there has been some improvements over the 10 last seasons, the League is still behind what's being done in North America or in other European championships in terms of data availability for fans.
    The SIHF has some proprietary data that could enable fans to have more *advanced* statistics at the player level. If it publises its shifts information (shift charts: when each player was on the ice) and by crossing this information with the shot tracker, it would enable fans or platformss like NL Ice Data to compute Corsi, Fenwick, xGF% and other more *advanced* metrics for every player in the League.

    Data choices and information

    As stated above, there are differences in data availability between the different Leagues and over the years. As such, Statistics and Line tool tabs do not propose (at least, for the moment) any aggregate options over several seasons.

    Some statistics, like the +/- or some more detailed faceoffs statistics, will not be displayed on this website.

  • For the +/-, it has been said and repeated that it is not a useful statistical information. For some literatures on the subject, please refer to the following resources and links: Hockey Graphs (in English) or on Swiss Hockey Blogs (in French)
  • For the faceoffs statistics: the League doesn't display as much faceoffs details for games as it does on its players statstics webpage. As such, outside overall faceoffs numbers, your best resource is to use the League website.
  • In the Statistics tab for players, the following statistics do not consider empty-netter points (goals or assists) or siutations:

  • G, A1, P1, A2, A, P, IPP, P/GP, P1/60, P/60, GF, GA, GF+/-, GF%, RelGF%, GF/60, GA/60, RelGF/60, RelGA/60, %GF, %GA, %OC (P1), %OC (P)
  • SH% is also adjusted for empty-netter goals. As such, there will be a discrepancy between the SIHF SH% and the one computed on NL Ice Data for players having scored empty-netter goals.
  • The Line tool tab for players was created to compensate the fact that the shift charts are not made available by the League.

  • It takes the line-up as source and only considers even-strength situations as lines often change in special situations.
  • It makes the strong hypothesis that the players spent the whole game together at even-strength and that their points were made when playing together. The same holds true for the other displayed statistics.
  • The Fouls tab for players, goaltenders and teams tries to classify the different penalties in different categories (which were inspired by a recent article on The Athletic by Olivier Bouchard.
    Furthermore, it attemps to also classify the 10', 20' and 25' with the related penalties as they do not provide information about the foul itself (they are often called Automatic misconduct for example).

    In the Statistics tab for goaltenders, there is a BtB indication stating if a goalie played two games in consecutives days.

    Possible improvments on the League side: Data availability and errors

    The best and first improvment the League can make would be to publish all its raw data for games. It could offer the possibility, for a platform like NL Ice Data or another one, to publish the same kind of content as some North American resources - Natural Stat Trick | Corsica | HockeyViz - to name a few. There are also some simple additional statistics that could be made available: stating the player who drew the penalty, stating the players who were on the ice when there was a goal, more information about coachs records or statistics.

    A second step the League could make is to improve and have more checks on the quality of its data:

  • There are games where players scored, took a penalty or participated in the shootouts that are not on the gamesheet.
  • Games were goals were scored in empty-netter situations: example
  • Lots of GF/GA information per players for the first seasons is missing.
  • There are games like this one that are completly messy.
  • There are others. There will be an article posted on this website that will cover this topic in more details. Errors were corrected as best as possible.

    Players - Statistics | Line tool | Shot tracker

    Statistic Definition
    GP Games played
    G Goals
    A1 Primary assists
    P1 Primary points | G + A1
    A2 Secondary assists
    A Assists | A1 + A2
    P Points | G + A1 + A2
    ENG Empty net goals
    ENP Empty net points
    PTS Total points | G + A1 + A2 + ENP
    P/GP Points per game | P/GP
    P1/60 Primary points per 60 minutes | 60/(TOI/P1)
    P/60 Points per 60 minutes | 60/(TOI/P)
    TOI Time on ice
    TOI/GP Time on ice per game
    %TOI Percentage of available team minutes played | TOI/TEAM TOI
    GF Goals for (+1 | when a player is on the ice for one of his team goal for)
    GA Goals against (-1 | when a player is on the ice for one of his team goal against)
    GF+/- Goals for difference | GF - GA
    GF% Goals for percentage | GF/(GF + GA)
    RelGF% Difference in goal differential when a player is on and off the ice | GF% (on the ice) - GF% (off the ice)
    GF/60 Goals for per 60 minutes | 60/(TOI/GF)
    GA/60 Goals against per 60 minutes | 60/(TOI/GA)
    RelGF/60 Difference in goals for per 60 minutes when a player is on and off the ice | GF/60 (on the ice) - GF/60 (off the ice)
    RelGA/60 Difference in goals against per 60 minutes when a player is on and off the ice | GA/60 (on the ice) - GA/60 (off the ice)
    %GF Percentage of GF the player was on the ice when his team scored a goal | GF (player)/GF (team)
    %GA Percentage of GA the player was on the ice when his team conceaded a goal | GA (player)/GA (team)
    IPP Individual player percentage - Number of points awarded to a player divided by the number of GF while he was on the ice | P/GF (player)
    %OC (P1) Offensive contribution percentage - Number of primary points (P1) awarded to a player divided by the number of GF while he was or not on the ice | P1/GF (team)
    %OC (P) Offensive contribution percentage - Number of points awarded (P) to a player divided by the number of GF while he was or not on the ice | P/GF (team)
    SOG Shots on goal
    SHM Shots missed
    SOP Shots on post
    A/B Shots blocked
    SH% Shooting percentage (Excluding empty netter goals and shots on goal on the empty net) | G/SOG
    BkS Shots against blocked
    iCF Individual Corsi for (All shots attempts for generated by a single player) | SOG + SHM + SOP + A/B
    iCF/60 Individual Corsi for (All shots attempts for generated by a single player) per 60 minutes | 60/(TOI/(SOG + SHM + SOP + A/B))
    iFF Individual Fenwick for (Unblocked shots for) | SOG + SHM + SOP
    iFF/60 Individual Fenwick for (Unblocked shots for) per 60 minutes | 60/(TOI/(SOG + SHM + SOP))
    On target% Percentage of shots attempts reaching the net | SOG/iCF
    FOW Faceoffs won
    FOL Faceoffs loss
    FO% Faceoffs percentage | FOW/(FOW + FOL)
    PIM Penalty minutes


  • Empty-netter goals, assists, points and shots are excluded from goals (G), primary assists (A1), secondary assists (A2), assists (A), primary points (P1), points (P), shots on goal (SOG) and shooting percentage (SH%).
  • GF/GA doesn't include empty-netter goals situations.

  • Players | Goalkeepers | Teams - Shootouts


    Statistic Definition
    # SO Number of shootouts played by the team when the player was dressed
    %SO (1-5) Percentage of shootouts where the player was selected as one of the first five shooters
    PS Shootout attempts
    PSG Shootout attempts scored
    PSM Shootout attempts missed
    PS% Shootout percentage | PSG/PS
    S1, S2, ... Number of shootout attempts as first shooter, second shooter, ...
    S1-5 Number of shootout attempts as one of the first five shooters
    S6+ Number of shootout attempts beyond the first five attempts


    Statistic Definition
    PSAG Shootout attempts
    PSGA Shootout attempts scored
    PS SVS Shootout attempts saved
    PS SVS% Shootout attempts save percentage


    Statistic Definition
    SOW Shootout win
    SOL Shootout loss
    SOW% Percentage of shootouts won | SOW/(SOW + SOL)
    PS SVS% Shootout attempts save percentage

    Goalkeepers - Statistics

    Statistic Definition
    GA Goals against
    SVS Saves
    SA Shots against
    SV% Save percentage | 1 - GA/SA
    GSAA Goals saved above average | (1 - SV% (League))*SA (goalkeeper) - GA (goalkeeper)
    SV%+ Adjusted save percentage | (1 - SV% (League))/(1 - SV% (goalkeeper))
    GAA Goals against per 60 minutes
    SO Number of shutouts
    G1 Number of games as starter
    G2 Number of games as back-up
    BtB Number of back-to-back games
    %start Percentage of games played as starter | G1/GP
    OUT Number of games being replaced by G2
    IN Number of games replacing G1
    %OUT Percentage of games being replaced

    Teams - Statistics

    Statistic Definition
    GF_ Goals for (excluding empty-netter goals and shootout goals)
    GA_ Goals against (excluding empty-netter goals and shootout goals)
    GF_EN Empty-netter goals for
    GA_EN Empty-netter goals against
    GF_SO SO goals for (+1 for every shootout win)
    GA_SO SO goals against (-1 for every shootout loss)
    GF_EQ Even-strength goals for
    GA_EQ Even-strength goals against
    GF_PP Power-play goals for
    GA_PP Power-play goals against
    GF_SH Shorthanded goals for
    GA_SH Shorthanded goals against
    SH% Shooting percentage (Excluding empty netter goals and shots on goal on the empty net) | GF/SF
    PDO PDO - Interpreted as luck factor | SH% + SV%
    TOT TOI Total time on ice
    EQ TOI Even-strength time on ice
    CF Corsi for (All shots attempts for) | SF + oSHM + oSOP + oBkS
    CF/60 Corsi for (All shots attempts for) per 60 minutes | 60/(TOI/(SF + oSHM + oSOP + oBkS))
    CA Corsi against (All shots attempts against) | SA + dSHM + dSOP + dBkS
    CA/60 Corsi against (All shots attempts against) per 60 minutes | 60/(TOI/(SA + dSHM + dSOP + dBkS))
    CF% Corsi for percentage | CF/(CF + CA)
    FF Fenwick for (All unblocked shots for) | SF + oSHM + oSOP
    FF/60 Fenwick for (All unblocked shots for) per 60 minutes | 60/(TOI/(SF + oSHM + oSOP))
    FA Fenwick against (All unblocked shots against) | SA + dSHM + dSOP
    FA/60 Fenwick against (All unblocked shots against) per 60 minutes | 60/(TOI/(SA + dSHM + dSOP))
    FF% Fenwick for percentage | FF/(FF + FA)
    SF Shot for (All shots on goal for) | SF
    SF/60 Shot for (All shots on goal for) per 60 minutes | 60/(TOI/SF)
    SA Shot against (All shots on goal against) | SA
    SA/60 Shot against (All shots on goal against) per 60 minutes | 60/(TOI/SA)
    SF% Shot for percentage | SF/(SF + SA)
    Pace/60 Total shot attempts from both teams - CF + CA per 60 minutes | 60/(TOI/(CF + CA))
    oSHM Shot for missed
    oSOP Shot on post for
    oBkS Shot for blocked
    dSHM Shot against missed
    dSOP Shot on post against
    dBkS Shot against blocked
    PP TOI Power-play time on ice
    PP OP Power-play opportunities
    GF_PP/60 Power-play goals for per 60 minutes | 60/(PP TOI/GF)
    PP% Power-play percentage | (GF/PP OP)
    SH TOI Shorthanded time on ice
    SH SI Shorthanded situations
    GA_SH/60 Shorthanded goals against per 60 minutes | 60/(SH TOI/GA)
    PK% Shorthanded situations

    Teams - Standings

    Statistic Definition
    W Win
    OTW Overtime win
    SOW Shootout win
    L Loss
    OTL Overtime loss
    SOL Shootout loss
    Leading% Percentage of time a team spent leading
    Tied% Percentage of time a team spent tied
    Trailing% Percentage of time a team spent trailing