NBA DATA CHALLENGE

NBA SEASON 2019-20

THE CHALLENGE

Update

Due to recent corona virus concerns, the NBA has suspended all further games for this season indefinitely. Unfortunately, this means that we will also need to suspend the NBA Data Challenge, pending any further announcements from the NBA.

We will still be picking 3 round winners on Monday, 16 March, but will be suspending any further final prizes until we’re sure what the NBA’s final decision about this season will be over the coming weeks.

We hope you’ve enjoyed the competition so far. As soon as we hear more from the NBA regarding games resuming, we’ll be sure to be in touch with an update on our competition.

——–

Welcome to the G-Research NBA Data Challenge! Each month we’ll be giving a prize out to the contestant who comes closest to predicting NBA scores, with a grand prize at the end of the season.

Getting Started

To get started, head over to our signup page at the registration page.

Entry format

We will ask you to provide a python function which makes predictions for upcoming games using past NBA data. For each game, your function will predict the points difference and total points scored. We will run your code on our servers each week to generate your weekly predictions. More details of the format of the python function can be found in the GitHub template repo.

UPDATE: The V3 data API is now available, with play-by-play data.

Key information:
  • Plays are available from the 2017 season onwards
  • There are 2.1 million plays available for you to work with
  • We will update the play-by-play data every week with the latest matches

You can obtain the updated libraries by running update.py in your own repository.

For examples, please see: https://github.com/GR-NBA-data-challenge/NBA-data-template/blob/master/NBA-notebook.ipynb

Rules of the Competition

We’ll have a number of rules for the competition:

  • Use only the data provided. We will disqualify any submissions that use additional data sources. G-Research will regularly update the available data set with scores from this season, so you can continue to improve your model
  • Only models submitted through the above process will be evaluated. The final submitted function will need to be written in Python
  • You can edit your model and update your GitHub repository at any time, and change the Primary commit hash you submit as frequently as you like. There is a cutoff time before each round of testing, which will be 09:00 UTC every Monday
  • There will be monthly prize draws, and we will inform you when the dates and times for these are decided
  • Full terms and conditions can be found here

Scoring

Here’s how we’ll be scoring your predictions. For each game, we give your predictions a single-game score using the following formula:

your_error = abs(actual_diff - predicted_diff) + abs(actual_sum - predicted_sum)
baseline_error = abs(actual_diff) + abs(actual_sum - 200)
single_game_score = baseline_error - your_error

The baseline error represents a very simplistic model which predicts 0 points difference and 200 total points for each game. Subtracting your error from the baseline error means that the better your prediction is, the higher your score will be. Your total score is then the sum of all your single game scores.

Prizes

Each month we’ll be handing out 3 prizes to the top 3 closest predictors:

  • 1st place prize is a £1,500 cash prize
  • 2nd place prize is a £750 cash prize
  • 3rd place prize is a £250 cash prize

At the end of the season, during the play-off period we’ll be giving out 3 grand prizes to the top 3 closest predictors:

  • 1st place prize is a £15,000 cash prize
  • 2nd place prize is a £3,000 cash prize
  • 3rd place prize is a £2,000 cash prize

The months and prize announcements will run as follows:

Test

Round

Deadline for submissions

Final game

1 (TEST)

9 Dec 2019

15 Dec

 

Month 1

Round

Deadline for submissions

Final game

Round 2

16 Dec 2019

22 Dec

Round 3

23 Dec 2019

29 Dec

Round 4

30 Dec 2019

5 Jan 2020

Round 5

6 Jan 2020

12 Jan 2020

Round 6

13 Jan 2020

19 Jan 2020

Winner announced: Mon 20th Jan

 

Month 2

Round

Deadline

Final game

Round 7

20 Jan

26 Jan

Round 8

27 Jan

2 Feb

Round 9

3 Feb

9 Feb

Round 10

10 Feb

16 Feb

Winner announced: Mon 17th Feb

 

Month 3

Round

Deadline

Final game

Round 11

17 Feb

23 Feb

Round 12

24 Feb

1 Mar

Round 13

2 Mar

8 Mar

Round 14

9 Mar

15 Mar

Winners announced: Mon 16th Mar

 

Month 4

Round

Deadline

Final game

Round 15

16 Mar

22 Mar

Round 16

23 Mar

29 Mar

Round 17

30 Mar

5 April

Round 18

6 April

15 April

Winner announced: Thurs 16th April

Play-offs

Details coming soon