DFS Lineup Optimizer FAQ
There are two steps to editing fantasy points, salary and position:
1) Change the numbers in the Player Tables
2) Click Update Table
Unfortunately our user interface needs a bit of polish (which is in progress) so these tasks might be a little more difficult than they sound.
Here are more precise instructions.
Let's say you want to change the fantasy points of a player.
1) Find his projection on the player table in the FP0 column. If you click on the number, you get a pop-up with the details of how the number was calculated. Instead you must click just to the right of the projection inside the box so the cursor shows up to the right of his number:
2) Then click backspace until you delete the current projection:
3) Now enter the value you want. For this example, I put in 28 fantasy points:
4) Then you must find the "Update Table" button. Where it appears will depend on your screen size. In the image above it is hiding behind the Recommended Products center. You can see just the left edge of the button popping out from behind the Recommended Products center. Move your cursor over the button until you are on the very left edge as far away from the Recommended Products center as you are able. The cursor should change to indicate it is over a clickable object. Then click it.
Then you will see the fantasy points you entered also take effect for all other providers:
Since it takes some time to recalculate the table, we created the Update Table button so you can put in many changes, and then just update the table one time.
You can change position, salary, ownership percentage and fantasy points directly.
When you read in the player list from Draft Kings or FanDuel, it will update position, salary and player status (OUT or GTD) automatically.
The optimizer keeps different representations of a player's position. It keeps their league-designated position, which is used for the fill-lineups position-adjusted bonuses, their DFS-provider-designated position, and their position for the slate.
If you change Taysom Hill from a QB to a TE, he will show up as TE in the player table and he will appear in the TE or FLEX shot of the recommended lineup, but he will still be designated as QB in the recommended lineup. Finally, if you are playing in a DraftKings Showdown Captain Mode slate, there will be two entries for Taysom Hill in the player table, one as CPT and one as UTIL.
Advanced Sports Logic has a powerful approach for adding multiple teams stacks.
Under Set Pro Options you can set a team stack bonus.
The higher you set the bonus, the more the optimizer will use team stacking in your lineups when generating multiple lineups. It is a soft constraint and is more flexible than a rigid 3/2 team stack.
To see the effect of the team stacking bonus, you can generate multiple lineups without loading the player list for FanDuel or DraftKings. When you do this, the output CSV will give the list of players and teams rather than the player IDs for FanDuel or DraftKings.
You can try various settings of the team stacking bonus until you find a setting you like best.
Here are the results with the setting at 0%, 10% and 20% respectively, generating ten lineups for a DraftKings main slate, and with all other options set at default values (no diversity, max or min exposure):
Auto Team Stack Bonus = 0%
Note, the total fantasy points of all ten lineups is 1106.15, or the average fantasy points of each lineup is 110.6.
Better teams tend to stack a little bit naturally.
Auto Team Stack Bonus = 10%
With the team stacking bonus set to 10%, you can see the average fantasy points per lineup dropped from 110.6 to 107.7, or 2.6%, but there is significantly more stacking in the lineups as shown below:
Auto Team Stack Bonus = 20%
The trend for a lower average fantasy point per lineup and greater stacking continues.
We believe this soft constraint approach gives a better balance between an average fantasy points per line and the amount of stacking compared with rigid team stack strategies provided with traditional optimizers, and that this results in a higher probability of winning money in contests.
ASL is continuously improving the DFS Lineup Optimizer. These are the current issues we are aware of, and their work-around if any:
It Is Difficult to Adjust Fantasy Points, Position and Salary
See How to Customize Projections?
The Optimizer is Running Slowly
See What to do if the optimizer is running slowly?
Getting Errors
If an error pop-up box shows up because of an operation you are performing, it might be because you did the operation during an update or you were clicking on a button or pull-down to do a new operation before a previous operation finished. If you are experience an error, try reloading the app, and only click on buttons and pull-downs after your previous operation completes and not during an update.
If the error still occurs, then contact us at
All Players Are Being Deselected When Loading Fanduel or DraftKings Player CSV File
The most likely cause of this issue is that you aren't matching the correct CSV file with the correct slate. Double check you properly specified the DFS Provider and the Slate before you upload the player CSV file.
Can't Find Mon-Thu NFL Slate
When we architected the optimizer for NFL, we used NFL week boundaries as part of how we process data. So currently the optimizer doesn't support contests that cross NFL week boundaries. We plan to address this in the future.
Coming Features
To see what features are on our roadmap to add see What Features Does ASL Plan To Add?
To generate multiple lineups, go to your contest in DraftKings or Fanduel and download the players list. The following example is for NFL/Fanduel:
In the Lineup Optimizer, click “Use Lineup CSV” for Fanduel and "Use DKSalaries.CSV" for DraftKings:
Load the CSV into the optimizer by choosing the file and clicking “Use this file”:
If you plan to use any options, such as team stacking, or the “Pro Options” set those before generating the first lineup. When you generate the first lineup, it seeds the multi-lineup generator.
Then click “Generate Lineups”. You will get your single best lineup for each projection provider and for the blend:
At the bottom of each lineup is a “Multiple Lineup CSV” option. Under the projection provider of your choice, indicated how many lineups you want (up to 150) and click Save.
A CSV file will be downloaded into your downloads folder:
From your contest click “Upload lineups from CSV”
Select the CSV file, and click Upload:
To find players quickly in the Available Players Table use your browser search function, which is activated by typing "Ctrl + f".
If the Available Player Table seems to be running slowly, close the browser search function when switching the position filter.
Also, if you have Auto-Team Stack or Exclude Opposing Defense on when you are excluding or locking players, the Optimizer does a lot of recalculation after each change you make to see which players can still be inserted in a lineup. To exclude and lock players faster, shut off Auto-Team Stacking and Exclude Opposing Defense until you have several players selected and there is the possibility some players can't be used because of salary or team stacking requirements. This will help it run faster.
With the advent of the COVID pandemic, sometimes games are cancelled last-minute before the start of a slate. If you need to quickly remove all players from a cancelled game here is the fastest way to do it:
1) Click Set Pro Options. You will get a pop-up with all the different options.
2) Scroll down until you get the list of teams. Each team will have a toggle. Slide the toggle to off.
3) Scroll to the bottom of the pop-up and click Save:
3) Then from the bottom of the Set Pro Options pop-up click "Choose File" to select your edited Pro Options template, and then click "Use this file":
4) After you click Save, the Available Player table will recalculate and the players on the teams you shut off will no longer be available for the optimizer to use. However, if you previously locked a player into your lineup, it will remained locked in your lineup. This is useful if you want to lock players that already played and re-optimizer the remaining players.
Here are steps for using DFS Lineup Explorer or DFS Lineup Optimizer to set your regular fantasy football lineup.
- Pick the DFS provider that most closely matches your leagues scoring rules. FanDuel is half-PPR and DraftKings is PPR.
- Select the DFS slate that matches the remainder of the NFL week. For example, if it is Thursday, select the THU-MON contest, and if it is Sunday, select the SUN-MON contest.
- Go through the players you are considering starting, get their fantasy points from the app, and start the players with the highest fantasy points.
You can use your browser search capability, ctl-f, to help you find players more easily.
ASL’s founder, Leonard LaPadula, discusses a winning mindset for playing Daily Fantasy Sports.
What do we think of when we think of playing fantasy sports? When I started playing season-long fantasy football, I thought it was fun to have some competition among friends to see who could build and manage the best fantasy football team. I enjoyed watching football and rooting for my team, so why not build my own virtual team with real competition? This makes the games more exciting to watch and gives me more teams to root for.
My season-long fantasy teams are money leagues, but the money aspect is secondary to the thrill of competition and becoming part of my league's Hall of Fame when I win. The money aspect of season-long makes it more fun because it adds to the thrill of winning and the consequence of not winning, giving the “fantasy” a touch of "reality", but it isn’t enough to change how I live.
The focus on monetary gain is greater with Daily Fantasy Sports than with season-long fantasy sports because the contests are short term and we generally don't know the other contestants.
But here’s the thing – it doesn’t have to be the sole focus.
What are other reasons to play Daily Fantasy Sports?
We play it for entertainment. We like to be the captain of our own ship. We like to compete.
The mindset that we enter into playing Daily Fantasy Sports can make all the difference in the world in terms of it being fun, and keeping the chance of hitting the dream of winning a big prize alive, versus becoming a real nightmare of financial lose.
So, I have created rules for myself to ensure that Daily Fantasy Sports remains fun for me. With that said, even though I haven’t hit a big prize, I am winning, having doubled my money since the 2020 NFL season began.
These are my rules, and I share them with you so that they might help you enjoy Daily Fantasy Sports more without the stress of possible financial loss.
Rule 1: Play for the entertainment value. When I rent or buy a movie, I recognize that the enjoyment of watching the movie has monetary value. I don’t expect any money back. The money I pay to rent or buy the movie is within my budget, and I don’t have buyer’s remorse later thinking I lost a ton of money watching a movie. Even if the movie is bad, I don’t think about how much I paid to watch it.
Rule 2: Set a per season budget. Figure out the entertainment value that Daily Fantasy Sports has for you and set a budget for playing per season that won’t change your lifestyle if you get none of it back. Is it $10, $100, $1000? Whatever the amount, settle it in your mind that this is your entry fee, and everything from there is upside.
Rule 3: Keep the dream alive. Have a rule about how much you are willing to spend on any one contest. For example, I typically only put 5% of my FanDuel account into any single contest, but the maximum I will put in any single contest is 10%. If I am winning, I can spend more per contest as my account grows. If I lose, I am still in the game, but I must enter smaller contests or less lineups per contest. As long as there is money in my FanDuel account and as long as I keep playing, I continue to have a chance to hit a big prize, even if I am entering a single lineup in a contest at $0.05 per lineup.
If you lose with a little money, then you saved yourself from losing a lot of money. If you consistently win with a little money, it will grow exponentially as you enter larger contests and the winnings will become more significant. So, you are winning either way if you stick to a rule like this.
The goal here is to keep the dream alive by never losing more than 10% of my account in a single contest. No matter what happens, win or lose, I can continue to enter more contests. One way to think about this is that breaking even is winning, because you continue to have more opportunities to hit a big prize.
Don’t feel that you must enter 150 lineups in a multi-lineup contest because that will give you the greatest chance to win the big prize. This thinking is mathematically flawed. Without going into the math, your odds of winning a big prize are higher if you enter 10 lineups in 15 different contests than if you enter 150 lineups in one contest.
Rule 4. Don’t chase after losses. If you lost money in the past, don’t have the mindset that you must win it back. More times than not, this mindset leads to greater loses. This might be because you lose, or it might be that even though you win it isn’t enough, and you never cash out. If you pay for a movie and are disappointed with the movie, do you go to the next movie thinking it must be especially good to make up for the last bad movie? When you buy a car, do you think of all the money you spent on previous cars? Don't worry about the score - play for the current season.
Rule 5: Cash-out sometimes. You don’t ever win, no matter how much your account grows, unless you cash-out. Decide your cash-out point. My cash out point is that I will take out half the winnings at the end of a sports season. You could pick some dates every year that you will cash out, your birthday, your anniversary, before summer vacation. It doesn’t matter, just pick some dates to harvest your winnings. If you didn’t win, these are the dates when you can replenish your funds for your next period of play.
Don’t put money in in-between these dates. Stay disciplined. Just like full-season fantasy sports, when you are out, you are done for that sports season. Stick to the mindset that this is entertainment. If your account runs out of funds, use the offseason to think about your winning strategy for the next season that you have determined for yourself.
Winning is a matter of mental discipline. The hardest part of that discipline will be to stick to your own rules. Think about the rules rationally before you put your money in. In the middle of the season, it will be tempting to take chances and break your own rules. If you give into the temptation to break your own rules, you start down a slippery slope. If you can avoid giving into that temptation, then you will have more Daily Fantasy Sports success in the long run.
From a monetary standpoint, the only sure winners are the sites that host the Daily Fantasy Sports contests. If you multiply the number of entries by the entry fee and subtract the winnings, this is how much money the site takes from a contest. Typically, it is around 20%.
So, if you are an average Daily Fantasy Sports player, you are losing, on average, about 20% per contest. You are not a loser if this happens, you are just an average player.
The team here works hard to provide products that can truly help our subscribers win. We try to keep our subscription price low to minimize the additional money that you must budget to play Daily Fantasy Sports with the hopes that you have fun and win enough that you become a long term subscriber. Therefore, I am writing this article because I want you to be successful in Daily Fantasy Sports long term and avoid financial stress that can occur without a disciplined approach.
We believe our products have features and capabilities that outperform products that cost 10x more per month but we are taking the long term view, which depends on having a top performing product. We know that if you enjoy playing long term, you will continue your subscription long term.
As I mentioned, I have been consistently winning since I started playing Daily Fantasy Sports earlier this year (hadn’t played since 2016). I am truly enjoying playing and I use our own optimizer to decide my lineups. But there is not guarantee my winning streak will continue or that our subscribers will win. So we are not standing still, but are constantly improving our Daily Fantasy Sports lineup optimizer.
Watch for more articles on ASL's site including in the FAQ section (under Support). We plan to add articles that show what strategies have worked well.
ASL's Founder, Leonard LaPadula, provides an instructive case study for using the advanced multi-lineup features in ASL's DFS Lineup Optimizer for a FanDuel NBA pre-season contest.
As we approach the NBA regular season, I have been using the new multi-lineup features in ASL's DFS Lineup Optimizer in FanDuel NBA pre-season contests. Here is how I set my lineups this evening (December 16, 2020) for the FanDuel Preseason Main $0.05/lineup contest, highlighted in blue below:
First, I enter the contest and download the player list:
Then I start up the DFS Lineup Optimizer and set the slate:
Then I click Set Pro Options to generate the CSV file with the default pro-options settings and read it in:
Then I click Use Lineup CSV to read in the player list that I downloaded from the FanDuel contest.
Next, I go through the top Available Players on the FanDuel site to check the status of all questionable players:
Using Kevin Love as an example, I read his news and decide if I will allow the optimizer to add him to lineups or exclude him:
It looks like he isn't playing, so I click Exclude next to his name in the optimizer:
I quickly find him in the Available Players table by typing Ctrl + f to use the browser search and then typing part of his name.
After I go through the all the questionable players in the slate, I end-up excluding these players:
There are only eight teams playing, so I don't see the need to set 150 lineups. My goal isn't to maximize my chance to hit the top prize, but rather to maximize my winnings.
These are two different goals. The more lineups you enter, the greater the odds are that you will win the top prize, but the less likely you are to have an overall positive result. Let's say a contest allows 1000 lineups, and you are allowed to enter 1000 lineups. If you entered 1000 lineups, you would win first place, but you would also lose money because the cost of entering 1000 lineups is greater than the sum of all your wins. I want to enter some reasonable and diverse lineups, but with only eight teams playing my instinct is that 150 lineups is too many.
So I click Generate Lineups, and then enter 20 and click Save at the bottom of the blended projections.
While the multi-lineup generator runs, it produces a log:
This log provides valuable information to help determine the quality of the lineups. At the top, it shows the settings that were used.
Auto Max Exposure and Auto Min Exposure are ASL's special algorithms to calculate reasonable maximum and minimum exposures for each player based on their ranking and fantasy points. These are turned on in the default Pro Settings template CSV file.
The Stack Bonus gives players on the same team as another player in the same lineup a fantasy point bonus to account for positive cross correlation between their results. In NBA one player might get an assist, while another player makes the shot. The default setting is a 20% bonus. Since I am entering a tournament style contest, the idea is that I want to shoot way up in the rankings. Two players on the same team are more likely to out perform their projected fantasy points than two players on different teams.
For example, if a player has a 1/3rd chance to under perform, a 1/3rd chance to roughly meet expectation, and a 1/3rd chance to over perform, and if players on the same team rise and fall together, then the two players on the same team have a 1/3rd chance that they will both over perform their projection. (This is just an example, cross correlation isn't 100% correlated, but it is positive.) However, the odds that both players on two different teams will over perform are 1/3rd x 1/3rd, or 1/9th, because their relative performance has no correlation. This is why team stacking has value for tournament style contests.
Other optimizers allow you to specify exactly how many players you want to stack and how many teams you want to stack. ASL's optimizer allows you to specify how important stacking is, and then finds various combinations that optimally trade fantasy points for team stacking, rather than just providing a fixed team stacking result. You can increase or decrease how much stacking you want by increasing or decreasing the stack bonus.
The Diversity Bonus is given when the optimizer is considering using a player in a lineup that is not used in any other lineup. The default is to give that player a 7% bonus. This increases the total number of unique players that the optimizer will cause to be used in your multiple lineups. This is desirable because we don't know which players might exceed their projection. Thus, increasing diversity increases the chance that your lineups will include a player that significantly outperforms their projection, hopefully pushing that lineup high into the contest result rankings.
Then the log shows the Max and Min Exposure Settings for each player. You can override these settings for individual players manually in the pro-options file.
Finally, when the optimizer generates lineups, a log is provided that shows what it is doing and what the significant statistics are for each stage of the lineup optimization process.
The multi-lineup generator receives seed lineups from when the single lineup generator runs. The initial starting value of total fantasy points from these seed lineups is generally high because there are usually duplicate lineups (where the same players are in different starter slots which has value for seeding the multiple lineup generator but not for entering contests). After the first optimization, all duplicate lineups are removed, so the fantasy points total generally drops. The initial optimization also trades off fantasy points adding stack bonus and addressing max exposure, min exposure, and diversity.
So you can see in the log that after the initial optimization, total fantasy points went down, stack bonus went up, total value went up, the number of max and min exposure violations went down, and total number of players went up.
This is just a first pass optimization. Then the multi-lineup generator uses various algorithms to further optimize the lineups. Spreading max exposure is done to try to prevent the same top players from always being together. Of course you want the top players to be together in some lineups, but you don't want lineups with all top tier players and the remainder of the lineups to use only lower tier players because the later lineups will likely all fail to have value. You are looking for an unexpected player or two to pop, not every player in the lineup. So to give any one lineup the best probability to succeed it is important to spread the top tier players around.
It keeps running adjusting the underlying algorithm at various points until it can't find any more improvements.
If the final total fantasy points or final total value drops significantly from the initial optimization stage, then it is likely the pro-options are set too tightly.
The optimizers single best lineup came to 349.1 fantasy points. Here at the end of this log the 20 lineups totaled 6634 fantasy points, or an average of 331.7 fantasy points. The initial optimization totaled 6760 fantasy points, averaging 338.0 fantasy points per lineup.
It's nice that it hit all the max and min exposure settings and that the number of players rose to 26, but I thought I could do better. And then after thinking about it more, I thought it is pre-season so players will be switched in and out more, giving some of the less experienced players more opportunity while not taxing the veterans too much. This would have the effect of reducing the positive cross correlation between players.
So I decided to give it another run. This time I would turn off auto-stacking and auto-diversity, but set diversity to 150% (20 lineups x 150% = 30), so I was setting the goal to include a total of 30 unique players in my 20 lineups. Given that this is the pre-season, I wanted more diversity than usual because player performance is less predictable than usual. This is the log that was generated from that run:
Even though I shutoff auto-team stacking and added only four more unique players to the lineups, the average lineup fell almost another two fantasy points, from 331.7 to 329.9 (6598/20).
I decided I liked the first set of lineups better, but wondered what would happen if I cut the auto-stacking bonus to 10%:
I decided I liked these results the best. Now the average lineup is 332.8 (6657/20) fantasy points. I decided the extra diversity wasn't worth it. To go from 25 players to 30 players I was losing an average of almost 3 fantasy points per lineup, or a total of 58.8 fantasy points. Each added unique player was costing 11.76 fantasy points. I won't want to lose 11.76 fantasy points in a single lineup just to include a player that wasn't in any other lineup.
So I entered the lineups from this run into the FanDuel contest by reading in the lineups CSV. I double checked that all players in the lineups are playing. So the only thing left to do is wait and see the results when the games finish late tonight.
----
It is now Thursday morning. As promised, I will now give the results, rain or shine. Unfortunately it is rain. My results were not good. Let's take a look at what happened. First here are my results:
Only one of my 20 lineups won. I lost 90% of my entry fee, a whole $0.90. Glad I tested the waters with small entries before diving deep.
From this distribution, it looks like most of my lineups came very close. They were better than average, but I didn't have enough diversity to spread the results out so some would pop up into the winning region.
However, more careful analysis indicates that this is an incorrect way to interpret the above scatter gram. I believe the FanDuel scatter gram is based on fantasy points, not ranking. But contest wins are awarded based on rankings, not fantasy points.
So let's take a look at my results based on ranking. This contest has 59,880 total lineup entries. My results ranked 12486, 19281, 21740, 24724, 26350, 29477, 29997, 34662, 35269, 37079, 37122, 37913, 39313, 45861, 47838, 47875, 50077, 50198, 52895 and 55378. I used MS Excel to generate the following histogram which more accurately represents how the lineups faired based on ranking, the actual win criterion:
Most of the lineups ranked below the 50th percentile centered in the 30 to 40% range (38.65 to be precise). The lineups have a broad distribution. So looking at the results from this perspective, player diversity was fine. The real issue is either that the player projections were poor, or because it is preseason, few average Daily Fantasy Sports player play in these contests, but rather the NBA pre-season contests are dominated by the most ardent and knowledgeable of NBA fans.
The short conclusion is, with the NBA pre-season coming to an end soon, I won't play in anymore pre-season NBA games with the current projections. A lot of projection providers don't provide NBA pre-season projections, and now it seems clear why that is.
Looking a bit deeper, here is the top lineup with the projections from Daily Fantasy Fuel (DFF) and RotoWire (RW) shown on the right:
These projections actually don't look too bad. Coby White was drafted in 40.8% of the total lineups, so RotoWire was a little bit low compared to the norm, but other than that, these really aren't bad projections.
So let's look at my worst lineup and see what happened there?
There were two players that had low ownership that had high to very high projections from Daily Fantasy Fuel and RotoWire, Anthony Davis and Will Barton. We can also look at LeBron James as being highly over-projected, but he had a 58.7% ownership rate, so it seems the fantasy NBA community generally over-projected him for last night's game. Anthony Davis was the overall 2nd highest projected player after LeBron James in our projections last night. Will Barton was the 16th highest projection.
So what clearly killed this lineup, were the over-projections of LeBron James, Anthony Davis and Will Barton. LeBron was in 19 of my 20 lineups, Anthony Davis in 9, and Will Barton in 11.
Clearly the over-projection of LeBron James is the result of not doing a good job anticipating the pre-season rotation and reduced playing time of NBA starters.
A good thing it is Thursday, because I am looking forward to entering my NFL lineups. And the NBA regular season is just around the corner, so I look forward to entering more NBA lineups then.
I plan to write another article about my NFL Week 15 lineups. Hopefully, my results will be consistent with past weeks, so I can show you what winning looks like!
I also hope that his article was helpful for you to understand how the ASL advanced multi-lineup features work and some of the trade-off decisions you can make to increase your odds of winning.
ASL's Founder, Leonard LaPadula, provides an instructive case study for using the advanced multi-lineup features in ASL's DFS Lineup Optimizer for a FanDuel NFL single game contest.
I have been using ASL's DFS Lineup Optimizer since early October to enter FanDuel NFL contests. I setup a very modest account of $10.00, and since October I have grown my fund to about $22.00 by winning mostly NFL contests. As I have played, I have adjusted my strategy and created advanced new features in ASL's DFS Lineup Optimizer based on lessons learned.
I present this case study so you can see how the latest features work, and so you can learn with me as we continue to improve.
I decided I would enter 25 $0.05 lineups into the Thursday night Chargers vs Rams game (December 17, 2020):
First, I download the player list from FanDuel and read it into ASL's Lineup Optimizer by clicking Use Lineup CSV, then I look for players that FanDuel indicates are out, and use the browser search function (Ctrl + f) to see whether those players are in the Available Players table:
The way ASL's optimizer works for single game contests is each instantiation of a player as MVP, PRO, STAR, or AnyFlex is treated as a different player. This is to give you more control on exactly what you want the optimizer to do. However, it also means you must exclude each instantiation of that player.
After excluding all the players that were not going to play, this is how the Excluded Players table appeared:
To generate my lineups I use the default pro options. To set the pro options I click Set Pro Options, generate a template and read it in.
Then I click Generate Lineups to generate a lineup and to seed the multi-lineup generator.
Then at the bottom of the blend table, in the Multiple Lineup CSV section, I enter 25 and click Save.
This causes the multi-lineup generator to run, and while it runs it produces a log of what it is doing and the results:
The top section shows the pro option settings. Auto Max Exposure, Auto Min Exposure, Stack Bonus, and Diversity Bonus are all turned on.
Auto Max Exposure and Auto Min Exposure are ASL's special algorithms to set maximum and minimum exposures based on a rough calculation of the odds a player will be the top performer of his position, which is calculated from his rank and projected fantasy points.
Stack Bonus is a bump up to the projected fantasy points by the bonus percentage when two players with positive performance correlation are in your same lineup. This is ignored in single game contests, so has no affect for this case study. In an NFL contest involving more teams, it would bump up WR and TE 20% if the quarterback in the lineup is on the same team. For details as to why this might help win a tournament style contest see our NBA pre-season case study.
Diversity Bonus is a bump up percentage added to a player's projected fantasy points if they are not in any other lineups. The higher the percentage, the more diverse your lineups will be. By using a bonus, rather than a hard number, the optimizer can trade off diversity versus the cost of diversity.
Below these settings the log shows the max and min exposure settings for each player.
Since a player can be an MVP or an AnyFlex, a player will be listed twice in this section, once for their AnyFlex position and then for their MVP position. Since there are four AnyFlex slots and only one MVP slot, the max and min allocation for the AnyFlex position will be higher than the MVP position. For example, from the log we can see that Justin Herbert has a max/min exposure setting of 23/12 for the AnyFlex slot and 12/5 for the MVP slot.
The algorithm is not fine tuned to understand single game contests, and therefore it can create impossible constraints, such as the min exposure of a player between the MVP and AnyFlex slot add up to more than the number of lineups you are generating. This is okay, as the multi-lineup generator will do its best to meet the constraints, and when it can't it will pick the lineups that produce the most fantasy points.
The multi-lineup generator runs refinement cycles. As it goes through these cycles, it does its best to meet the constraints it has been given. Once it can't make any more refinements, it changes strategy.
For example, in the log file above, it made no progress between iteration 4 and 5, but there were still 7 max exposure violations. So it changed strategy to allow the maximum salary cap to be violated for those lineups with max exposure violations. You can see that in the next iteration, the total fantasy points of all the lineups rose to 1911.33 fantasy points, but now seven lineups have max salary cap violations.
So once it can't improve anymore it switches its algorithm and fixes the max salary violations, but now it doesn't insert any of the players that have hit their max exposure limit.
The log shows that at iteration 8 there are no more violations of any type, and the total fantasy points of all lineups fell from 1911.33 to 1826.21. From there it continues to try to refine the lineups until it can't find any other improvements.
The way I decide if my settings are producing quality lineups is that I look at the difference of Total Value from the beginning of the run to the end of the run. The idea is to create diversity and limit exposures to any single player without losing a lot of total value of all the lineups. I felt this was in an acceptable range. So I uploaded the 25 lineups into FanDuel.
After uploading, I double checked whether there were any questionable players that I needed to review or that were out. I thought everything looked good.
So Friday morning came, and I checked my results.
First, in this game Derek Carr and Hunter Renfrow exited early. My worst lineup had both of them:
Carr was 62.8% owned and Renfrow was 32.0% owned. Carr was in 16 of my 25 lineups (64%), and Renfrow was in 5 of my lineups (20%), so the impact of their injuries should have impacted my results about equal with everyone else.
Overall 8 of my 25 lineups won, or 32%. Out of my $1.25 in entry fees, I lost $0.33. Upon examining the results there was a big gap in fantasy points between my 8th best lineup and my 9th best lineup (82.21 vs 68.46) and looking deeper this was pretty much the split of lineups that had Derek Carr and/or Renfrow versus neither.
The 1st place had Mariota in his lineup (Carr's backup who wasn't expected to play at all):
Mariota was 0.1% owned. I believe if we look over the course of the season, the odds that a back-up quarterback might take over and score significant fantasy points are high enough to consider a strategy around that. In single lineup contests, most lineups have at least one, if not both quarterbacks. So when a starting quarterback goes down, a large number of lineups will be negatively impacted whereas the lineup with the back up in it will rise. Quarterback is the only position where there is such a dramatic shift across all lineups in single game contests.
If one wanted to play this strategy in multi-lineup with ASL's Lineup Optimizer, all one would need do is set the backup quarterbacks to have an AnyFlex min exposure of 1 and check that they aren't both placed in the same lineup (which is unlikely anyway).
Anyway, I continued to examine my results and I found that some players that I would call "punts" (low salary players that aren't expected to do much, but keep more cap space for the rest of the lineup) were placed in the lineups.
Two examples are Bryan Edwards who hasn't scored a fantasy point since Week 12, Jason Witten who hasn't scored a fantasy point since Week 11.
I don't think this changed the outcome much because the Renfrow and Carr injuries were really the dividing line between my winning and losing lineups.
This can happen when diversity is over emphasized. But in this case, I believe it was because I was testing out a new algorithm that allowed the optimizer to place punts in the lineups when fixing salary cap. After seeing these results, I turned that knob in the optimizer off, and pushed a new release to production.
The log file shows the last optimization effort is to "Add punts, if any". This is the only place now that these low-projected players could be added, and they will be added only if a hard diversity constraint has not been met.
So now I am looking forward to seeing how my Thu-Sat and Thu-Mon entries will do, and also to setting some lineups in today's contests.
I will report back and also show my overall winning record soon. I feel a little jinxed right now. I have only lost in three or four multi-lineup contests all season, and now in my two case studies, the other for NBA pre-season, I am reporting losing results.
However, if I won all the time, there wouldn't be any information to learn and improve from, so the $0.33 lesson was worth the fee, especially since it resulted in a change that makes the optimizer better for all of you.
ASL founder, Leonard LaPadula, describes three multi-lineup strategies using the ASL DFS Lineup Optimizer, explaining what did and didn't work.
On Thursday, December 17, I entered three different FanDuel multi-lineup contests and achieved the following results:
The table below summarizes information about each contest:
The sample size isn't enough to draw any firm conclusions, but I see some interesting trends in the data. The first interesting consideration is that I put the most lineups in the contest with the fewest teams, and the least lineups in the contest with the most teams.
In a multi-lineup tournament contest, the more lineups one enters, the greater the odds of winning 1st place price. However, after the first lineup, each additional lineup becomes less likely to win. Eventually, adding more lineups is harmful, not helpful. For example, if there were a multi-lineup contests with 150 total entries, and I entered 150 lineups, I would be 100% likely to win 1st place. However, the cost of the 150 entries would be greater than the total winnings and I would lose about 20% of the entrance fees.
When I play, my goal isn't to hit 1st place, but to have an overall positive trend. Every time I enter a lineup, I have a chance to win 1st place, but winning 1st place would just be a serendipitous event. My way of thinking is that breaking even is winning because I can keep entering contests that have a chance to win 1st place, and sooner or later it will happen, but if I try to force it, I will be more likely to lose money.
So a question I have asked myself is what is the right number of lineups to enter in a multi-lineup contest. It seems logical to me that the more teams involved in a contest, the greater the pool of meaningful players, and therefore there is a greater number of meaningful and diverse lineups to enter in a contest. My entries in the three contests above are exactly opposite this line of thinking, with the most entries (20) in the contest with only two teams, and the least entries (7) in the contest with six teams.
For the contests with the most and least number of teams, I used the ASL DFS Optimizer default pro-settings. The default pro-settings are:
- Auto Max Exposure: on
- Auto Min Exposure: on
- Stack Bonus: 20%
- Diversity Bonus: 7%
Auto Max Exposure and Auto Min Exposure are ASL algorithms based on player ranking and fantasy points the bound the maximum and minimum number of times a player can be inserted into a lineup with a goal of a player's usage being proportion to their probably to being the top player of their position.
Stack Bonus adds a fantasy point bonus to wide receivers (WR) and tight ends (TE) that are on the same team as the quarterback. Winning a tournament contest requires a lineup perform above average, and the higher a lineup ranks, the greater the payout. This requires some players in your lineup to outperform their projections. Quarterbacks and the players they throw to naturally rise and fall together, so there is a positive correlation between a quarterback's result and the result of the receivers on the same team.
If a player has as a 1/3rd chance of performing below his projection, a 1/3rd chance of performing near is projection, and a 1/3rd chance of performing above his projection then the odds that any two players with no cross correlation (e.g. a quarterback on one team and a receiver on another team) will both perform above their projection is 1/3rd x 1/3rd or 1/9th. However, if the quarterback and receiver are on the same team, then their performance will more likely rise or fall together. If they were perfectly correlated, then the odds that both will perform above their projection is 1/3rd.
This is the reason for team stacking. It creates lineups with a higher probability to get a big score. The ASL stack bonus is a way to create a flexible balance between team stacking and optimizing for raw fantasy points.
Diversity Bonus adds a fantasy point bonus to players that are not in any other of the generated lineups. Thus, if two players are close in projected fantasy point value, and one hasn't been used in any of the other generated lineups, it will be used in the lineup that is being generated. Diversity helps to increase the odds of not missing out on players that might significantly exceed their projected performance.
So in the case of the two lineups using the default pro-settings, there was significant spread between the top performing lineup and the lowest performing lineup. The goal of diversity is to cause the lineups to spread out, with the hopes that one ranks very high and gets a big pay out. In the case of entering only 7 lineups in the $2K NFL Hail Mary contest, four lineups won, yielding an overall return of 63% above the entrance fees. However, in the $3K NFL Pooch Punt, most of the lineups lost. This fits the hypothesis that with a small player pool, entering a lot of lineups with a large player diversity will trend toward losses, and in this case a loss of 40% of the entrance fees.
So while I was running my lineups for the $10K Sat Pooch Punt contest, I decided I wanted to see if I didn't force any diversity through either Max and Min Exposure or a Diversity Bonus, at what point would the number of players used equal the number of lineups. The more lineups the optimizer produces without any constraints to force diversity, the more the same players will be used over and over in different combination, and the less diversity across the lineups.
Running the multi-lineup generator for this week's Fri-Mon contest, which includes all 32 NFL teams, I charted the number of players used versus the number of lineups generated:
As I generate more lineups the number of players used also increases, but at a lesser rate than the number of lineups. I found that the number of players used equaled the number of lineups generated when I generated 31 lineups.
In the case of the $10K Sat NFL Pooch Punt, which only included 4 teams, the crossover point was 17 lineups. So I decided I would enter 17 lineups because without forcing diversity, I was averaging one unique player per lineup. Beyond this the multi-lineup generator starting making lineups with all the same players in other lineups, but just in different combination.
You can see from the scatter grams above that the results were not spread out as much in this contest as much as in the other two, which is to be expected since diversity wasn't forced. When I reviewed the lineups, at first I was concerned. Every lineup had Josh Allen, and I thought, if Josh has a bad night, I will lose all my lineups. However, then I thought, I am entering 17 lineups for $0.85. If I entered 1 lineup at $1.00, the same would hold true, that if Josh had a bad night I would lose completely. So thinking about it this way, I considered that this was no more risky than entering a single lineup at a higher entry fee, and was probably the most likely 17 lineups to have a chance of hitting the 1st place prize.
Fortunately for me, Josh Allen had a big night and every lineup landed in the winning region, resulting in a nice payout.
So the take away from this study is that forcing too many lineups with too much diversity in a contest with too few teams might lead to consistent poor results. There might be a sweet spot around where the number of players used through natural diversity equal the number of lineups generated. If this is true, then it makes sense to enter less lineups in contests with less teams, and more lineups in contests with more teams. However, the sample size of this study isn't sufficient to make this more than a hypothesis. Nor am I concluding that some diversity shouldn't be bit forced through max and min exposure and diversity options. I present it merely as a concept to consider when entering multiple-lineup contests.
ASL's founder, Leonard LaPadula, uses ASL's Auto Team Stack feature to set two FanDuel NFL lineups. Here are the results.
Typically when I enter multiple lineups into a contest I try various strategies using the ASL pro option settings and run the ASL multi-lineup generator.
However, I decided to enter two different $1 single-lineup contests in the Dec 17, THU-MON slate. Since this is a full roster slate, I could now consider what strategy I wanted to use to build the two lineups. I decided I wanted to enter two lineups created by using team stacking with a depth or two, each with a different quarterback.
First, I ran the optimizer with Team Stacking set to Auto and No of Players set to 2. This image shows the DFS Optimizer running with these settings for the Dec 25 FRI-MON slate:
When Auto Team Stacking is enabled, it runs once for each team in the slate.
For my Dec 17 THU-MON slate, it produced a lineup that included the pairing of Josh Allen (QB) and Cole Beasley (WR) of the Buffalo Bills.
I then excluded Josh Allen from the Available Players table, and ran Auto Team Stacking again so that it will give me the second best team stacking combination. This time it gave me Lamar Jackson (QB) with Mark Andrews (TE) of the Baltimore Ravens.
When I am exploring, I always run with Excl Opp Defense off. This is because this feature causes the optimizer to run a bit slower. The ASL optimizer doesn't just calculate defense as a last lineup fill-in from among the remaining defenses that don't conflict with any offensive players, but it is a two-way exclusion. It might pick a defense because of value, and then exclude opposing offensive players. It finds the lineup that produces the most fantasy points for the given set of constraints.
However, when I am done exploring, I rerun with the final settings with Excl Opp Defense on. So I ran with Team Stacking set to Buf, No of Players set to 2 and Exclude Opp Defense on, and then again with Team Stacking set to Bal to get my two lineups.
The are the two lineups that the optimizer produced:
The goal of team stacking is to gain a small edge to increase the odds a lineup will push up into the higher rankings and win a greater return. The idea is that a quarterback and his receivers rise and fall together or that they have positive correlation. A quarterback's performance and the performance of receivers of other teams have no direct correlation. If our goal is just to have an above average score, then team stacking doesn't really help. However, in tournament contests, a lineup must do better than average to win.
Let's say a quarterback has a 1/3rd chance of performing below their projection, and a 1/3rd chance of performing near their projection, and a 1/3rd chance of performing above their projection. If a receiver has 100% correlation with the quarterback, he will under perform if the quarterback under performs and over perform if the quarterback over performs. In this case, the odds that both the quarterback and a receiver on the same team over perform their projection is 1/3rd since they rise and fall together. They don't actually have 100% correlation, so the odds are a bit less than 1/3rd that they both rise together, but the odds that they both rise together are greater than the odds of a quarterback and a receiver on two different teams both over perform. In this case, the odds that they both exceed their projected performance is 1/3rd x 1/3rd or only 1/9th.
It is the opposite idea of why it is often a good idea to exclude opposing defenses. We don't know that the opposing defense that we exclude will perform better or worse then their projection, but we know our offensive players can't score touchdowns without the opposing defense being negatively impacted. So we hope for a defense that performs well but not at the cost of our offensive players performing poorly.
So here is the result of the two lineups:
Josh Allen had a great night, and that lineup scored 145.96 fantasy points. Lamar Jackson had an average night and that lineup scored 133.52 fantasy points, missing a win by only 1.1 fantasy points. Both Cole Beasley and Mark Andrews had okay nights.
All-in-all I can't complain. I paid $2 in entry fees and won $3 back, or gained 50%.
Was this the best strategy for entering these two lineups? What would have happened if I had set the stacking depth to 3 instead of 2? I don't know the answers to these questions, but hopefully this provides you one more approach to think about for setting lineups that work together to give a good chance to win.
ASL's founder, Leonard LaPadula, describes his strategy for winning FanDuel contests on opening day of the NBA regular season.
Since October to opening day of the NBA season, I have grown my FanDuel account from $10 to $22 mostly from playing in NFL contests. Now we are two days into the NBA season, and my account is already at $35.60. This is an awesome way to start the NBA season and I hope it is an indicator of things to come.
In this article I describe how I achieved the wins that brought me this success.
On opening day, I entered the following four contests and achieved the following results:
The following table summarizes these results:
The way I think about winning DFS is that there is no strategy or algorithm that can guarantee a big win. Rather my focus is on consistently breaking even or making small gains. I typically spend about 5% of my account to enter a single contest, but never more than 10%. If I can slowly build my FanDuel fund, and keep entering tournament contests, eventually a big win will find me.
So I attempt to find strategies that help me achieve the goal of small consistent growth, rather than directly trying to come in first in a contest.
I have been having early success with a strategy that I call Natural Diversity. The idea is to vary the number of lineups generated such that the number of lineups is equal to the number of unique players used to build the lineups. So I don't force diversity. I essentially let the lineup generator indicate to me when it has run out of additional players to build top lineups, and that's how many lineups I enter.
Here is the log from the multi-lineup generator for the first contest ($15K Tue NBA Piggy Bank Shot):
The optimizer's single best lineup was projected to score 295.9 fantasy points. Here, the 25 best lineups (not including stack bonus) added up to 7299.56 projected fantasy points, or an average of 292.0 fantasy points per lineup.
Stack Bonus gets added when two or more players on the same team are in the lineup, which can increase the probability of winning tournament style contests.
I felt the 3.9 fantasy point drop from the single best lineup to the average of the 25 lineups plus the stack bonus of 1399.43 looked good, so I entered these lineups.
FanDuel spotted me a free $3-entry into the $2.5M Tue Clutch Shot, so I just entered the single best lineup. I had just lost four NFL Week 15 Single Game, Single Lineup contests, so I was glad for the $5 win that kept my account moving in the right direction.
For the $8K Tue NBA Fadeaway contest I decided to force a little diversity by turning on Auto Min Exposure. Here is the multi-lineup generator log:
The Single Game NBA slates use MVP, STAR, PRO and UT positions. The ASL DFS Lineup Optimizer treats the same player in each of these positions as four different players. This is why the top of the log lists Anthony Davis four times as having a Minimum Exposure setting of 1. (I will push a new version to production tomorrow morning that adds the player position to that part of the log.) Also, in a Single Game slate, stack bonus should be ignored. (So stack bonus should show up as all zeros in the log. This will be fixed tomorrow as well.)
The single best lineup was projected to score 256.8, and the average for the five lineups was 251.7 (1259/5). The difference seemed a little on the high side, but acceptable, so I entered those five lineups.
For the $2K Tue NBA Fadeaway contest I left both Auto Max Exposure and Auto Min Exposure on. Here is the log file from the multi-generator for that run:
To learn more about the various Pro Options, such as Auto Max Exposure and Auto Min Exposure check out this Case Study.
As expected, this run used more unique players (20) compared with the previous set of lineups (13) because Auto-Max Exposure forces more diversity. The single best lineup was 240.3 fantasy points versus the average of the 5 lineups which was 235.6 fantasy points. This difference seemed a bit high also, but acceptable.
Two of the five lineups won, and the overall result was break-even.
There isn't enough data from these four contests to draw any firm conclusions. Just like for NFL, the Natural Diversity strategy gave a good result. The results of the Single Game entries weren't positive, but in another slate the same strategy might have done well. Overall, Day 1 of the NBA regular season yielded a 33% return on $6.75 in entry fees, so it was a win.
Last night, Wednesday December 23, following similar strategies yielded exciting results. A factor that might have helped last night's winning result might be because the OKL/HOU game was cancelled and perhaps many contestants didn't make adjustment their lineups. I reran all the lineups for all affected slates. Here was my best result:
Here is the summary of the results from all my contests from last night:
This type of result won't happen every day. However, it makes the case for sticking to more conservative strategies, that cause my fund to grow a little overall, or at least last longer, and then over a period of time, out of randomness and the law of large numbers, the odds of hitting a big payout increase significantly.
As a side note, I don't plan to play in the Small Fadeaway contests going forward. FanDuel has set up this slate with the marketing pitch that "Everyone Wins". However, it seems to me it is a way that FanDuel gets a greater fee percentage. In most contests, FanDuel takes about 20%. At first glance it appears the same is true for the $50 NBA Small Fadeaway. However, a deeper analysis shows FanDuel is getting 32.5% out of these contests. The way it works is the fee is $0.25 per lineup, but everyone is guaranteed to win at least $0.10. So really this is like paying $0.15 per lineup and the prizes are actually $0.10 less. The contest takes 239 entries and FanDuel keeps $0.25 x 39 in fees, or $9.75. For the contestants, there is really only $30.00 ($0.15 x 200) in play, rather than $50.00 ($0.25 x 200). So the real percentage that FanDuel takes from the contest, relative to real potential winnings is $9.75/$30.00 or $32.5%.
No thanks. I will stick to the contests where a greater percentage of money is returned in prizes.
I hope this article was interesting and gave you some ideas for how you might develop your approach to playing Daily Fantasy Sports. There is no formula or tool that can give you guaranteed wins and it truly is a contest, where you are competing against others submitting lineups. Learning to effectively use the tools you have for creating lineups, out-thinking opponents, being disciplined and consistently evaluating strategies are the things that will give you the best chance to win.
ASL is constantly improving the DFS Lineup Optimizer. You can find write ups on the latest features, known issues and what improvements are planned next under Support/FAQ on the ASL website.
Okay, okay, I know these are not huge numbers, but that doesn't mean it's not significant. When I founded ASL, my passion was (and still is) season long fantasy football. Our first products were centered around season long fantasy football with emphasis on dynasty and keeper leagues, and we are bringing those back in 2021.
However, as a stepping stone to the ASL restart we decided to build our Daily Fantasy Sports Lineup optimizer first, believing it would be a simpler product and year-round revenue. However, I never really played in Daily Fantasy Sports except a small amount of dabbling in it in 2015, at which time I quickly lost $190.
With the ASL DFS Lineup Optimizer finally maturing as a product (and it isn't perfect yet but it has powerful features you won't find anywhere else), I finally started playing again in September using our optimizer. On the last day of September, my account was at $8.02. Without adding funds to the account, on the last day of December it was at $44.72, a 5.5x growth, as shown on the graph below:
I believe this success is sustainable over the long term. I have been learning as I have been going, and now that the NBA season is here, and I can enter contests everyday, it seems the account is growing faster.
The ASL DFS Lineup Optimizer is really a tool box. You can't just press a button and expect to win in Daily Fantasy Sports. It is important to have a strategy and play consistently.
Here are the rules and practices I have set for myself that I believe have helped me win.
Rule 1: The first rule is about managing the "bankroll", and the key is not to run out of money! To protect the bankroll, I typically only enter 5% of my FanDuel balance in any one contest, and I have a hard maximum of 10%. I am not quite as conservative as I could be because I also want the account to grow. I count the money invested in fees in upcoming and live contests as part of my bankroll. For example, I might have a $5 balance, but $10 in fees for upcoming contests, and $10 in feels in live contests. In that case, I consider my bankroll to be $25, and will typically still spend between $1.25 to $2.50 per additional contest.
Yes, it's true that if I lost all the contests I entered on a single day, I would lose just about everything, so there is risk, but it is a lot lower risk than putting it all in one contest. (And if you read my article, A Winning Mindset For Playing DFS, you know that I only put money into my FanDuel account that I am willing to lose. If I lose everything, I will put another $10 in the account at the start of the next quarter, so worst case, I can't lose more than $40/year.)
Rule 2: I enter every tournament slate that I am able to every day. I enter the full roster contests for every slate available, the single game contests for every game available, and since my account has gone over $30, the 3-man challenge (which is $3 per entry).
Rule 3: I don't play in the ticket contests - cash-in cash-out only! I also don't play in the "Small Fadeaway (Everyone Wins)" contest. FanDuel takes about 20% per contest, but on the Fadeaway contests, since the entry fee is $0.25 per lineup and everyone is guaranteed to win $0.10 per lineup, then the real entry fee is $0.15 per lineup and the amount of money that is actually in play for winning is much smaller. Doing the math on these contests, FanDuel is actually making about 32.5% per contest, so I avoid them because it makes winning in harder.
Rule 4: When I see what contests are available within a slate I follow these rules:
- The highest fee multi-entry contest where my budget allows me to enter 10 or more lineups. For example, if my budget is $2.50, and there is a $0.05/lineup contest and a $0.25/lineup contest, I will select the $0.25/lineup contest
- If there are two multi-entry contests available with the same entry fee, I enter the contest with the largest number of lineups. For example, I would rather compete in a contest with 479,041 than 297 contestants. The reason for this is that the lineups will be more diverse in the larger contest. Diversity has its use, but the typical person entering 150 lineups is entering a lot of random shots that will mostly fail. Sure, he might get lucky with one of his lineups (good for him if he does), but many of his other 149 lineups are mostly cannon fodder to ride my lineups higher in the rankings.
- If there are no contests available in my fee range where I can enter 10 or more contests, I enter a higher fee contest, which usually means I can only enter one lineup. If I have to pick between two higher fee contests, I will pick the multi-lineup contest. Again, this is because I am going to put in my single best lineup. If I enter a single lineup contest, everyone else will likely be entering their single best lineup also, which probably won't be that much different than mine. However, if I enter a single lineup in a multi-lineup contest, then there is likely to be a lot more diversity in the other lineups - which are mostly cannon fodder for my one lineup to do well.
For example, let's say my maximum fee budget is $3 per contest. Here is the order that I would enter today's (Jan 2, 2020) contests available in the Main NBA Slate:
This contest is perfect. I can enter up to 12 lineups for $3.
This contest is good too. I can enter up to 60 lineups for $3, but that is more than I will enter because I follow a strategy that I call "Natural Diversity" (which I explain in Rule 5.
This is another good contest to enter because although I can only enter a single lineup based on my fee budget, it is a multi-entry contest, and thus there will likely a lot of diversity in the other lineups. One of the diverse contests might win the big payout, but my one lineup is likely to rank higher than in a single-entry contest because of the diversity.
I will enter this contest, but as a last choice. Now I am just entering my one best lineup against everyone else's one best lineup, and don't have any additional advantage beyond the quality of the projections or if anyone is playing without using an optimizer.
Rule 5: I use a strategy called Natural Diversity, which I explain in this article. The basis of it is that I keep running the multi-lineup generator until I find the point where the total number of unique players equals the number of lineups. I shut off Auto Max Exposure, Auto Min Exposure and set Auto Diversity Bonus to 0% (See details in the aforementioned article.) A typical strategy is to force diversity and enter 150 lineups to try to hit one of the top rankings in the contest and get a big return. My strategy is more around consistency and rather than trying to have the best chance to win the top spot in a contest (at the cost of usually losing money), I am focuses on smaller consistent wins, while still having a chance to win the top spot in a contest. These two results in the same contest illustrate what I mean:
A friend and I were comparing notes on our December 30 NBA Main slate results. He entered 150 lineups in the $0.05/lineup contest. He just about broke even, losing $0.10. He sent me the above image from his iPhone.
It turns out we had entered the same exact contest. However, based on Natural Diversity I only entered the 17 best lineups. (Generating 17 lineups with all diversity settings off caused the multi-lineup generator to use 17 unique players - that's the point I call Natural Diversity.) Since 17 x $0.05 is only $0.85 and my budget per contest was higher, I entered each lineup twice. (I could have gone higher, but twice per lineup is my max - make that Rule 5b!). So my total entry fee was $1.70, and my winnings were $3.76, or a $2.06 net gain. I more than doubled my money - sweet! My friend had 150 chances to win 1st place in the contest, compared with my 17 chances, but the tortoise marched on while the hare went nowhere.
Rule 6: Always download the player list from the FanDuel site, even when entering a single lineup in a contest. ASL is continually improving the DFS Lineup Optimizer, but from time-to-time a player will have a wrong position allocation. Even if this doesn't cause an invalid lineup, it can cause a player to be missed in the lineup recommendation. For example, if the player is an designated as an SG, but was wrongly designated an SF, he might not be the best SF for a lineup, but he might be the best SG for a lineup. Reading the player list ensures I always have accurate player position information in the optimizer. (If there is an issue with a player salary, you can fix that by setting it with the Custom Projections option.)
Rule 7: This goes without saying, but always check player status right before the games. Even players that were designated as healthy and ready to play can sometimes be ruled out right before a game. As an ancillary to this, if possible, enter your lineups early in the day. Many of your opponents might forget or be unable to check status right before the games, so you get an extra advantage by setting your lineups early, but rerunning the optimizer and doing a CSV edit right before the slate starts. One of my best days was the 2nd day of the NBA season, where my account doubled in a single day. (You can see the spike on the graph above.) I believe the fact that the HOU/OKC game being cancelled might have played a roll in that. I had entered my lineups early that day, but reran all of them after the game was cancelled. I didn't have a single big win, but just about every contest I entered won. Here is an example scatter gram of one of those contests:
$1.70 in, $11.25 out from just this one contest. That works for me.
Rule 8: Set your rules, for how much you will spend, how often you will replenish your account, and when you will cash out. My rule is to either replenish or cash out half my winnings at the end of each quarter. So yesterday (January 1) I did exactly that - cashed out half my winnings. It isn't much, but it is enough to buy a bottle of wine or a steak to celebrate my wins. Playing responsibly is what keeps it fun. When you set rules for yourself, stick to them, and then you won't get into a stressful situation.
I don't plan to write regular DFS articles - going to be hard at work rebuilding The Machine very soon. However, I will report on any major new findings or improvements, and I also play to report at the end of each quarter to summarize how my own DFS play panned out.
We are constantly improving the ASL DFS Lineup Optimizer. To see known issues and their workarounds, or to see what we are working on next, visit our FAQ page.
If you are selecting or deselecting players from the Available Players Table with Auto-Team Stack or Exclude Opposing Defense turned on, the update calculation for the new list of Available Players takes a long time. As a workaround, try shutting of Auto-Team Stack and Exclude Opposing Defense until you are close to a situation where you might not be able to build a lineup from the available player pool. Then turn these back on to finish making your final selections.
ASL is continuously improving the DFS Lineup Optimizer. We prioritize our work as follows:
- Resolve issues
- Add requested features and improve performance
- Improve the user interface/experience
We are a small team so progress is not always as fast as we like, but we are committed to providing the best optimizer at the best subscription price. These are the items we are either working on today or plan to work on in the near future:
- Resolve all known issues per the Known Issues FAQ
- Make the 60-minute updates seamless so you can decide when you want to move to the latest data versus finishing work with the current data
- Make the user interface faster
- Add graphical interfaces for setting pro-options and custom projections
- Seamlessly integrate the player list for each slate
- Integrate more closely with current projection providers
- Provide more projection provider options
- Add higher quality injury status information
If you have other features you would like us to add, send us an email at
We also build custom private optimizers or provide white-labeled versions for 3rd-party websites. If either of those interest you, contact us at