This page gives an introduction to the HoopTotals interface and provides detailed definitions of all the statistical terms used on the site.

Basics

The Data

The HoopTotals database contains all NBA boxscore data for regular season and playoff games, from the current season going back to 1993. Also available are historical betting lines from the current season going back to 1999. For team and player pages, the data is organized according to season. To change seasons, go to the Teams/Players page and select a different season.

Team and Player Pages

From any page on the site, click on a team name or player name to open the information page for that team/player. All of these pages contain Game Stats, Stat Analysis and Game History modules, and the team pages have a Player Stats section as well. With any of these tools, you can adjust the parameters for which the data is computed/displayed. Stats can be computed based on all games, home games, or away games, played throughout the season or before a given date.

In the Stat Analysis and Game History sections, click on a game's date to view the boxscore page for that game.

Lines/Scores

On the Lines/Scores page, you can view historical spreads, totals, and scores for NBA games going back to 1999. Select a date and click the appropriate button to retrieve the data you wish to access. Clicking Get Lines will produce a list of games for that day with spread and total lines displayed. You can then select picks from the list and see how those bets would have turned out by clicking Get Pick Results. To simply get a list a games, lines, and scores, click Get Scores.

Stat Analysis

The Stat Analysis module is the most versatile tool in the HoopTotals interface. It allows you to enter almost any equation you want and obtain results over a specified set of games.

To use this tool, enter a mathematical expression in the 'Stat Formula' box and select the desired number of games, game type (all, away, home), and date range from the dropdown menus. Any of the variables available in the 'Vars' dropdown menu can be used to build the expression (all of these variables are defined in the Stat Glossary). You can enter the stat formula by selecting the appropriate variables, operators, and functions from the corresponding dropdown menus, or you can manually type in an expression. When finished, click 'Get Data'. If the database program successfully interprets the formula you entered, it will return a table and chart for the data that was obtained. Otherwise, you will get an error message; this is most likely caused by spelling a variable incorrectly or having a syntax error, such as unbalanced parenthesis.

Examples

A player's field goal percentage: FG*100/FGA

A team's number of possessions: FGA + TNO + 0.44FTA - ORB

Total number of points scored in a game: PTS + OPTS

The ratio of a team's number of personal fouls to those of its opponent: PF/OPF

Effective field goal percentage of a team's opponent: (OFG + 0.5*OTP)*100/OFGA

Number of a player's steals, blocks, and defensive rebounds, per minute: (STL + BLK + DRB)/MIN

Boolean Expressions

You can also enter Boolean (true/false) expressions, using any combination of the relational/logical operators >, <, >=, <=, =, and, or, not, and xor (exclusive or). For these expressions the database will return a 1 for games for which the statement is true and a 0 for games for which the statement is false. Then looking at the 'Average' field (the bottom row of the game data table) will tell you the percentage of the specified games for which the statement is true. Some examples:

A team had a better assist/turnover ratio than its opponent: AST/TNO > OAST/OTNO

A player had double-digit points, assists, and rebounds: PTS >= 10 and AST >= 10 and (ORB + DRB) >= 10

A team shot at least 50% in field goals or at least 80% in free throws: FG*100/FGA >= 50 or FT*100/FTA >= 80

Functions and Advanced Queries

You can use the mathematical functions in the 'Func' dropdown menu as part of your stat formula. The correct syntax for these functions, as well as others that can be used, is explained in the MySQL Mathematical Functions documentation. In addition to these functions, the HoopTotals interface will successfully interpret most valid expressions in the SQL database language, such as those that use the if and case control flow functions. Examples:

A team's scoring margin, squared: POWER(PTS - OPTS, 2)

Natural logarithm of a team's number of turnovers: LOG(TNO)

Difference in blocks between the two teams: ABS(BLK - OBLK)

The free throw percentage of the winning team: if(PTS > OPTS, FT*100/FTA, OFT*100/OFTA)

Clearly, there are many possibilities for trying out new statistical ideas.

Stat Glossary

AST

Assists.

AST%

Assist ratio - the percentage of possessions that end in an assist. The formula is AST*100/(FGA + FTA*0.44 + AST + TNO).

AVG

Average.

BLK

Blocks.

DEF

Defensive efficiency - points allowed by a team per 100 possessions. The formula is OPTS*100/(FGA - ORB + 0.44*FTA + TNO).

DRB

Defensive rebounds.

DRB%

Defensive rebound rate - the percentage of possible defensive rebounds a player/team gets while on the court. The formula for a player is (DRB*TEAM_MIN/5)*100/((TEAM_DRB + OPPONENT_ORB)*MIN)); the formula for a team is DRB*100/(DRB + OORB).

EFG%

Effective field goal percentage - field goal percentage adjusted for that fact that a three-point field goal is worth 50% more than a two-point field goal. The formula is (FG + 0.5*TP)*100/FGA.

FG

Field goals.

FGA

Field goal attempts.

FG%

Field goal percentage. The formula is FG*100/FGA.

FT

Free throws.

FTA

Free throw attempts.

FT%

Free throw percentage. The formula is FT*100/FTA.

FTA

Free throw attempts.

MIN

Minutes played.

MIN (2)

Minimum.

MAX

Maximum.

OAST

Opponent assists.

OBLK

Opponent blocks.

ODRB

Opponent defensive rebounds.

OFF

Offensive efficiency - points scored by a team per 100 possessions. The formula is PTS*100/(FGA - ORB + 0.44*FTA + TNO).

OFG

Opponent field goals.

OFGA

Opponent field goal attempts.

OFT

Opponent free throws.

OFTA

Opponent free throw attempts.

OORB

Opponent offensive rebounds.

OPF

Opponent personal fouls.

OPTS

Opponent points.

ORB

Offensive rebounds.

ORB%

Offensive rebound rate - the percentage of possible offensive rebounds a player/team gets while on the court. The formula for a player is (ORB*TEAM_MIN/5)*100/((TEAM_ORB + OPPONENT_DRB)*MIN); the formula for a team is ORB*100/(ORB + ODRB).

OSTL

Opponent steals.

OTNO

Opponent turnovers.

OTP

Opponent three point field goals.

OTPA

Opponent three point field goal attempts.

PACE

The number of possessions a team uses per 48 minutes. The formula is (FGA - ORB + 0.44*FTA + TNO)*48/(TEAM_MIN/5).

PER

Player Efficiency Rating - an overall rating of a player's statistical contribution. The formula is rather complex and can be found here.

PF

Personal fouls.

PTS

Points.

REB

Rebounds.

REB%

Rebound rate - the percentage of possible rebounds a player/team gets while on the court. The formula for a player is ((DRB + ORB)*TEAM_MIN/5)*100/((TEAM_DRB + TEAM_ORB + OPPONENT_DRB + OPPONENT_ORB)*MIN); the formula for a team is (DRB + ORB)*100/(DRB + ORB + ODRB + OORB).

Scoring Margin

The difference between the number of points scored by a team and the number of points scored by its opponent. The formula is PTS - OPTS.

STD DEV

Standard deviation.

STL

Steals.

TNO

Turnovers.

TNO%

Turnover ratio - the percentage of possessions that end in a turnover. The formula is TNO*100/(FGA + FTA*0.44 + AST + TNO).

TP

Three-point field goals.

TPA

Three-point field goal attempts.

TP%

Three-point field goal percentage. The formula is TP*100/TPA.

TS%

True shooting percentage - shooting percentage factoring in both three-point field goals and free throws. The formula is PTS*50/(FGA + FTA*0.44).

USG

Usage rate - the number of possessions a player uses per 40 minutes. The formula is ((FGA + TNO + FTA*0.44 + AST*0.33) * 40 * LEAGUE_PACE)/(MIN * TEAM_PACE).

Value

The value given by the stat formula in the Stat Analysis tool.