It’s not surprising that there are a handful of NBA players throughout the league’s history who share both a first and last name. Some of them are even father/son pairs, e.g. Gerald Henderson

I figured for players whose full names were not unique, I could add the first and last years of their careers to their names, and that would uniquify things, e.g. Gerald Henderson 1979–1991 and Gerald Henderson 2009–2015

But, fun fact: there’s one pair of players, Tony Mitchell and Tony Mitchell, who share not only their names, but the years in which they were in the NBA (both began and ended their careers in the 2013–14 season)

Go figure…

This video is processing – it'll appear automatically when it's done.

The NBA Stats API isn’t exactly documented, though there are some useful resources on GitHub. It seems like the existing shotchartdetail endpoint only returns shots for a single player, but a custom backend wouldn’t have this limitation. Some endpoints I’d imagine for a custom backend:

  • give me all shots for a team in a single season
  • give me all shots for a player across his entire career
  • give me all shots for the entire league that match certain critera (e.g. I want to know who’s shot the best from 18-20 feet along the right baseline in 2015-16)

This video is processing – it'll appear automatically when it's done.

Note that the color metrics are not plotted at the individual hexagon level, but at the court region level, specifically the cross product of angles and distances. For example, all hexagons on the left-center of the court that are 16-24 feet from the basket will have the same color.

If BallR were extended to, say, chart all shots for an entire team, then it might make sense to assign colors at the hexagon-level, but for single players that tends to produce excessive noise. The app already calculates statistics at the individual hexagon level, so it would be a pretty trivial code change to plot colors for individual hexagons instead of regions.

This video is processing – it'll appear automatically when it's done.

I presume that these X-Y coordinates are derived from data collected by the 6 SportVU cameras installed in every NBA arena. Via Wikipedia:

SportVU is a camera system hung from the rafters that collects data at a rate of 25 times per second and follows the ball and every player on the court.

SportVU player tracking delivers statistical information via real-time X, Y positioning of players and X, Y, Z positioning of the ball.

I’m not sure how the NBA backfilled the coordinates going back to 1996, before SportVU cameras existed. Perhaps the thankless job fell to some interns…

Grantland had a nice feature describing the analytical capabilities of the cameras in 2013

This video is processing – it'll appear automatically when it's done.

Legit surprised that this article doesn’t mention Remy Boyz / Fetty Wap’s popularity as a factor in increased cognac sales…

This video is processing – it'll appear automatically when it's done.

I already mentioned the post-expansion fudge factor as a smell

The weather data is definitely imperfect, since it’s daily aggregates. Hourly weather would be much better, since presumably a rain storm during rush hour has much more of an impact than an overnight storm

There are also tons of other things that might impact ridership over time: general public awareness, marketing, vacation patterns, pricing changes (for both Citi Bikes and alternatives, e.g. the subway), Uber’s existence, and so on

This video is processing – it'll appear automatically when it's done.

We might consider a weighting scheme of something like 1/daily_trips to put less relative weight on the large values where we’d expect the error to be larger

This video is processing – it'll appear automatically when it's done.