DFS Optimizer: Getting Started

A quick rundown on how to get started using the DFS Lineup Optimizer

Footballguys has a new DFS Lineup Optimizer!

This article will provide a brief overview of its basic features to get you up and running. Its more advanced features will be explained in forthcoming articles.

Let's walk through the process of creating a set of multiple DFS lineups.

Choose your slate

The first step is to select which slate we'll be creating lineups for. There are three drop-down menus in the upper right portion of the Optimizer page. Choose the week, the DFS site, and the game slate from among the menu options. Only slates with pricing already available will appear in the menu options. Different DFS hosting sites post pricing for their various slates at different times, but you can generally expect more game slates to become available at each site as the week progresses.

In the image below, I have created a profile by choosing Week 1 at Fanduel's Sun 10am + 1pm slate.


Create a profile

The next step is to name our profile. The configurations that we will choose in the following steps will be saved so that we won't have to re-enter them each time we return to the Optimizer throughout the week. The profile that we're about to create will be available throughout the week when we click the blue "Load" button in the upper-left portion of the Optimizer page. Each profile will be specific to a particular slate, so if you create a profile for a certain FanDuel slate, it will not be available to use for a DraftKings slate.

In the below image, I've chosen to name this profile "Head to head."


Next, we will identify the type of contest we plan to create lineups for -- Cash Game, Small GPP, Medium GPP, or Large GPP. By selecting one of those options, the Optimizer will enter default values into the boxes for Total Entries and Target Finish.

If I choose "Cash Game," which describes, for example, a 50/50 contest, the Optimizer will default to a 100-entry contest and our aim will be to finish in the top 50. If I choose "Small GPP," the Optimizer will default to a 200-entry contest and our aim fill be to finish atop the field. You can modify these default settings by changing the numbers in the boxes to reflect the characteristics of the particular contest you plan to enter.

In a 50-50, you should always target finishing in the top half of the field. Targeting anything higher than that is counterproductive because, as described below, there is a trade-off between upside and mean expectation.

As a general rule, the more top-heavy the payout structure of a GPP is, the higher you should aim to finish. In a winner-take-all contest, no matter its size, you should always choose a Target Finish of 1. In a small GPP with a relatively flat payout -- say a 200-entry contest that pays 60 spots, but where the bulk of the prize money goes to the top 20 spots, you might choose a Target Finish of 20.

Why not always aim to finish #1? There's a trade-off between upside and mean expectation, so a lineup aiming to finish #1 will finish out of the money more often than a lineup aiming to finish in the top 10%. The correct Target Finish is not a matter of pure DFS strategy -- i.e., there is no single objectively correct answer. It is a matter of bankroll management and risk tolerance and can be affected by your overall ratio of cash games to GPPs and a number of other factors.


The values in the Total Entries and Target Finish boxes will tell the Optimizer how much weight to give to a lineup's upside potential, or ceiling, and also how much weight to give to a lineup's projected uniqueness. As a general rule, neither upside nor uniqueness should be considered when generating cash-game lineups. In GPPs, uniqueness is given more weight as the number of contest entries increases, and upside is given more weight as the ratio of the Target Finish to the Total Entries decreases (i.e., as you aim to finish in a higher percentile).

Since in this example I am creating lineups for a head-to-head contest, I clicked on "Gash Game" and then changed the default values to reflect contests with two entries, where I want to finish in the Top 1.

You can create up to 200 lineups in any given profile. Creating a large number of lineups is generally for entry into GPPs. Some cash-game players like to create a decent number of lineups for entry into 50/50s in order to reduce weekly variance. Most people do not create a large number of lineups for head-to-head contests because variance can be reduced by playing against a diverse set of opponents rather than by entering a diverse set of lineups yourself. For this example, I am creating five lineups.


While on the Controls page, we may choose various other settings under "Advanced Controls," but doing so is optional, and we'll save that for a future article. For now, let's move to the next phase of the process by clicking the "Players" button.


The Players page

This takes us to a page showing each player in the chosen slate, along with his salary, projected ownership, projected points, and projected upside. You can modify a player's projected points or upside by clicking on those figures and changing the numbers. If you modify a player's projected points, his upside will automatically be adjusted as well. If you modify a player's upside, his projected points will remain the same. (Green shows an upward adjustment; red shows a downward adjustment.)

The host DFS sites require users to make a couple of adjustments to the player settings so that entrants are not simply using Footballguys projections with no input of their own. Until at least two changes are made on this page, the blue "Players" button will have a warning sign next to it.


You can also modify the maximum exposure you want for each player by changing the figure in the "Exp %" column. To the right of that, you can lock a player into all lineups or exclude a player from all lineups by clicking the lock icon or the X, respectively. (Note that any player who is locked in must have a maximum exposure of 100 or no lineups will be generated.)


In the image above, I have excluded Ezekiel Elliott from all lineups, increased Christian McCaffrey's upside, locked Patrick Mahomes into all lineups, and decreased Andrew Luck's projected points. Note that after making these changes, the warning sign on the "Players" button turned into a checkmark.

Build lineups

After making our desired changes on the Players page, we are ready to click on the orange "Build Lineups" button. The Optimizer will then generate the desired number of lineups based on all of the input we've given it.

The lineups will be displayed on the following page. We can export all of the lineups into a CSV file that will be downloaded to your browser's default download location. Do this by clicking the orange "Export" button.


You can then upload the CSV file directly to the host DFS site -- in this case, FanDuel -- to avoid having to enter all of your lineups by hand.

That was pretty easy, wasn't it?

In future articles, we'll explain numerous ways that we can tailor the Optimizer's more advanced settings in order to further customize our lineup-generation process.