Changes in NBA Play-By-Play Dataset

BigDataBall 2 Comments

We are launching an updated version of our play-by-play dataset to replace the deprecated endpoint (data source to build some columns). This new version includes new columns, enhanced features and slight modifications to the to existing columns.

Summary (tl;dr)
  • The existing column structure (except for converted x,y columns) remains unchanged, with no relocations. All new columns are appended at the end.
  • The updated version enhances tagging for shots, event locations, turnovers, fouls, and violations.
  • To improve clarity, some play types will not be abbreviated, and some play types will be displayed differently than before.
  • Each substitution occurs in a row for “entered” and “left (the court)” players.
  • Court coordinates are explained here for the new version.
  • Updates will be applied to previous seasons as soon as possible, even as the 2025-2026 season progresses. If you’ve historical season(s) in old format, you’ll receive an email notification once the updates are implemented.
Details

(1) SHOTS
Some of the shot types were previously tagged as ‘unknown’. All shots will keep being tagged as a ‘shot’ on COLUMN-V (event_type), and types of shots on COLUMN-AL (type) are now being tagged as follows:


3PT Driving Floating Bank Jump Shot → 3pt driving floating bank jump shot
3PT Fadeaway Jumper → 3pt fadeaway jumper
3PT Floating Jump Shot → 3pt floating jump shot
3PT Jump Bank Shot → 3pt jump bank shot
3PT Jump Shot → 3pt jump shot
3PT Pullup Jump Shot → 3pt pullup jump shot
3PT Running Jump Shot → 3pt running jump shot
3PT Running Pull-Up Jump Shot → 3pt running pull-up jump shot
3PT Step Back Bank Jump Shot → 3pt step back bank jump shot
3PT Step Back Jump Shot → 3pt step back jump shot
3PT Turnaround Fadeaway Bank Jump Shot → 3pt turnaround fadeaway bank jump shot
3PT Turnaround Jump Shot → 3pt turnaround jump shot
***
Cutting Dunk Shot → cutting dunk shot
Cutting Finger Roll Layup Shot → cutting finger roll layup shot
Cutting Layup Shot → cutting layup shot
Driving Dunk → driving dunk
Driving Floating Bank Jump Shot → driving floating bank jump shot
Driving Floating Jump Shot → driving floating jump shot
Driving Layup → driving layup
Driving Reverse Dunk Shot → driving reverse dunk shot
Driving Reverse Layup → driving reverse layup
Dunk → dunk
Fadeaway Jumper → fadeaway jumper
Floating Jump Shot → floating jump shot
Hook Bank Shot → hook bank shot
Hook Shot → hook shot
Jump Bank Shot → jump bank shot
Jump Shot → jump shot
Layup → layup
Pullup Jump Shot → pullup jump shot
Putback Dunk → putback dunk
Putback Layup → putback layup
Running Alley Oop Dunk Shot → running alley-oop dunk shot
Running Alley Oop Layup Shot → running alley-oop layup shot
Running Pull-Up Jump Shot → running pull-up jump shot
Running Reverse Dunk Shot → running reverse dunk shot
Step Back Bank Jump Shot → step back bank jump shot
Tip Dunk Shot → tip dunk shot
Tip Layup Shot → tip layup shot
Turnaround Fadeaway → turnaround fadeaway
Turnaround Fadeaway Bank Jump Shot → turnaround fadeaway bank jump shot
Turnaround Fadeaway Shot → turnaround fadeaway shot
Turnaround Hook Shot → turnaround hook shot
Turnaround Jump Shot → turnaround jump shot
(2) FREE THROWS
Free throws will keep being tagged as a ‘free throw’ on COLUMN-V (event_type) and types of free throws on COLUMN-AL (type) are now being tagged as follows:

Free Throw 1 of 1 → free throw 1/1
Free Throw 1 of 2 → free throw 1/2
Free Throw 1 of 3 → free throw 1/3
Free Throw 2 of 2 → free throw 2/2
Free Throw 2 of 3 → free throw 2/3
Free Throw 3 of 3 → free throw 3/3
Free Throw Flagrant 1 of 1 → free throw flagrant 1/1
Free Throw Flagrant 1 of 2 → free throw flagrant 1/2
Free Throw Flagrant 1 of 3 → free throw flagrant 1/3
Free Throw Flagrant 2 of 2 → free throw flagrant 2/2
Free Throw Flagrant 2 of 3 → free throw flagrant 2/3
Free Throw Flagrant 3 of 3 → free throw flagrant 3/3
Free Throw Clear Path 1 of 2 → free throw clear path 1/2
Free Throw Clear Path 2 of 2 → free throw clear path 2/2
Free Throw Technical → free throw technical

(3) TURNOVERS
Some types of turnovers were not previously tagged. All turnovers are now being tagged as follows:


Offensive Goaltending Turnover → offensive goaltending
Offensive Foul Turnover → offensive foul
Turnover Shot Clock → shot clock
Discontinue Dribble Turnover → discontinue dribble
Double Dribble Turnover → double dribble
Step Out of Bounds Turnover → step out of bounds
Backcourt Turnover → backcourt
Traveling Turnover → traveling
Inbound Turnover → inbound
Out of Bounds Bad Pass Turnover → out of bounds bad pass
Out of Bounds Lost Ball Turnover → out of bounds lost ball
Palming Turnover → palming
Punched Ball Turnover → punched ball
No Turnover → no turnover
Lost Ball Turnover → lost ball
Bad Pass Turnover → bad pass
Illegal Assist Turnover → illegal assist
Illegal Screen Turnover → illegal screen
Kicked Ball Violation Turnover → kicked ball
Lane Violation Turnover → lane violation
Basket from Below Turnover → basket from below
Jump Ball Violation Turnover → jump ball violation
Too Many Players → too many players
3 Second Violation Turnover → 3-second violation
5 Second Violation → 5-second violation
8 Second Violation → 8-second violation

(4) VIOLATIONS
Some types of violations were not previously tagged. All violations are now being tagged as follows:


Delay of Game → delay of game
Defensive Goaltending → defensive goaltending
Lane Violation → lane
Double Lane violation → double lane
Jump Ball Violation → jump ball
Kicked Ball Violation → kicked ball
(5) WORDING CHANGES on event_type (Column-V)

sub → substitution
free throw 1 of 2 → free throw 1/2
miss → shot
(6) OTHER CHANGES
(6.1) Game-IDs are now trimmed, no more leading zeros or apostrophes.
(6.2) Coach challenges are now being captured as an “event_type” and can be found on

event_type = timeout (Column-V)
type = coach challenge (Column-AL)
result = successful/unsuccessful (Column-AJ)
(6.3) Double technical calls were not being appropriately tagged before. With the new version, a double technical call will appear as a “technical foul” in the event_type (Column-V) and as a “double technical” in the type (Column-AL).
(6.4) Technical fouls called on coaches were not being appropriately tagged before. With the new version, a technical foul on a coach will appear as a “technical foul” in the event_type (Column-V) and as a “coach technical foul” in the type (Column-AL).
(6.5) Dataset names now comply with the naming conventions of other BigDataBall datasets (team/player/DFS).
(6.6) Technical fouls called on coaches are now being captured as an “event_type” and can be found on Column-V.

Feel free to get in touch with us about the changes.

Comments 2

  1. Hello,

    Will folks who bought historical data files in recent years be eligible for an upgrade? Any schedule for when they will roll out?

    Can you say more about the change in court coordinates? What is the motivation to going to a percentage?

    Thanks!

    1. Post
      Author

      No ETA but, yes we are actively working on converting as many past seasons as possible into the new format. We’ll see how far we can progress and completed seasons will be freely replaced for previous purchasers.

      As mentioned earlier in the article, the switch was due to a force majeure situation caused by disabled sources.

Add a Comment: