The Method to My Rankings Madness, Part 2

| 4 years ago

The Method to My Rankings Madness, Part 2


Our new staff dynasty rankings released over the weekend, and if you’ve seen them, then you probably noticed that my contributions are, in places, radically different from those of Bryan and Chad. The root of many of those differences is my personal leaning toward perceived safety over potential longevity, and that is not idle philosophy. I based my rankings heavily on a framework that values players with a statistical model, and so much of the leg work is done before I’ve even considered my opinions. Here is how I got there.

Continued from Part 1.

 

6. Calculate expected auction prices for 2013

Based on the 2013 projections I created previously, I used the baseline player designations to find expected points above replacement for every player. I found the total of all expected points above replacement of every player in 2013 the same way I did for previous seasons in step 2.

Next, I calculated the price factor, which is the total budget of all teams in the league divided by the expected points above replacement of all players:

 

Price Factor = Teams * (BudgetPerTeam – (RosterSize * MinPrice)) / ExpPointsAboveReplacement

Price Factor = 10 * ($200 – (16 * $1)) / 6,959.50

Price Factor = 0.264

 

A player’s expected 2013 auction price (non-dynasty) is his expected points above replacement multiplied by the price factor.

 

7. Calculate dynasty prices

The previous steps have provided the three inputs needed to calculate dynasty prices with the net present value formula. They are the discount rate, the number of periods—which is the number of years until expected retirement—and the 2013 expected auction price.

If you are working in Excel, the PV formula will take those parameters (in that order) and spit out a price (which will be negative because it is representative of a cash outflow). However, if you are using a database script, there is no built-in functionality to calculate net present value. Even worse, MySQL, specifically, does not allow recursive functions (functions that call themselves), which a summation, such as the present value calculation, requires.

Here is the MySQL workaround I created. Copy this code into a .sql file and execute it, and it will create a NPV function that is analogous to the PV function in Excel:

 

DROP FUNCTION IF EXISTS NPV;

CREATE FUNCTION NPV (DiscRate decimal(10, 2), Periods int, Price decimal(10, 2)) RETURNS decimal(10, 2)

BEGIN

DECLARE i int DEFAULT 0;

DECLARE val decimal(10, 2) DEFAULT 0;

NPVLoop: LOOP

SET i = i + 1;

IF i > Periods THEN LEAVE NPVLoop; END IF;

SET val = val + NPVHelper(DiscRate, i, Price);

END LOOP NPVLoop;

RETURN val;

END;

 

DROP FUNCTION IF EXISTS NPVHelper;

CREATE FUNCTION NPVHelper (DiscRate decimal(10, 2), PeriodsAway int, Price decimal(10, 2)) RETURNS decimal(10, 2)

BEGIN

DECLARE num decimal(10, 2);

DECLARE den decimal(10, 2);

SET num = Price;

SET den = POWER(1.0 + DiscRate, PeriodsAway);

RETURN num / den;

END;

 

The second quirk of this process is that my valuation method is designed to calculate prices for players above the replacement level. However, for our rankings exercise, I am supposed to rank 40 quarterbacks and tight ends and 80 running backs and receivers, each more than the baseline cutoff.

Rather than change the size or setup of the league, which I feel would be a disservice to a majority of readers, I decided to calculate dynasty prices based on expected 2013 prices before I made the adjustment for the baseline player. Since every player listed is expected to score some points and is therefore worth some dollars based on the price factor, the net present value calculation will work for everyone. Then, when I subtract the baseline player, any player below replacement ends up with a negative price, which is an estimation of how much value you would be wasting by deploying that player over the best-available option on the waiver wire.

If you sort those dynasty prices from biggest to smallest, you end up a framework for dynasty rankings, which you can split by position (which we do in our dynasty rankings) or intermingle for overall rankings.

 

8. Rescale dynasty prices

This is superfluous for how we do our dynasty rankings, but in case you want to use this as a framework for a dynasty auction, you need to take one more step. I’ve recently come around on this as an appropriate method to create a pricing sheet. You need to rescale the generated prices so all players above replacement sum to the total budget.

To do so, multiply each dynasty price greater than $0 by a scale factor of the total league budget divided by the sum of all positive dynasty prices:

 

Scale Factor = Teams * (BudgetPerTeam – (RosterSize * MinPrice)) / NPVPricesAboveZero

Scale Factor = 10 * ($200 – (16 * $1)) / $3954.88

Scale Factor = 0.465

 

When you multiply the generated dynasty prices by the scale factor, you get a rescaled price that is relatively balanced against all other players and positions. You can use those as a pricing sheet in your dynasty auction.

Here are the results for quarterbacks:

 

Player Pos Exp2013Price YTR Category DiscRate Price ScaledPrice
Aaron Rodgers QB $97.33 10 Star in prime 0.384 $68.09 $32
Cam Newton QB $95.12 15 Star in prime 0.384 $64.56 $30
Robert Griffin III QB $94.85 16 Star in prime 0.384 $64.00 $30
Drew Brees QB $93.11 5 Star in prime 0.384 $47.86 $22
Matthew Stafford QB $81.07 14 Potential star 0.254 $40.86 $19
Tom Brady QB $91.56 3 Star in prime 0.384 $34.53 $16
Michael Vick QB $82.86 6 Star in prime 0.384 $28.07 $13
Andrew Luck QB $80.93 16 Star in prime 0.384 $27.56 $13
Matt Ryan QB $80.32 11 Star in prime 0.384 $25.37 $12
Tony Romo QB $80.23 6 Star in prime 0.384 $22.16 $10
Colin Kaepernick QB $76.88 14 Star in prime 0.384 $16.90 $8
Peyton Manning QB $82.59 2 Star in prime 0.384 $15.26 $7
Ben Roethlisberger QB $74.89 8 Star in prime 0.384 $10.96 $5
Russell Wilson QB $76.55 15 Non-star 0.584 $10.61 $5
Andy Dalton QB $71.22 14 Potential star 0.254 $3.15 $1
Jake Locker QB $70.39 14 Potential star 0.254 $0.00 $0
Philip Rivers QB $69.76 8 Star in prime 0.384 -$1.54 $0
Carson Palmer QB $69.25 6 Non-star 0.584 -$1.84 $0
Eli Manning QB $69.05 7 Non-star 0.584 -$2.22 $0
Josh Freeman QB $69.77 14 Potential star 0.254 -$2.38 $0
Joe Flacco QB $67.63 11 Non-star 0.584 -$4.74 $0
Matt Schaub QB $66.87 7 Non-star 0.584 -$5.83 $0
Jay Cutler QB $66.88 9 Non-star 0.584 -$5.96 $0
Nick Foles QB $66.79 15 Non-star 0.584 -$6.20 $0
Ryan Fitzpatrick QB $66.29 9 Non-star 0.584 -$6.95 $0
Matt Hasselbeck QB $63.04 2 Non-star 0.584 -$7.59 $0
Matt Cassel QB $65.46 8 Non-star 0.584 -$8.28 $0
Alex D. Smith QB $64.58 10 Non-star 0.584 -$9.92 $0
Chad Henne QB $64.45 11 Non-star 0.584 -$10.19 $0
Brady Quinn QB $57.33 11 Non-star 0.584 -$22.40 $0
Christian Ponder QB $61.49 14 Potential star 0.254 -$34.09 $0
Sam Bradford QB $60.02 14 Potential star 0.254 -$39.69 $0
Ryan Tannehill QB $59.48 14 Potential star 0.254 -$41.77 $0
Mark Sanchez QB $58.50 13 Potential star 0.254 -$44.99 $0
Blaine Gabbert QB $56.22 16 Potential star 0.254 -$55.14 $0
Brandon Weeden QB $53.57 10 Potential star 0.254 -$60.12 $0

 

Here are the results for running backs:

 

Player Pos Exp2013Price YTR Category DiscRate Price ScaledPrice
Arian Foster RB $88.33 6 Star in prime 0.368 $108.32 $50
Doug Martin RB $82.91 9 Star in prime 0.368 $106.34 $49
Ray Rice RB $82.33 7 Star in prime 0.368 $99.13 $46
Adrian L. Peterson RB $80.91 5 Star in prime 0.368 $85.30 $40
LeSean McCoy RB $75.08 8 Star in prime 0.368 $84.43 $39
Trent Richardson RB $69.68 10 Star in prime 0.368 $73.92 $34
Jamaal Charles RB $68.47 7 Star in prime 0.368 $65.81 $31
Matt Forte RB $65.79 6 Star in prime 0.368 $56.63 $26
Marshawn Lynch RB $64.33 6 Star in prime 0.368 $53.30 $25
Chris D. Johnson RB $61.85 6 Star in prime 0.368 $47.62 $22
Darren McFadden RB $58.46 7 Star in prime 0.368 $41.74 $19
Alfred Morris RB $68.23 9 RORA 0.668 $40.12 $19
Maurice Jones-Drew RB $59.75 5 Star in prime 0.368 $39.96 $19
Ahmad Bradshaw RB $58.44 6 Star in prime 0.368 $39.79 $19
Mikel Leshoure RB $54.68 10 Star in prime 0.368 $35.15 $16
Darren Sproles RB $61.37 3 Star in prime 0.368 $33.48 $16
Ryan Mathews RB $53.76 8 Star in prime 0.368 $31.46 $15
Frank Gore RB $59.15 3 Star in prime 0.368 $29.82 $14
Reggie Bush RB $54.62 5 Star in prime 0.368 $28.98 $13
Steven Jackson RB $57.82 3 Star in prime 0.368 $27.62 $13
C.J. Spiller RB $52.36 7 Star in prime 0.368 $27.08 $13
DeMarco Murray RB $51.37 8 Star in prime 0.368 $25.53 $12
Knowshon Moreno RB $47.24 7 Star in prime 0.368 $14.77 $7
Andre Brown RB $47.02 7 Star in prime 0.368 $14.24 $7
BenJarvus Green-Ellis RB $47.71 5 Star in prime 0.368 $14.17 $7
Michael Turner RB $54.27 2 Star in decline 0.848 $10.99 $5
Stevan Ridley RB $45.31 9 Star in prime 0.368 $10.71 $5
Shonn Greene RB $46.89 5 Non-star 0.498 $10.08 $5
Fred Jackson RB $54.88 1 Star in prime 0.368 $10.07 $5
Rashard Mendenhall RB $44.97 7 Star in prime 0.368 $9.31 $4
Pierre Thomas RB $43.30 5 Star in prime 0.368 $4.73 $2
Willis McGahee RB $45.73 2 RORA 0.668 $4.44 $2
Mike Tolbert RB $42.33 6 Star in prime 0.368 $2.84 $1
Joique Bell RB $42.26 6 Non-star 0.498 $2.13 $1
Michael Bush RB $42.03 4 Non-star 0.498 $1.51 $1
Jonathan Stewart RB $41.09 7 Non-star 0.498 $0.00 $0
DeAngelo Williams RB $40.22 3 Star in decline 0.848 -$0.86 $0
Peyton Hillis RB $40.22 6 Non-star 0.498 -$1.58 $0
Danny Woodhead RB $39.04 5 Non-star 0.498 -$3.55 $0
Kevin Smith RB $37.49 7 Non-star 0.498 -$6.78 $0
Felix Jones RB $39.63 7 Potential star 0.068 -$7.87 $0
Rashad Jennings RB $35.91 5 Non-star 0.498 -$8.99 $0
Ronnie Brown RB $29.04 2 Star in decline 0.848 -$10.03 $0
Chris Ivory RB $35.51 8 Non-star 0.498 -$10.70 $0
Marcel Reece RB $34.91 5 Non-star 0.498 -$10.72 $0
James Starks RB $35.07 6 Non-star 0.498 -$10.97 $0
Vick Ballard RB $34.81 10 Non-star 0.498 -$12.31 $0
Jonathan Dwyer RB $34.23 9 Non-star 0.498 -$13.35 $0
LeGarrette Blount RB $32.45 7 Non-star 0.498 -$16.26 $0
Curtis Brinkley RB $31.62 6 Non-star 0.498 -$17.26 $0
Jacquizz Rodgers RB $31.36 10 Non-star 0.498 -$19.11 $0
Beanie Wells RB $37.65 8 Potential star 0.068 -$20.53 $0
Mewelde Moore RB $21.63 2 Non-star 0.498 -$21.62 $0
Brandon Bolden RB $29.93 10 Non-star 0.498 -$21.91 $0
Dorin Dickerson RB $28.84 8 Non-star 0.498 -$23.52 $0
Jackie Battle RB $25.57 4 Non-star 0.498 -$24.90 $0
James Casey RB $26.56 5 Non-star 0.498 -$25.22 $0
Cedric Peerman RB $27.28 7 Non-star 0.498 -$25.99 $0
John Kuhn RB $22.60 3 Non-star 0.498 -$26.01 $0
Lance Dunbar RB $27.81 10 Non-star 0.498 -$26.08 $0
Anthony Allen RB $27.42 8 Non-star 0.498 -$26.26 $0
Tashard Choice RB $25.69 5 Non-star 0.498 -$26.73 $0
Lance Ball RB $25.52 5 Non-star 0.498 -$27.04 $0
Michael Robinson RB $21.76 3 Non-star 0.498 -$27.19 $0
Chris Ogbonnaya RB $26.17 6 Non-star 0.498 -$27.21 $0
Isaac Redman RB $25.29 5 Non-star 0.498 -$27.43 $0
Dion Lewis RB $27.12 11 Non-star 0.498 -$27.61 $0
Lex Hilliard RB $23.44 4 Non-star 0.498 -$28.32 $0
Leon Washington RB $15.58 2 Non-star 0.498 -$28.34 $0
Vonta Leach RB $15.54 2 Non-star 0.498 -$28.38 $0
Bryce Brown RB $26.18 11 Non-star 0.498 -$29.47 $0
Jason Snelling RB $22.62 4 Non-star 0.498 -$29.64 $0
LaRod Stephens-Howling RB $25.02 7 Non-star 0.498 -$30.25 $0
Lawrence Vickers RB $19.57 3 Non-star 0.498 -$30.27 $0
Darrel Young RB $24.52 7 Non-star 0.498 -$31.19 $0
Donald Brown RB $35.29 7 Potential star 0.068 -$31.25 $0
Shaun Draughn RB $24.51 8 Non-star 0.498 -$31.86 $0
Anthony Dixon RB $24.35 8 Non-star 0.498 -$32.17 $0
Justin Forsett RB $23.40 6 Non-star 0.498 -$32.28 $0
Le’Ron McClain RB $21.70 5 Non-star 0.498 -$33.66 $0
Baron Batch RB $23.46 8 Non-star 0.498 -$33.86 $0
Jed Collins RB $22.40 6 Non-star 0.498 -$34.08 $0
Brian Leonard RB $19.64 4 Non-star 0.498 -$34.42 $0
Daryl Richardson RB $23.22 10 Non-star 0.498 -$35.10 $0
Evan Royster RB $22.47 8 Non-star 0.498 -$35.77 $0
Armando Allen RB $22.17 9 Non-star 0.498 -$36.83 $0
Bruce Miller RB $19.93 7 Non-star 0.498 -$39.81 $0
Darius Reynaud RB $19.48 7 Non-star 0.498 -$40.67 $0
Danny Ware RB $17.51 5 Non-star 0.498 -$40.94 $0
Quinn Johnson RB $18.88 7 Non-star 0.498 -$41.80 $0
Henry Hynoski RB $19.22 9 Non-star 0.498 -$42.59 $0
Chris Rainey RB $15.82 8 Non-star 0.498 -$48.54 $0
Mike Goodson RB $31.54 7 Potential star 0.068 -$51.46 $0
Alex Green RB $32.01 8 Potential star 0.068 -$54.22 $0
Daniel Thomas RB $31.57 8 Potential star 0.068 -$56.85 $0
Ben Tate RB $30.94 8 Potential star 0.068 -$60.60 $0
Bilal Powell RB $30.77 9 Potential star 0.068 -$67.23 $0
Shane Vereen RB $30.73 9 Potential star 0.068 -$67.48 $0
Mark Ingram RB $30.86 10 Potential star 0.068 -$71.85 $0
Montario Hardesty RB $26.57 7 Potential star 0.068 -$78.27 $0
Kendall Hunter RB $28.33 9 Potential star 0.068 -$83.11 $0
Delone Carter RB $25.65 7 Potential star 0.068 -$83.23 $0
Jamie Harper RB $28.19 10 Potential star 0.068 -$90.58 $0
Toby Gerhart RB $23.65 7 Potential star 0.068 -$94.00 $0
Rhett Ellison RB $26.58 9 Potential star 0.068 -$94.52 $0
Lamar Miller RB $27.33 11 Potential star 0.068 -$103.20 $0
David Wilson RB $24.03 11 Potential star 0.068 -$127.93 $0
Joe McKnight RB $18.66 8 Potential star 0.068 -$133.94 $0
Robert Turbin RB $21.49 10 Potential star 0.068 -$137.65 $0
Isaiah Pead RB $21.34 10 Potential star 0.068 -$138.70 $0
Bernard Pierce RB $21.10 11 Potential star 0.068 -$149.89 $0
Ronnie Hillman RB $19.26 12 Potential star 0.068 -$173.40 $0

 

Continued in Part 3.

Scott Spratt also works for Baseball Info Solutions and writes for The Hardball Times.  Feel free to ask him questions on Twitter – @PFF_ScottSpratt

Find more of our Dynasty Content here.

  • http://twitter.com/FFAvenger Mike Pietrzak

    Russell Wilson is a “non-star?” Wow, is there a way to somehow remove your ranks from the list?  Thanks.

  • http://twitter.com/am_misfit Allen M.

    What is YTR?