The general format is that one row = one game's data (team stats and player stats). The Data Dictionary below describes the meaning and format of each column. And for some reason, I decided to put the team information (name, abbreviation, human player) columns for the Home team before those of the Away team......but then I put the Away team stat columns before the Home team stat columns. No idea why I did it that way. You'll just have to deal with it.

Data Dictionary

MatchID - the match ID of the game. This ID number is pulled from nhl94online.com, meaning that this number matches the number in the URL if you were to pull up this particular game on nhl94online.com. (integer)

League - the name of the season/level to which this game belongs. For example, "Classic_Spring2013_GENS-A" or "Classic_Fall2021_GENS-A". The format will always be "Classic_{season}{year}_GENS-{level}". (string)

RegPlay - regular season or playoffs? "R" for regular season, "P" for playoffs. (string)

DateTime - the date and time of the upload of the game's save state to nhl94online.com. The format for pre-Fall 2022 games is "MM/DD/YYYY HH:MM". The format starting with Fall 2022 is "MM/DD/YYYY HH:MM:SS". Note that if you open the CSV file in Excel, Excel will add ":00" to any pre-Fall 2022 time (if you open the CSV file in, say, Notepad, you'll see that the pre-Fall 2022 times do not have the seconds). The reason for this discrepancy is that I got @chaos to add seconds to the box scores after Spring 2022....and I don't care to re-scrape all of the old box scores just to get seconds. (string)

HomeTeam - the full name of the home team (i.e. the city) (string)

HomeTeamAbbrev - the 2-3 letter abbreviation of the home team (string)

HomePlayer - the identity of the human who was playing as the home team. Note that if a player asked to have his name changed at some point during the Box Score Era, the player's old name will be used in that player's games before the change. (string)

AwayTeam - the full name of the away team (i.e. the city) (string)

AwayTeamAbbrev - the 2-3 letter abbreviation of the away team (string)

AwayPlayer - the identity of the human who was playing as the away team. Note that if a player asked to have his name changed at some point during the Box Score Era, the player's old name will be used in that player's games before the change. (string)

AwayScore - the number of goals that the Away team scored (integer)

AwayShots - the number of shots on goal that the Away team recorded (integer)

AwayShootPct - the Away team's shooting percentage. Calculated as AwayScore/AwayShots and rounded to four decimal places (float)

AwayPPGoals - the number of power play goals scored by the Away team (integer)

AwayPPTries - the number of power play attempts earned by the Away team. Note that this number will not necessarily match the number of penalties committed by the Home team. (integer)

AwaySHGoals - the number of shorthanded goals scored by the Away team (integer)

AwayBreakGoals - the number of breakaway goals scored by the Away team (integer)

AwayBreakTries - the number of breakaway tries managed by the Away team (integer)

AwayOneTimerGoals - the number of one-timer goals scored by the Away team (integer)

AwayOneTimerTries - the number of one-timer attempts managed by the Away team (integer)

AwayPenShotGoals - the number of penalty shot goals scored by the Away team (integer)

AwayPenShotTries - the number of penalty shot attempts managed by the Away team (integer)

AwayFaceoffWins - the number of faceoffs won by the Away team (integer)

AwayChecks - the number of checks managed by the Away team (integer)

AwayPIM - the number of PIM (penalties in minutes) managed by the Away team. Note that this number reflects penalties in minutes, meaning that for the Classic league, this number is penalties committed by Away * 2. (integer)

AwayAttackZoneTime - the number of seconds of attack zone time managed by the Away team (integer)

AwayPassComps - the number of pass completions managed by the Away team. Calculated as Pass Completions + One-Timer Attempts for GENS (because the GENS version does not count one-timer attempts as completed passes.) (integer)

AwayPassTries - the number of pass attempts managed by the Away team. (integer)

AwayGoalsP1 - the number of goals scored by the Away team in period 1 (integer)

AwayShotsP1 - the number of shots managed by the Away team in period 1 (integer)

AwayGoalsP2 - the number of goals scored by the Away team in period 2 (integer)

AwayShotsP2 - the number of shots managed by the Away team in period 2 (integer)

AwayGoalsP3 - the number of goals scored by the Away team in period 3 (integer)

AwayShotsP3 - the number of shots managed by the Away team in period 3 (integer)

AwayGoalsOT - the number of goals scored by the Away team in overtime. If there was no overtime played, then this column will be blank. (integer)

AwayShotsOT - the number of shots managed by the Away team in overtime. If there was no overtime played, then this column will be blank. (integer)

AwayPlayers - the individual player statistics for the Away team's non-goalies. This entry is formatted as a Python list. There are [] brackets surrounding the entire entry. Within the [] brackets, each player's statistics are contained within additional [] brackets. Essentially, it is a list of Python lists. The statistics for each player are listed in this order: Player Number, Player Name, Position ('F'/'D'), Goals, Assists, Points, Shots on Goals, Checks For, PIM, Time On Ice. Note that only players who have a Time On Ice greater than 0 seconds appear in the data. (string)

AwayGoalies - the individual player statistics for the Away team's goalies. This entry is formatted as a Python list. There are [] brackets surrounding the entire entry. Within the [] brackets, each player's statistics are contained within additional [] brackets. Essentially, it is a list of Python lists. The statistics for each player are listed in this order: Goals Against, Saves, Shots Against, Goals Against Average, Save Pct., Assists, Time On Ice. Note that only players who have a Time On Ice greater than 0 seconds appear in the data. (string)

AwayGoals - the details of each goal scored by the Away team. This entry is formatted as a Python list. There are [] brackets surrounding the entire entry. Within the [] brackets, each goal's details are contained within additional [] brackets. Essentially, it is a list of Python lists. The details for each goal are listed in this order: Period Number (4 = overtime), Number Of Seconds Into The Period (higher = later in the period), Team Abbreviation, Player Name, Player Number, Assist 1 Player Name, Assist 1 Player Number, Assist 2 Player Name, Assist 2 Player Number, Goal Status ('SH2','SH','EV','PP','PP2'). Note that the game does not record information about whether a goal was scored as a penalty shot. (string)

AwayPenalties - the details of each penalty committed by the Away team. This entry is formatted as a Python list. There are [] brackets surrounding the entire entry. Within the [] brackets, each penalty's details are contained within additional [] brackets. Essentially, it is a list of Python lists. The details for each penalty are listed in this order: Period Number (4 = overtime), Number Of Seconds Into The Period (higher = later in the period), Team Abbreviation, Player Number, Player Name, Penalty Type, Penalty Length In Seconds. (string)

HomeScore - the number of goals that the Home team scored (integer)

HomeShots - the number of shots on goal that the Home team recorded (integer)

HomeShootPct - the Home team's shooting percentage. Calculated as HomeScore/HomeShots and rounded to four decimal places (float)

HomePPGoals - the number of power play goals scored by the Home team (integer)

HomePPTries - the number of power play attempts earned by the Home team. Note that this number will not necessarily match the number of penalties committed by the Away team. (integer)

HomeSHGoals - the number of shorthanded goals scored by the Home team (integer)

HomeBreakGoals - the number of breakaway goals scored by the Home team (integer)

HomeBreakTries - the number of breakaway tries managed by the Home team (integer)

HomeOneTimerGoals - the number of one-timer goals scored by the Home team (integer)

HomeOneTimerTries - the number of one-timer attempts managed by the Home team (integer)

HomePenShotGoals - the number of penalty shot goals scored by the Home team (integer)

HomePenShotTries - the number of penalty shot attempts managed by the Home team (integer)

HomeFaceoffWins - the number of faceoffs won by the Home team (integer)

HomeChecks - the number of checks managed by the Home team (integer)

HomePIM - the number of PIM (penalties in minutes) managed by the Home team. Note that this number reflects penalties in minutes, meaning that for the Classic league, this number is penalties committed by Home * 2. (integer)

HomeAttackZoneTime - the number of seconds of attack zone time managed by the Home team (integer)

HomePassComps - the number of pass completions managed by the Home team. Calculated as Pass Completions + One-Timer Attempts for GENS (because the GENS version does not count one-timer attempts as completed passes.) (integer)

HomePassTries - the number of pass attempts managed by the Home team. (integer)

HomeGoalsP1 - the number of goals scored by the Home team in period 1 (integer)

HomeShotsP1 - the number of shots managed by the Home team in period 1 (integer)

HomeGoalsP2 - the number of goals scored by the Home team in period 2 (integer)

HomeShotsP2 - the number of shots managed by the Home team in period 2 (integer)

HomeGoalsP3 - the number of goals scored by the Home team in period 3 (integer)

HomeShotsP3 - the number of shots managed by the Home team in period 3 (integer)

HomeGoalsOT - the number of goals scored by the Home team in overtime. If there was no overtime played, then this column will be blank. (integer)

HomeShotsOT - the number of shots managed by the Home team in overtime. If there was no overtime played, then this column will be blank. (integer)

HomePlayers - the individual player statistics for the Home team's non-goalies. This entry is formatted as a Python list. There are [] brackets surrounding the entire entry. Within the [] brackets, each player's statistics are contained within additional [] brackets. Essentially, it is a list of Python lists. The statistics for each player are listed in this order: Player Number, Player Name, Position ('F'/'D'), Goals, Assists, Points, Shots on Goals, Checks For, PIM, Time On Ice. Note that only players who have a Time On Ice greater than 0 seconds appear in the data. (string)

HomeGoalies - the individual player statistics for the Home team's goalies. This entry is formatted as a Python list. There are [] brackets surrounding the entire entry. Within the [] brackets, each player's statistics are contained within additional [] brackets. Essentially, it is a list of Python lists. The statistics for each player are listed in this order: Goals Against, Saves, Shots Against, Goals Against Average, Save Pct., Assists, Time On Ice. Note that only players who have a Time On Ice greater than 0 seconds appear in the data. (string)

HomeGoals - the details of each goal scored by the Home team. This entry is formatted as a Python list. There are [] brackets surrounding the entire entry. Within the [] brackets, each goal's details are contained within additional [] brackets. Essentially, it is a list of Python lists. The details for each goal are listed in this order: Period Number (4 = overtime), Number Of Seconds Into The Period (higher = later in the period), Team Abbreviation, Player Name, Player Number, Assist 1 Player Name, Assist 1 Player Number, Assist 2 Player Name, Assist 2 Player Number, Goal Status ('SH2','SH','EV','PP','PP2'). Note that the game does not record information about whether a goal was scored as a penalty shot. (string)

HomePenalties - the details of each penalty committed by the Home team. This entry is formatted as a Python list. There are [] brackets surrounding the entire entry. Within the [] brackets, each penalty's details are contained within additional [] brackets. Essentially, it is a list of Python lists. The details for each penalty are listed in this order: Period Number (4 = overtime), Number Of Seconds Into The Period (higher = later in the period), Team Abbreviation, Player Number, Player Name, Penalty Type, Penalty Length In Seconds. (string)

FaceoffTotal - the total number of faceoffs in the game. Calculated as AwayFaceoffWins + HomeFaceoffWins. (integer)

db - the highest db level recorded during the game (integer)