End of Season Fantasy Round Up: Draft Values, Busts, and Best Free Agents of the 2016 Season
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
A few weeks back I posted an article looking at the biggest values of the 2016 fantasy season through week 13. Now that the season is over, let’s rerun the analysis and see what happens.
The methodology is the same as before. Simply taking the ratio of the average draft position (ADP) to the player’s Value Over Replacement (VOR) ranking. The methodology isn’t perfect of course, it doesn’t consider consistency or playoff performance among other things, but with parsimony in mind we’ll stick to this simple formula. Throughout the off-season I’ll explore other measures.
Thanks to some feedback from reddit user jitit who suggested having a cut off ADP, so guys drafted in the 500’s don’t pollute the rankings (which of course I should have done in the first place), this time around I limited the ranking to players with an ADP of 200 or less. Players with an ADP over 200 were put into the free agency rankings.
All values are based on FantasyPros PPR scoring and include weeks 1 through 16 because if your championship goes into week 17, you need to reevaluate your life. The R code to reproduce this is at the bottom of the article.
Biggest Values
Jordan Howard ended the season with the highest overall draft value and for good reason. Drafted as RB62, he ended the season as RB10, outscoring guys like Todd Gurley (drafted as RB1, finished RB18) and Lamar Miller (RB5, RB16). Matt Ryan (QB19, QB2) and DeMarco Murray (RB18, RB5) were close behind.
Before the playoffs started, Melvin Gordon (RB23, RB7), was by far the best draft value of the year. Through week 13, Melvin Gordon was RB3, behind only David Johnson (RB2, RB1) and Zeke Elliott (RB3, RB2) consensus first round picks. But going down with an injury in week 14 dropped him to a still impressive RB7.
Biggest Busts
The bust list (sort the draft value column ascending) is pretty much unchanged from the previous (week 13) bust list. Adrian Peterson (RB4, RB120) and Keenan Allen (WR8, WR 155) take the top. But a special award needs to be given to DeAndre Hopkins (WR4, WR34) for not missing a single game and still being a bigger bust than Jamaal Charles (RB8, RB113) who had a grand total of 12 carries the entire 2016 season. Hats off the you DeAndre, here’s hoping that Tom Savage will bring you back to superstar status.
Player | Pos | ADP | Drafted As | Pos Rank | Points | PPG | VOR | Draft Value |
---|---|---|---|---|---|---|---|---|
Jordan Howard CHI | RB | 197.0 | RB62 | RB10 | 216.6 | 15.5 | 60.7 | 10.368 |
Matt Ryan ATL | QB | 155.3 | QB19 | QB2 | 318.1 | 21.2 | 65.8 | 9.135 |
DeMarco Murray TEN | RB | 45.0 | RB18 | RB5 | 290.9 | 19.4 | 135.0 | 9.0 |
LeGarrette Blount NE | RB | 108.3 | RB38 | RB8 | 221.8 | 14.8 | 65.9 | 6.769 |
LeSean McCoy BUF | RB | 26.3 | RB11 | RB4 | 296.7 | 21.2 | 140.8 | 6.575 |
David Johnson ARI | RB | 6.0 | RB2 | RB1 | 400.4 | 26.7 | 244.5 | 6.0 |
Melvin Gordon SD | RB | 64.5 | RB23 | RB7 | 250.6 | 19.3 | 94.7 | 5.864 |
Ezekiel Elliott DAL | RB | 9.8 | RB3 | RB2 | 325.4 | 21.7 | 169.5 | 4.9 |
Jay Ajayi MIA | RB | 118.0 | RB42 | RB13 | 204.4 | 14.6 | 48.5 | 4.538 |
Jimmy Graham SEA | TE | 129.5 | TE14 | TE5 | 178.9 | 11.9 | 46.8 | 4.466 |
Travis Kelce KC | TE | 57.5 | TE4 | TE1 | 221.2 | 14.7 | 89.1 | 4.423 |
Le’Veon Bell PIT | RB | 12.5 | RB6 | RB3 | 317.4 | 26.5 | 161.5 | 4.167 |
Dak Prescott DAL | QB | 187.0 | QB22 | QB6 | 284.7 | 19.0 | 32.4 | 4.156 |
Spencer Ware KC | RB | 143.0 | RB46 | RB14 | 193.9 | 13.9 | 38.0 | 4.086 |
Michael Thomas NO | WR | 132.0 | WR52 | WR11 | 224.1 | 16.0 | 36.2 | 3.474 |
Aaron Rodgers GB | QB | 40.5 | QB2 | QB1 | 345.8 | 23.1 | 93.5 | 3.375 |
Kirk Cousins WAS | QB | 120.5 | QB13 | QB4 | 289.2 | 19.3 | 36.9 | 3.347 |
Frank Gore IND | RB | 78.5 | RB29 | RB11 | 204.7 | 13.6 | 48.8 | 3.271 |
Drew Brees NO | QB | 61.8 | QB5 | QB3 | 312.3 | 20.8 | 60.0 | 3.09 |
Greg Olsen CAR | TE | 44.5 | TE3 | TE2 | 202.1 | 13.5 | 70.0 | 2.967 |
Jordy Nelson GB | WR | 18.5 | WR11 | WR2 | 292.1 | 19.5 | 104.2 | 2.643 |
Doug Baldwin SEA | WR | 51.8 | WR26 | WR6 | 247.2 | 16.5 | 59.3 | 2.467 |
Terrelle Pryor CLE | WR | 184.8 | WR66 | WR20 | 197.0 | 13.1 | 9.1 | 2.369 |
Isaiah Crowell CLE | RB | 111.3 | RB40 | RB17 | 186.5 | 12.4 | 30.6 | 2.368 |
Michael Crabtree OAK | WR | 76.8 | WR36 | WR10 | 229.6 | 15.3 | 41.7 | 2.327 |
Delanie Walker TEN | TE | 61.8 | TE5 | TE4 | 179.6 | 12.8 | 47.5 | 2.207 |
Devonta Freeman ATL | RB | 17.5 | RB7 | RB6 | 255.4 | 17.0 | 99.5 | 2.188 |
Jason Witten DAL | TE | 136.0 | TE15 | TE9 | 150.3 | 10.7 | 18.2 | 2.159 |
Tyrod Taylor BUF | QB | 128.3 | QB14 | QB7 | 270.9 | 18.1 | 18.6 | 2.103 |
Martellus Bennett NE | TE | 113.3 | TE11 | TE7 | 155.8 | 10.4 | 23.7 | 2.098 |
Mike Wallace BAL | WR | 168.8 | WR63 | WR22 | 195.5 | 13.0 | 7.6 | 2.01 |
T.Y. Hilton IND | WR | 28.0 | WR15 | WR5 | 258.3 | 17.2 | 70.4 | 2.0 |
Tevin Coleman ATL | RB | 118.0 | RB41 | RB21 | 176.2 | 14.7 | 20.3 | 2.0 |
Terrance West BAL | RB | 168.5 | RB55 | RB23 | 163.5 | 10.9 | 7.6 | 1.982 |
Marcus Mariota TEN | QB | 153.3 | QB17 | QB9 | 260.7 | 17.4 | 8.4 | 1.893 |
Mike Evans TB | WR | 18.0 | WR10 | WR4 | 286.6 | 19.1 | 98.7 | 1.8 |
Larry Fitzgerald ARI | WR | 57.5 | WR27 | WR9 | 229.6 | 15.3 | 41.7 | 1.797 |
Bilal Powell NYJ | RB | 110.3 | RB39 | RB22 | 174.3 | 11.6 | 18.4 | 1.779 |
Derek Carr OAK | QB | 111.3 | QB12 | QB8 | 268.4 | 17.9 | 16.1 | 1.712 |
Pierre Garcon WAS | WR | 174.0 | WR64 | WR27 | 187.5 | 12.5 | -0.4 | 1.657 |
Latavius Murray OAK | RB | 41.0 | RB15 | RB12 | 204.7 | 15.7 | 48.8 | 1.64 |
Charles Clay BUF | TE | 162.0 | TE19 | TE15 | 131.2 | 9.4 | -0.9 | 1.514 |
Matthew Stafford DET | QB | 130.0 | QB16 | QB10 | 259.8 | 17.3 | 7.5 | 1.512 |
Andrew Luck IND | QB | 53.5 | QB4 | QB5 | 289.1 | 20.7 | 36.8 | 1.446 |
Eric Ebron DET | TE | 139.5 | TE16 | TE13 | 132.1 | 11.0 | 0.0 | 1.381 |
Rishard Matthews TEN | WR | 154.0 | WR55 | WR30 | 185.1 | 12.3 | -2.8 | 1.351 |
Mark Ingram NO | RB | 24.3 | RB9 | RB9 | 217.0 | 14.5 | 61.1 | 1.35 |
Andy Dalton CIN | QB | 154.0 | QB18 | QB14 | 247.2 | 16.5 | -5.1 | 1.328 |
Emmanuel Sanders DEN | WR | 67.0 | WR31 | WR15 | 212.6 | 14.2 | 24.7 | 1.264 |
Darren Sproles PHI | RB | 125.5 | RB44 | RB25 | 155.9 | 11.1 | 0.0 | 1.255 |
Steve Smith BAL | WR | 157.0 | WR58 | WR36 | 177.5 | 13.7 | -10.4 | 1.198 |
James White NE | RB | 129.8 | RB45 | RB26 | 154.7 | 10.3 | -1.2 | 1.191 |
Theo Riddick DET | RB | 100.0 | RB37 | RB24 | 161.8 | 16.2 | 5.9 | 1.124 |
Carlos Hyde SF | RB | 43.3 | RB17 | RB15 | 192.1 | 14.8 | 36.2 | 1.11 |
Jameis Winston TB | QB | 129.8 | QB15 | QB15 | 246.6 | 16.4 | -5.7 | 1.109 |
Chris Thompson WAS | RB | 161.7 | RB56 | RB30 | 137.3 | 9.2 | -18.6 | 1.108 |
Zach Miller CHI | TE | 150.5 | TE18 | TE18 | 119.6 | 12.0 | -12.5 | 1.107 |
Zach Ertz PHI | TE | 80.5 | TE7 | TE11 | 144.7 | 11.1 | 12.6 | 1.088 |
Brandin Cooks NO | WR | 23.8 | WR14 | WR7 | 241.4 | 17.2 | 53.5 | 1.082 |
Stefon Diggs MIN | WR | 97.3 | WR42 | WR24 | 193.3 | 14.9 | 5.4 | 1.069 |
Jeremy Hill CIN | RB | 59.8 | RB21 | RB20 | 176.3 | 11.8 | 20.4 | 1.031 |
Kenny Stills MIA | WR | 179.3 | WR65 | WR47 | 154.5 | 10.3 | -33.4 | 1.007 |
Blake Bortles JAC | QB | 92.3 | QB9 | QB11 | 257.0 | 17.1 | 4.7 | 1.003 |
Christine Michael GB | RB | 148.8 | RB48 | RB31 | 134.4 | 9.6 | -21.5 | 0.979 |
Ted Ginn CAR | WR | 185.8 | WR68 | WR50 | 145.7 | 9.7 | -42.2 | 0.968 |
Clive Walford OAK | TE | 186.3 | TE23 | TE31 | 84.2 | 6.0 | -47.9 | 0.904 |
Antonio Gates SD | TE | 94.5 | TE10 | TE14 | 131.3 | 10.9 | -0.8 | 0.892 |
Jerick McKinnon MIN | RB | 147.8 | RB51 | RB36 | 122.4 | 8.7 | -33.5 | 0.826 |
Philip Rivers SD | QB | 102.5 | QB11 | QB17 | 244.1 | 16.3 | -8.2 | 0.813 |
Kenneth Dixon BAL | RB | 185.5 | RB59 | RB47 | 87.1 | 7.9 | -68.8 | 0.796 |
Matt Forte NYJ | RB | 40.5 | RB14 | RB19 | 183.6 | 13.1 | 27.7 | 0.794 |
Devontae Booker DEN | RB | 147.5 | RB50 | RB39 | 117.8 | 7.9 | -38.1 | 0.789 |
Willie Snead NO | WR | 95.5 | WR41 | WR32 | 180.3 | 12.9 | -7.6 | 0.776 |
Ryan Tannehill MIA | QB | 165.5 | QB20 | QB25 | 190.4 | 14.6 | -61.9 | 0.739 |
Ben Roethlisberger PIT | QB | 70.0 | QB6 | QB13 | 252.3 | 18.0 | 0.0 | 0.722 |
Victor Cruz NYG | WR | 192.0 | WR67 | WR78 | 98.9 | 7.6 | -89.0 | 0.703 |
Dwayne Allen IND | TE | 120.0 | TE13 | TE23 | 101.2 | 7.8 | -30.9 | 0.702 |
Ladarius Green PIT | TE | 175.3 | TE22 | TE40 | 54.4 | 9.1 | -77.7 | 0.701 |
Sterling Shepard NYG | WR | 91.0 | WR39 | WR35 | 177.7 | 11.8 | -10.2 | 0.7 |
Chris Hogan NE | WR | 159.5 | WR60 | WR61 | 122.2 | 8.7 | -65.7 | 0.693 |
Will Fuller HOU | WR | 164.5 | WR59 | WR62 | 116.8 | 9.0 | -71.1 | 0.691 |
Charcandrick West KC | RB | 185.7 | RB61 | RB62 | 65.5 | 4.7 | -90.4 | 0.67 |
Mohamed Sanu ATL | WR | 138.0 | WR53 | WR55 | 135.6 | 9.7 | -52.3 | 0.657 |
Tyler Eifert CIN | TE | 117.5 | TE12 | TE25 | 98.4 | 12.3 | -33.7 | 0.649 |
Virgil Green DEN | TE | 180.0 | TE21 | TE45 | 41.0 | 4.6 | -91.1 | 0.647 |
Golden Tate DET | WR | 45.3 | WR22 | WR18 | 202.7 | 13.5 | 14.8 | 0.647 |
Tyler Boyd CIN | WR | 154.5 | WR56 | WR63 | 116.7 | 7.8 | -71.2 | 0.646 |
T.J. Yeldon JAC | RB | 93.3 | RB35 | RB29 | 137.7 | 9.2 | -18.2 | 0.643 |
Jordan Reed WAS | TE | 33.5 | TE2 | TE8 | 155.6 | 14.1 | 23.5 | 0.609 |
DeSean Jackson WAS | WR | 83.3 | WR37 | WR38 | 175.1 | 12.5 | -12.8 | 0.608 |
DeAndre Washington OAK | RB | 152.3 | RB52 | RB52 | 77.5 | 6.5 | -78.4 | 0.607 |
Jared Cook GB | TE | 141.0 | TE17 | TE38 | 62.1 | 6.9 | -70.0 | 0.6 |
Gary Barnidge CLE | TE | 84.8 | TE8 | TE20 | 115.2 | 7.7 | -16.9 | 0.597 |
Coby Fleener NO | TE | 66.0 | TE6 | TE16 | 130.5 | 8.7 | -1.6 | 0.595 |
Tavon Austin LA | WR | 116.0 | WR45 | WR52 | 144.8 | 10.3 | -43.1 | 0.589 |
C.J. Prosise SEA | RB | 164.7 | RB57 | RB63 | 61.0 | 10.2 | -94.9 | 0.584 |
Demaryius Thomas DEN | WR | 28.0 | WR16 | WR13 | 217.6 | 14.5 | 29.7 | 0.571 |
Austin Seferian-Jenkins NYJ | TE | 163.7 | TE20 | TE50 | 34.4 | 3.8 | -97.7 | 0.568 |
Russell Wilson SEA | QB | 53.5 | QB3 | QB12 | 255.4 | 17.0 | 3.1 | 0.563 |
James Starks GB | RB | 160.3 | RB54 | RB64 | 58.9 | 6.5 | -97.0 | 0.56 |
Dorial Green-Beckham PHI | WR | 167.3 | WR61 | WR88 | 84.7 | 6.5 | -103.2 | 0.545 |
Travis Benjamin SD | WR | 115.8 | WR44 | WR57 | 132.4 | 9.5 | -55.5 | 0.541 |
Jarvis Landry MIA | WR | 30.0 | WR18 | WR16 | 208.9 | 13.9 | 21.0 | 0.536 |
Julian Edelman NE | WR | 39.8 | WR20 | WR19 | 198.6 | 13.2 | 10.7 | 0.524 |
Rashad Jennings NYG | RB | 87.3 | RB32 | RB34 | 125.7 | 10.5 | -30.2 | 0.517 |
Eli Manning NYG | QB | 92.8 | QB10 | QB21 | 216.9 | 14.5 | -35.4 | 0.504 |
Phillip Dorsett IND | WR | 146.5 | WR54 | WR83 | 89.2 | 6.4 | -98.7 | 0.503 |
Tajae Sharpe TEN | WR | 129.5 | WR51 | WR72 | 105.3 | 7.0 | -82.6 | 0.5 |
Ryan Mathews PHI | RB | 64.8 | RB25 | RB27 | 144.6 | 11.1 | -11.3 | 0.491 |
Duke Johnson CLE | RB | 64.8 | RB24 | RB28 | 144.6 | 9.6 | -11.3 | 0.487 |
Carson Palmer ARI | QB | 80.3 | QB8 | QB20 | 223.0 | 15.9 | -29.3 | 0.484 |
Tom Brady NE | QB | 72.3 | QB7 | QB19 | 232.8 | 21.2 | -19.5 | 0.482 |
Sammie Coates PIT | WR | 156.3 | WR62 | WR91 | 77.9 | 6.0 | -110.0 | 0.481 |
Devante Parker MIA | WR | 88.5 | WR38 | WR51 | 144.9 | 10.4 | -43.0 | 0.456 |
Alfred Morris DAL | RB | 153.0 | RB53 | RB77 | 37.9 | 2.9 | -118.0 | 0.446 |
Jonathan Stewart CAR | RB | 70.0 | RB27 | RB32 | 132.2 | 11.0 | -23.7 | 0.446 |
Ryan Fitzpatrick NYJ | QB | 185.3 | QB21 | QB29 | 116.9 | 9.0 | -135.4 | 0.443 |
Julius Thomas JAC | TE | 90.8 | TE9 | TE32 | 82.1 | 9.1 | -50.0 | 0.439 |
Jordan Matthews PHI | WR | 60.8 | WR29 | WR40 | 171.4 | 12.2 | -16.5 | 0.431 |
Amari Cooper OAK | WR | 21.3 | WR13 | WR14 | 217.0 | 14.5 | 29.1 | 0.426 |
Shane Vereen NYG | RB | 145.3 | RB49 | RB76 | 38.2 | 7.6 | -117.7 | 0.425 |
Dion Lewis NE | RB | 134.5 | RB47 | RB70 | 47.5 | 7.9 | -108.4 | 0.42 |
Chris Ivory JAC | RB | 93.5 | RB36 | RB44 | 94.5 | 8.6 | -61.4 | 0.419 |
Derrick Henry TEN | RB | 92.5 | RB34 | RB45 | 91.9 | 7.1 | -64.0 | 0.409 |
Chris Johnson ARI | RB | 176.0 | RB58 | RB108 | 15.5 | 3.9 | -140.4 | 0.406 |
Marvin Jones DET | WR | 65.8 | WR30 | WR42 | 159.7 | 11.4 | -28.2 | 0.404 |
Justin Forsett DEN | RB | 122.0 | RB43 | RB68 | 53.6 | 6.7 | -102.3 | 0.401 |
Devin Funchess CAR | WR | 118.0 | WR47 | WR87 | 86.1 | 6.2 | -101.8 | 0.391 |
Javorius Allen BAL | RB | 172.7 | RB60 | RB124 | 7.9 | 2.0 | -148.0 | 0.379 |
Corey Coleman CLE | WR | 117.0 | WR46 | WR89 | 83.4 | 9.3 | -104.5 | 0.375 |
Giovani Bernard CIN | RB | 62.0 | RB22 | RB37 | 122.3 | 12.2 | -33.6 | 0.344 |
Kelvin Benjamin CAR | WR | 46.3 | WR23 | WR37 | 175.8 | 11.7 | -12.1 | 0.343 |
Torrey Smith SF | WR | 123.3 | WR49 | WR99 | 64.7 | 5.4 | -123.2 | 0.341 |
Charles Sims TB | RB | 91.0 | RB33 | RB59 | 67.9 | 9.7 | -88.0 | 0.337 |
DeAngelo Williams PIT | RB | 84.5 | RB30 | RB53 | 75.7 | 10.8 | -80.2 | 0.331 |
Robert Griffin CLE | QB | 194.0 | QB23 | QB36 | 50.0 | 12.5 | -202.3 | 0.327 |
Tyler Lockett SEA | WR | 72.8 | WR34 | WR60 | 124.1 | 8.3 | -63.8 | 0.324 |
Odell Beckham Jr. NYG | WR | 2.8 | WR3 | WR3 | 287.2 | 19.1 | 99.3 | 0.311 |
Kamar Aiken BAL | WR | 112.8 | WR43 | WR100 | 63.6 | 4.2 | -124.3 | 0.307 |
Matt Jones WAS | RB | 76.3 | RB28 | RB54 | 75.3 | 10.8 | -80.6 | 0.298 |
Cam Newton CAR | QB | 34.3 | QB1 | QB16 | 246.2 | 17.6 | -6.1 | 0.288 |
Lamar Miller HOU | RB | 11.8 | RB5 | RB16 | 191.1 | 13.7 | 35.2 | 0.274 |
Allen Hurns JAC | WR | 69.5 | WR32 | WR75 | 100.7 | 9.2 | -87.2 | 0.26 |
John Brown ARI | WR | 70.8 | WR33 | WR77 | 99.2 | 7.1 | -88.7 | 0.26 |
Laquon Treadwell MIN | WR | 142.0 | WR57 | WR181 | 2.5 | 0.6 | -185.4 | 0.251 |
Markus Wheaton PIT | WR | 125.5 | WR50 | WR147 | 17.1 | 5.7 | -170.8 | 0.237 |
Vincent Jackson TB | WR | 118.5 | WR48 | WR128 | 32.3 | 6.5 | -155.6 | 0.237 |
Michael Floyd NE | WR | 58.5 | WR28 | WR73 | 103.2 | 7.9 | -84.7 | 0.222 |
Ameer Abdullah DET | RB | 84.8 | RB31 | RB91 | 26.8 | 13.4 | -129.1 | 0.217 |
Kevin White CHI | WR | 94.8 | WR40 | WR117 | 38.6 | 9.7 | -149.3 | 0.205 |
Randall Cobb GB | WR | 36.5 | WR19 | WR49 | 148.3 | 11.4 | -39.6 | 0.193 |
Jeremy Langford CHI | RB | 49.5 | RB19 | RB61 | 65.5 | 6.0 | -90.4 | 0.179 |
Donte Moncrief IND | WR | 46.5 | WR24 | WR74 | 102.6 | 11.4 | -85.3 | 0.175 |
Antonio Brown PIT | WR | 1.0 | WR1 | WR1 | 307.3 | 20.5 | 119.4 | 0.167 |
C.J. Anderson DEN | RB | 35.3 | RB13 | RB42 | 102.5 | 14.6 | -53.4 | 0.166 |
Arian Foster FA | RB | 66.5 | RB26 | RB97 | 19.3 | 4.8 | -136.6 | 0.159 |
Thomas Rawls SEA | RB | 42.5 | RB16 | RB58 | 68.1 | 8.5 | -87.8 | 0.158 |
Jeremy Maclin KC | WR | 41.3 | WR21 | WR76 | 100.2 | 9.1 | -87.7 | 0.154 |
Danny Woodhead SD | RB | 55.8 | RB20 | RB90 | 27.1 | 13.6 | -128.8 | 0.143 |
Doug Martin TB | RB | 29.5 | RB12 | RB48 | 85.5 | 10.7 | -70.4 | 0.125 |
Eric Decker NYJ | WR | 49.0 | WR25 | WR114 | 40.4 | 13.5 | -147.5 | 0.108 |
Alshon Jeffery CHI | WR | 20.3 | WR12 | WR53 | 144.1 | 13.1 | -43.8 | 0.103 |
Dez Bryant DAL | WR | 12.5 | WR7 | WR33 | 180.0 | 15.0 | -7.9 | 0.101 |
Julio Jones ATL | WR | 2.3 | WR2 | WR8 | 237.3 | 18.3 | 49.4 | 0.1 |
Todd Gurley LA | RB | 4.8 | RB1 | RB18 | 186.5 | 12.4 | 30.6 | 0.1 |
Brandon Marshall NYJ | WR | 15.8 | WR9 | WR45 | 156.7 | 10.4 | -31.2 | 0.091 |
Allen Robinson JAC | WR | 9.8 | WR6 | WR29 | 186.1 | 12.4 | -1.8 | 0.088 |
Sammy Watkins BUF | WR | 28.5 | WR17 | WR95 | 75.9 | 10.8 | -112.0 | 0.086 |
Eddie Lacy GB | RB | 25.8 | RB10 | RB73 | 42.8 | 8.6 | -113.1 | 0.077 |
Rob Gronkowski NE | TE | 11.5 | TE1 | TE26 | 97.0 | 12.1 | -35.1 | 0.063 |
A.J. Green CIN | WR | 6.0 | WR5 | WR28 | 186.4 | 18.6 | -1.5 | 0.055 |
Jamaal Charles KC | RB | 21.8 | RB8 | RB113 | 13.4 | 4.5 | -142.5 | 0.05 |
DeAndre Hopkins HOU | WR | 5.8 | WR4 | WR34 | 178.1 | 11.9 | -9.8 | 0.045 |
Keenan Allen SD | WR | 15.0 | WR8 | WR155 | 12.3 | 12.3 | -175.6 | 0.028 |
Adrian Peterson MIN | RB | 10.8 | RB4 | RB120 | 9.0 | 3.0 | -146.9 | 0.024 |
Best Free Agent Picks Ups
Which players were free agents at the start of the year will vary widely by league, so to be consistent and stay in line with the cut off from above, I defined free agents here as players with an ADP of over 200. Since value doesn’t really make sense for free agents… they’re free, I used VOR to rank them. Below is a table of the top 50 free agents based on full season VOR.
Because the drop off of TE scoring is so steep (that will be another post), Kyle Rudolph (TE30, TE3) and Cameron Brate (TE36, TE6) finished the season with the highest VOR of any free agent players, 48.2 and 38.9 points, respectively. Probably who most people would consider the best free agent pick up of the year, Davante Adams (WR82, WR12), finished directly behind Rudolph and Brate with an end of season VOR of 35.7 points.
Player | Pos | ADP | Drafted As | Pos Rank | Points | PPG | VOR |
---|---|---|---|---|---|---|---|
Kyle Rudolph MIN | TE | 206.3 | TE30 | TE3 | 180.3 | 12.0 | 48.2 |
Cameron Brate TB | TE | 260.7 | TE36 | TE6 | 171.0 | 11.4 | 38.9 |
Davante Adams GB | WR | 222.7 | WR82 | WR12 | 223.6 | 14.9 | 35.7 |
Dennis Pitta BAL | TE | 413.0 | TE47 | TE10 | 148.8 | 9.9 | 16.7 |
Tyrell Williams SD | WR | 290.3 | WR94 | WR17 | 203.9 | 13.6 | 16.0 |
Kenny Britt LA | WR | 268.3 | WR97 | WR21 | 196.2 | 13.1 | 8.3 |
Adam Thielen MIN | WR | 377.0 | WR142 | WR23 | 193.5 | 12.9 | 5.6 |
Jack Doyle IND | TE | 486.0 | TE62 | TE12 | 136.4 | 9.1 | 4.3 |
Jamison Crowder WAS | WR | 237.7 | WR87 | WR25 | 187.9 | 12.5 | 0.0 |
Tyreek Hill KC | WR | 410.0 | WR153 | WR26 | 187.9 | 12.5 | 0.0 |
Cole Beasley DAL | WR | 283.0 | WR104 | WR31 | 181.1 | 12.1 | -6.8 |
C.J. Fiedorowicz HOU | TE | 484.0 | TE61 | TE17 | 124.7 | 8.9 | -7.4 |
Brandon LaFell CIN | WR | 254.7 | WR96 | WR39 | 172.3 | 11.5 | -15.6 |
Hunter Henry SD | TE | 281.7 | TE34 | TE19 | 115.9 | 9.7 | -16.2 |
Joe Flacco BAL | QB | 204.3 | QB27 | QB18 | 233.3 | 15.6 | -19.0 |
Cameron Meredith CHI | WR | 545.0 | NA | WR41 | 165.3 | 12.7 | -22.6 |
Vernon Davis WAS | TE | 406.0 | TE45 | TE21 | 107.4 | 7.7 | -24.7 |
Lance Kendricks LA | TE | 398.0 | TE43 | TE22 | 106.7 | 7.1 | -25.4 |
Robert Kelley WAS | RB | 218.7 | RB73 | RB33 | 129.3 | 9.9 | -26.6 |
Marqise Lee JAC | WR | 240.5 | WR81 | WR43 | 157.8 | 10.5 | -30.1 |
Anquan Boldin DET | WR | 208.3 | WR73 | WR44 | 157.7 | 10.5 | -30.2 |
Ryan Griffin HOU | TE | 451.0 | TE52 | TE24 | 101.2 | 6.7 | -30.9 |
Matt Asiata MIN | RB | 331.0 | RB114 | RB35 | 125.0 | 8.3 | -30.9 |
Quincy Enunwa NYJ | WR | 330.0 | WR127 | WR46 | 155.8 | 10.4 | -32.1 |
Dontrelle Inman SD | WR | 305.5 | WR110 | WR48 | 153.9 | 10.3 | -34.0 |
Tim Hightower NO | RB | 224.3 | RB74 | RB38 | 117.9 | 7.9 | -38.0 |
Jalen Richard OAK | RB | 339.0 | RB118 | RB40 | 114.8 | 7.7 | -41.1 |
Mike Gillislee BUF | RB | 278.7 | RB88 | RB41 | 113.6 | 8.1 | -42.3 |
Jermaine Gresham ARI | TE | 462.0 | TE54 | TE27 | 88.0 | 5.9 | -44.1 |
Jesse James PIT | TE | 202.7 | TE26 | TE28 | 87.2 | 5.8 | -44.9 |
Vance McDonald SF | TE | 218.7 | TE24 | TE29 | 87.1 | 8.7 | -45.0 |
Taylor Gabriel ATL | WR | 415.0 | WR155 | WR54 | 141.9 | 11.8 | -46.0 |
Will Tye NYG | TE | 239.3 | TE31 | TE30 | 84.8 | 5.7 | -47.3 |
Alex Smith KC | QB | 227.7 | QB28 | QB22 | 200.2 | 14.3 | -52.1 |
Sam Bradford MIN | QB | 255.0 | QB31 | QB23 | 199.5 | 14.3 | -52.8 |
Jeremy Kerley SF | WR | 332.0 | WR128 | WR56 | 134.6 | 9.0 | -53.3 |
Ty Montgomery GB | WR | 333.0 | WR129 | WR58 | 131.4 | 9.4 | -56.5 |
Dion Sims MIA | TE | 488.0 | TE63 | TE33 | 75.6 | 6.3 | -56.5 |
Carson Wentz PHI | QB | 243.0 | QB32 | QB24 | 194.9 | 13.0 | -57.4 |
Robert Turbin IND | RB | 273.0 | RB91 | RB43 | 97.0 | 6.9 | -58.9 |
Garrett Celek SF | TE | 418.0 | TE48 | TE34 | 72.1 | 5.5 | -60.0 |
J.J. Nelson ARI | WR | 273.0 | WR91 | WR59 | 127.6 | 9.8 | -60.3 |
Colin Kaepernick SF | QB | 342.5 | QB36 | QB26 | 188.1 | 18.8 | -64.2 |
Trey Burton PHI | TE | 545.0 | NA | TE35 | 66.8 | 5.1 | -65.3 |
Richard Rodgers GB | TE | 263.0 | TE37 | TE36 | 66.7 | 4.8 | -65.4 |
Damien Williams MIA | RB | 310.0 | RB107 | RB46 | 89.6 | 6.4 | -66.3 |
Austin Hooper ATL | TE | 323.0 | TE39 | TE37 | 64.1 | 5.3 | -68.0 |
Jacob Tamme ATL | TE | 274.3 | TE28 | TE39 | 61.0 | 7.6 | -71.1 |
Travaris Cadet NO | RB | 366.0 | RB127 | RB49 | 83.2 | 5.9 | -72.7 |
Shaun Draughn SF | RB | 215.7 | RB68 | RB50 | 82.0 | 5.9 | -73.9 |
Best Second Half Free Agents
Considering the entire season however might not tell the whole story as some players don’t come on until later in the season. Looking at the entire season washes out the value that players like Tyreek Hill (WR153, WR26) and Adam Thielen (WR142, WR23) added to your team in the second half of the season. In the second half of the season, Tyreek Hill finished as WR7, outscoring the likes of Brandin Cooks (WR14, WR7) and T.Y. Hilton (WR15, WR5) in weeks 8-16. In the same time frame, Adam Thielen finished as WR9. In the table below all values are calculated using only the games from weeks 8-16, thus the Pos Rank column is the rank of that player in weeks 8-16 only, not the entire season as in the other tables and the parenthetical notations throughout the article.
Player | Pos | ADP | Drafted As | Pos Rank | Points | PPG | VOR |
---|---|---|---|---|---|---|---|
Cameron Brate TB | TE | 260.7 | TE36 | TE3 | 116.4 | 12.9 | 37.4 |
Tyreek Hill KC | WR | 410.0 | WR153 | WR7 | 141.7 | 15.7 | 35.2 |
Kyle Rudolph MIN | TE | 206.3 | TE30 | TE4 | 107.2 | 11.9 | 28.2 |
Adam Thielen MIN | WR | 377.0 | WR142 | WR9 | 133.1 | 14.8 | 26.6 |
Davante Adams GB | WR | 222.7 | WR82 | WR10 | 132.6 | 14.7 | 26.1 |
Robert Kelley WAS | RB | 218.7 | RB73 | RB11 | 111.9 | 14.0 | 22.7 |
Tim Hightower NO | RB | 224.3 | RB74 | RB15 | 106.6 | 11.8 | 17.4 |
Colin Kaepernick SF | QB | 342.5 | QB36 | QB9 | 155.9 | 19.5 | 15.4 |
Taylor Gabriel ATL | WR | 415.0 | WR155 | WR15 | 121.3 | 15.2 | 14.8 |
Tyrell Williams SD | WR | 290.3 | WR94 | WR23 | 108.3 | 13.5 | 1.8 |
Dontrelle Inman SD | WR | 305.5 | WR110 | WR24 | 107.2 | 13.4 | 0.7 |
Joe Flacco BAL | QB | 204.3 | QB27 | QB13 | 140.5 | 17.6 | 0.0 |
Cameron Meredith CHI | WR | 545.0 | NA | WR28 | 105.0 | 13.1 | -1.5 |
Dennis Pitta BAL | TE | 413.0 | TE47 | TE14 | 77.3 | 9.7 | -1.7 |
J.J. Nelson ARI | WR | 273.0 | WR91 | WR30 | 104.4 | 13.1 | -2.1 |
Jamison Crowder WAS | WR | 237.7 | WR87 | WR34 | 100.7 | 12.6 | -5.8 |
Jermaine Gresham ARI | TE | 462.0 | TE54 | TE15 | 72.6 | 9.1 | -6.4 |
Kenny Britt LA | WR | 268.3 | WR97 | WR35 | 99.7 | 12.5 | -6.8 |
C.J. Fiedorowicz HOU | TE | 484.0 | TE61 | TE16 | 68.1 | 9.7 | -10.9 |
Sam Bradford MIN | QB | 255.0 | QB31 | QB19 | 129.2 | 14.4 | -11.3 |
Marqise Lee JAC | WR | 240.5 | WR81 | WR38 | 95.1 | 10.6 | -11.4 |
Mike Gillislee BUF | RB | 278.7 | RB88 | RB32 | 76.3 | 10.9 | -12.9 |
Matt Asiata MIN | RB | 331.0 | RB114 | RB35 | 74.4 | 8.3 | -14.8 |
Ty Montgomery GB | WR | 333.0 | WR129 | WR41 | 90.4 | 11.3 | -16.1 |
Cole Beasley DAL | WR | 283.0 | WR104 | WR42 | 90.4 | 10.0 | -16.1 |
Ryan Griffin HOU | TE | 451.0 | TE52 | TE19 | 62.2 | 7.8 | -16.8 |
Vernon Davis WAS | TE | 406.0 | TE45 | TE20 | 61.1 | 7.6 | -17.9 |
Dion Sims MIA | TE | 488.0 | TE63 | TE21 | 58.2 | 8.3 | -20.8 |
Robert Turbin IND | RB | 273.0 | RB91 | RB40 | 67.1 | 8.4 | -22.1 |
Brandon LaFell CIN | WR | 254.7 | WR96 | WR48 | 84.3 | 10.5 | -22.2 |
Jalen Richard OAK | RB | 339.0 | RB118 | RB42 | 65.4 | 8.2 | -23.8 |
Jack Doyle IND | TE | 486.0 | TE62 | TE22 | 55.2 | 6.9 | -23.8 |
Malcolm Mitchell NE | WR | 241.0 | WR88 | WR51 | 81.9 | 11.7 | -24.6 |
Eli Rogers PIT | WR | 211.0 | WR79 | WR52 | 81.4 | 10.2 | -25.1 |
Vance McDonald SF | TE | 218.7 | TE24 | TE24 | 52.9 | 10.6 | -26.1 |
Robby Anderson NYJ | WR | 386.0 | WR145 | WR53 | 79.5 | 9.9 | -27.0 |
Will Tye NYG | TE | 239.3 | TE31 | TE25 | 51.9 | 6.5 | -27.1 |
Lance Kendricks LA | TE | 398.0 | TE43 | TE26 | 51.6 | 6.5 | -27.4 |
Carson Wentz PHI | QB | 243.0 | QB32 | QB24 | 111.7 | 12.4 | -28.8 |
Alex Smith KC | QB | 227.7 | QB28 | QB25 | 111.5 | 13.9 | -29.0 |
Anquan Boldin DET | WR | 208.3 | WR73 | WR55 | 74.5 | 9.3 | -32.0 |
Hunter Henry SD | TE | 281.7 | TE34 | TE30 | 46.9 | 7.8 | -32.1 |
Garrett Celek SF | TE | 418.0 | TE48 | TE32 | 46.2 | 6.6 | -32.8 |
Trey Burton PHI | TE | 545.0 | NA | TE33 | 43.8 | 5.5 | -35.2 |
Quincy Enunwa NYJ | WR | 330.0 | WR127 | WR58 | 70.9 | 8.9 | -35.6 |
Richard Rodgers GB | TE | 263.0 | TE37 | TE34 | 43.3 | 5.4 | -35.7 |
Travaris Cadet NO | RB | 366.0 | RB127 | RB47 | 50.1 | 6.3 | -39.1 |
Shaun Draughn SF | RB | 215.7 | RB68 | RB48 | 49.9 | 7.1 | -39.3 |
Adam Humphries TB | WR | 327.0 | WR125 | WR60 | 65.0 | 8.1 | -41.5 |
Trevor Siemian DEN | QB | 214.0 | QB24 | QB26 | 98.3 | 14.0 | -42.2 |
Bonus: They Are Who We Thought They Were!
A total of 8 players ended up finishing the season at exactly same positional ranking as they were drafted.
Antonio Brown PIT (WR1, WR1)
Odell Beckham Jr. NYG (WR3, WR3)
Mark Ingram NO (RB9, RB9)
Jameis Winston TB (QB15, QB15)
Zach Miller CHI (TE18, TE18)
Phil Dawson SF (K26, K26)
DeAndre Washington OAK (RB52, RB52)
Blaine Gabbert SF (QB33, QB33)
Say what you want about San Francisco, but at least they’re predictably bad.
The R code to reproduce all of this is below
library(dplyr) library(rvest) ### functions ----- getPoints <- function(year = 2016, weeks, PPR = TRUE, name.with.team = TRUE) { format_url <- ifelse(PPR, "ppr.php", "") week_min <- min(weeks) week_max <- max(weeks) week_url <- paste0(week_min, ":", week_max) points_url <- paste0("https://www.fantasypros.com/nfl/reports/leaders/", format_url, "?year=", year, "&week=", week_url) fp <- html(points_url) %>% html_table() %>% .[[1]] fp$starting_week <- week_min fp$ending_week <- week_max if (name.with.team) { fp$Player <- paste(fp$Player, fp$Team) } names(fp) <- tolower(names(fp)) names(fp)[which(names(fp) == "rank")] <- "point_rank" fp } getADP <- function(year = 2016, PPR = TRUE) { format_url <- ifelse(PPR, "ppr-overall.php", "overall.php") # need this to get team abbrevations points_url <- "https://www.fantasypros.com/nfl/reports/leaders/ppr.php?year=2016&week=1:16" fp <- html(points_url) %>% html_table() %>% .[[1]] adp_url <- paste0("https://www.fantasypros.com/nfl/adp/", format_url, "?year=", year) adp <- html(adp_url) %>% html_table() %>% .[[1]] ## ADP Table ----- teams <- unique(fp$Team) teams <- c(teams, "DST", "FA") # current free agents do not have a team or FA indicator # find them and add FA fa_index <- which(!grepl(paste0(teams, collapse = "|"), adp$`Player Team (Bye)`)) fa_names <- adp$`Player Team (Bye)`[fa_index] fa_new_names <- paste(fa_names, "FA") adp[fa_index, "Player Team (Bye)"] <- fa_new_names adp_name <- sapply(strsplit(adp$`Player Team (Bye)`, " "), FUN = function(x) { team_vec <- x %in% teams team_index <- which(team_vec) if (sum(team_index > 0)) { name_vec <- x[1:(team_index)] out <- paste0(name_vec, collapse = " ") } else { out <- paste0(x, collapse = " ") } out } ) adp$Player <- adp_name adp$apd_rank <- adp$Rank adp <- adp %>% mutate(player = adp_name, adp_rank = Rank, adp_avg = AVG, adp_pos = POS) %>% select(player, adp_rank, adp_avg, adp_pos) adp } ### functions ----- fp <- getPoints(weeks = 1:16, PPR = TRUE) adp <- getADP(PPR = TRUE) ### join the tables and do some clean up ----- df <- right_join(adp, fp, by = "player") ### players that were not in the adp fill in the rank and avg ----- df[is.na(df$adp_rank), "adp_rank"] <- max(df$adp_rank, na.rm = TRUE) + 1 df[is.na(df$adp_avg), "adp_avg"] <- max(df$adp_avg, na.rm = TRUE) + 1 ### calculate VOR and draft value ----- vorp_df <- df %>% group_by(position) %>% arrange(desc(points)) %>% mutate(pos_rank = 1:n(), replace_rank = ifelse(position == "QB", 13, 30), replace_rank = ifelse(position == "RB", 25, replace_rank), replace_rank = ifelse(position == "WR", 25, replace_rank), replace_rank = ifelse(position == "TE", 13, replace_rank), replace_rank = ifelse(position == "K", 13, replace_rank), replace_rank = ifelse(position == "DST", 13, replace_rank), replace_value = nth(points, median(replace_rank)), vor = points - replace_value) %>% ungroup() %>% arrange(desc(vor)) %>% mutate(vor_rank = 1:n(), draft_value = adp_avg / vor_rank) %>% ungroup() %>% mutate(pos_rank = paste0(position, pos_rank)) # filter out DST and K b/c their ADPs are so low # that they throw off the rankings vorp_df <- vorp_df %>% filter(!position %in% c("DST", "K")) ### draft value table ----- draft_df <- vorp_df %>% select(player, position, adp_avg, adp_pos, pos_rank, points, avg, vor, draft_value) %>% arrange(desc(draft_value)) %>% filter(adp_avg <= 200) draft_df$draft_value <- round(draft_df$draft_value, 3) draft_df$vor <- round(draft_df$vor, 1) names(draft_df) <- c("Player", "Pos", "ADP", "Drafted As", "Pos Rank", "Points", "PPG", "VOR", "Draft Value") readr::write_csv(draft_df, "data/draft_value.csv") ### top free agent pick ups avg adp > 200 ----- fa_df <- vorp_df %>% filter(adp_avg > 200) fa_df <- fa_df %>% select(player, position, adp_avg, adp_pos, pos_rank, points, avg, vor) %>% arrange(desc(vor)) %>% top_n(50, vor) fa_df$vor <- round(fa_df$vor, 1) names(fa_df) <- c("Player", "Pos", "ADP", "Drafted As", "Pos Rank", "Points", "PPG", "VOR") readr::write_csv(fa_df, "data/free_agent_value.csv") ### second half of the season best FA ----- fp_2nd <- getPoints(weeks = 8:16, PPR = TRUE) df_2nd <- right_join(adp, fp_2nd, by = "player") ### players that were not in the adp fill in the rank and avg ----- df_2nd [is.na(df_2nd $adp_rank), "adp_rank"] <- max(df_2nd $adp_rank, na.rm = TRUE) + 1 df_2nd [is.na(df_2nd $adp_avg), "adp_avg"] <- max(df_2nd $adp_avg, na.rm = TRUE) + 1 ### calculate VOR and draft value ----- fa_df_2nd <- df_2nd %>% group_by(position) %>% arrange(desc(points)) %>% mutate(pos_rank = 1:n(), replace_rank = ifelse(position == "QB", 13, 30), replace_rank = ifelse(position == "RB", 25, replace_rank), replace_rank = ifelse(position == "WR", 25, replace_rank), replace_rank = ifelse(position == "TE", 13, replace_rank), replace_rank = ifelse(position == "K", 13, replace_rank), replace_rank = ifelse(position == "DST", 13, replace_rank), replace_value = nth(points, median(replace_rank)), vor = points - replace_value) %>% ungroup() %>% arrange(desc(vor)) %>% mutate(vor_rank = 1:n()) %>% ungroup() %>% mutate(pos_rank = paste0(position, pos_rank)) %>% filter(adp_avg > 200, !position %in% c("DST", "K")) fa_df_2nd <- fa_df_2nd %>% select(player, position, adp_avg, adp_pos, pos_rank, points, avg, vor) %>% arrange(desc(vor)) %>% top_n(50, vor) fa_df_2nd$vor <- round(fa_df_2nd$vor, 1) names(fa_df_2nd) <- c("Player", "Pos", "ADP", "Drafted As", "Pos Rank", "Points", "PPG", "VOR") readr::write_csv(fa_df_2nd, "data/free_agent_2nd_half_value.csv")
R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.