What a great day. Let’s talk plays of the day, and let’s talk FanDuel lineup construction.
Today we have seven games on the main slate. 14 pitchers and 122 hitters to use to construct our lineups. We know we need to use more than one lineup. We know we need to diversify. But what is the optimal breakdown? What percent of lineups with each player?
How do we do this?
How To Construct DFS Lineups
Let’s start by looking at the projection we have for each player compared to his salary. We do this to first create a standard measure of value. One way to do this is to square the projected points for each player and divide by his salary, then take this number and divide it by the average at his position.
Here is a detailed, step-by-step process we can use to set this up. Quit yawning!
Download the players list from the FanDuel contest page as well as your player projections, then move both sheets into one workbook. Columns A-P of the players list are populated with information, so in column Q we can use the INDEX and MATCH functions to populate our projections:
=INDEX(‘name of sheet with your player projections’!A:A,MATCH(D2,’name of sheet with your player projections’!B:B,0)), using the column letter of the players’ projections instead of A, and the column letter of players’ names instead of B.
In row 1 of columns R-X of the players list we can put our position headers: P, C/1B, 2B, 3B, SS, OF, UTIL. We want to use these columns to begin to analyze value at each position separately. We can use a simple IF function to accomplish this:
=IF($B2=R$1,$Q2*$Q2/$H2,””), filling this formula from cell R2 to X2, then all the way down. We can change column S to accommodate both C/1B positions by using the OR function: =IF(OR($B2=”C”,$B2=”1B”),$Q2*$Q2/$H2,””), and column X to show values for only non-pitchers: =IF($B2=”P”,””,$Q2*$Q2/$H2). Next, we want to compare these values to the average at each posiiton.
In row 1 of columns Y-AE of the players list we can type our position headers, and simply divide the value from the preceding section by the average value at that position:
=IFERROR(R2/AVERAGE(R:R),””), filling the formula over to AE and all the way down.
In columns AF-AL we want to determine the approximate percentage of each player to use, based on his value, relative to others at his position. Under our position headers we can use a nested IF function combined with SUMIF and COUNTIF to get what we need:
=IF(Y2=””,””,IF(Y2<1,0,(Y2-1)/(SUMIF(Y:Y,”>=1″,Y:Y)-COUNTIF(Y:Y,”>=1″))), filling over and down. We can multiply column AK values by 3 because we will roster three separate outfielders: =3*IF(AD2=””,””,IF(AD2<1,0,(AD2-1)/(SUMIF(AD:AD,”>=1″,AD:AD)-COUNTIF(AD:AD,”>=1″)))
Finally, in column AM we can find our result: =SUM(AF2:AL2), and we can then sort by column AM, largest to smallest, or decending.
There. We did it. Not so bad, right?
This provides us with a list of the best values of the slate at each position, based on the projections we use. Especially when we are playing a large number of lineups, this method provides us an approximation of the optimal player composition of our lineups.
Warning! About Using This Method To Construct DFS Lineups
Do not adhere too strictly to these percentages when contructing lineups, as this method is only a guide, and does not take into account the balancing act of player stacks, opposing hitters, excess salary, and likely many other factors not listed. A side effect of using this is probably not leaky bowels. Get that checked.
Player time.
New to FanDuel? Scared of feeling like a small fish in a big pond? Well, be sure to read our content and subscribe to the DFSBot for your daily baseball plays. Just remember to sign up through us before jumping into the fray. It’s how we know you care!
Corey Kluber, SP: $10,200 – Especially in Cash, pay up for pitching today given the value plays available. Kluber pitches in Kansas City today, one of only a few locations on this slate with no chance of rain.
Max Scherzer, SP: $11,500 – Same as above, pay up today. Balky ankle and all, it’s hard to not want to start the ace of aces.
Jake Junis, SP: $8,400 – Pitching against an Indians team offering strikeouts aplenty, he offers great upside at this salary.
Pitcher mix today includes 5 parts Kluber, 4 Scherzer, 3 Junis, 2 each Berrios, Morton, Price, 1 Tanaka. Tasty.
Chris Davis, C/1B: $500 – As cinthree exceptionally detailed earlier this week, the price tag alone here is enough to roster Chris Davis as he will hit value a majority of the time even when he does not get a hit. Insane value potential. Also wasted roster spot potential, but at $500 it’s worth the risk.
The Red Sox. Every. Single. One. – There are hundreds of unique, playable stacks just among Red Sox players today. Be sure to use some of them, with a slight preference for Devers stacks.
The Twins. Most of them. – We’re talking Cruz, Kepler, Gonzalez, Cron, Polanco, Rosario. Lots of good value in there to allow pay ups in other areas.
Nick Williams, OF: $2,000 – If he’s in the lineup, play play play. Small sample, but with a hard hit percent at 57% his upside is huge.
I’m Only Happy When It Rains
LAA@CHC is an early PPD. Wind blowing out in Washington, so we could go contrarian with some PIT stacks against Scherzer.
Doing Lines In Vegas
Tempted by the over in Monterrey as the O/U moved, likely in response to yesterday’s relatively low-scoring game. Exploit recency bias whenever you can.