2019 xADP, New and Improved
About a month ago, I published a post that predicted 2019 ADP (“xADP”) values using eight years’ worth of average draft position (ADP) data from the National Fantasy Baseball Championship (NFBC) and end-of-season (EOS) values from Razzball. The model was pretty good — it explained nearly 60 percent of the data’s variance (adjusted r2 = 0.59), which is pretty dang good. It felt unfulfilled, though; it accounted for some players but not others — namely, breakout rookies who were completely off the radar the previous season and top prospects who had yet to debut.
I took some time (really, a lot of time) to clean up my data to see how much it would improve my model, if at all:
- Originally, my data set did not account for players who were not drafted (aka had no ADP value) but made an impact in 2018 (think Juan Soto). Conversely, my data did account for players who were drafted but made no impact in 2018 (think, uh, Troy Tulowitzki, I guess). It was kind of like addressing a Type I error but ignoring a Type II error (or the other way around? I don’t know). I took painstaking care to fill in these holes.
- I took equally painstaking care to ensure all player names were consistent — no “Nick Castellanos”/”Nicholas Castellanos” mismatches that might pollute the analysis. Odds are, there are a couple of players I missed, but having spent hours poring over the data, I feel confident that the issue is no longer pervasive.
- I added ages! They make a small impact, most meaningful to players at the extremes, such as the very young (think Ronald Acuna) and the very old (think Nelson Cruz).
- Lastly, a theoretical and methodological adjustment: I forced negative ADP values to $0. I wanted the model to reflect an actual draft, in which players are never bought at auction for negative dollars — rather, their values converge on zero. It’s important to note here that a player can still end the season with negative value based on the concept of replacement level. Accordingly, only negative ADP values, and not negative EOS values, were forced zero.
Fortunately, the extra work was worth it: the model boasts an adjusted r2 of 0.75 (with ages; 0.73 without). That’s a massive improvement, and it can be attributed almost entirely to the slight (but profound) change in the model specification.
The model still has its shortcomings. It doesn’t know who the top prospects are, who won and lost the closer role last year, or which seasons were shortened by injury or delayed call-ups. The most notable discrepancies will be among players who fit the latter-most category (shortened season by delayed call-up); Acuna and Ozzie Albies rank 35th and 41st, respectively, which is probably a bit low but not obscenely so. On the other hand, Walker Buehler and Adalberto Mondesi are ranked 165th and 187th, and I’ll bet the house that they each go at least 100 picks earlier.
Without further ado, here’s an updated top 500. I’ll probably rely on it gently during these early NFBC Draft Champions and Fantrax best ball drafts as well as while navigating offseason ottoneu trades. The table is sortable — just click the column headers. Go crazy!
Gabriel Moya over Jesse Biddle? That invalidates everything.
noooooOOOO