The Little Engine That Could - January, 15th 2020

I noticed my lineup optimizer created lines that would finish 1st in a large grand prize pool tournament (GPP) . I then applied machine learning algorithms to use outputs from a monte carlo simulation to find the winning lineups. Looking at the data, I realized “beaufourd” was wrong- he assumed winning lineups would fall within the top 20% of the monte carlo simulation. It turns out “middle of the pack” lines far exceed their expectations and win GPPs!!! I think this is a product of a chaotic system- NBA player performance night to night is random, the lineup combinations you face night to night are random; injury and late scratches change optimal lineups in a blink of an eye. In the past, I had to use advanced statistics to predict antenna performance- characteristic functions are the inverse of probability density functions but can be used to model chaotic systems. Applying some of these concepts to the contest simulator, I was able to fish out the highest scoring lineup.

This discovery lead to a set of a python scripts I call the DFS Engine.

My DFS Engine was used to generate a lot of lineups. These lineups were then uploaded to low stakes tournaments on DraftKings and FanDuel. The Engine’s results will be tracked from 12/28/2019 to 2/01/2020.

January 12th – January 18th, I will feed different projections systems to my lineup optimizer.

Each day I have been saving the projections from RotoGrinders,,, CustomDFS and BathrobeDFS. On Friday, I will be traveling to San Francisco from the east coast so I’ll have plenty of time to review previous slates and retroactively build lineups. In between naps on the plane, I plan to analyze which projections/combination of projections works best for my engine. Stay tuned for a weekend post.

Last Night’s Results (Sunday January 12th)

I generated 40 lineups , put 20 lineups in the NBA $12K Quarter Jukebox Tournament, and 20 lineups in the NBA $20k mini-max. My highest lineup of the night was in the mini-max and scored 289.25 fantasy points. This line finished in the top 1.85%

The highest scoring lineup created by my optimizer was 326.75, which far outscored the lineup above.

DFS Engine Notes

This weekend, I’ve adjusted the max unique players on my optimizer from 3 to 4 for to increase variation in my lineups, which in turn increased the number of high scoring lineups. Since today is MEGA SLATE with 10 games, I’m going to increase the max unique players to 5. I have a feeling that this will create some funky lineups with enough funk to win a GPP. James Brown would be proud.

I have a few side projects going on:

  • creating a smart speaker app to (1) give updated player news and (2) allow DFS players to change lineups with their voice
    • I registered as a twitter developer and created a script to save tweets based off a hashtag. The next step is to download Amazon Lambda’s API so I can create a smart speaker application to read the tweets in real time
  • creating another optimizer but with a different solver. I will be using a variant of integer programming instead of mixed integer that uses linear programming (which I believe the entire DFS industry is using)
    • I started to dive into the Julia JuMP package and python’s PuLP package. Also I started exploring the GAMS package that has many different variants of mixed integer programming solvers such as the COIN-OR BONMIN.

If you are interested in collaborating on one of these projects let me know. Also find out more about the engine at: Sailing Wide Right

Player Exposures

This blog was updated on January 15th, 2020 at 800AM (EST). When reading this remember a lot will change from now till lock. Players highlighted are important pillars to my lineup builds. Purple shows my core plays, green shows my cash play and red shows my GPP dart. Percentages next to players name show my exposures.


Core: Cody Zeller, Tobias Harris, Chris Paul

Cash: Domantas Sabonis

GPP: Jarrett Allen

If you have any questions, comments or would like to hash out an idea, DM me @Numeric_DFS and we can continue the discussion.

About the Author


  • X Unread Thread
  • X Thread with New Replies*
  • *Jumps to your first unread reply

New to DFS?

Be sure to click through our links and use our exclusive promo codes to receive the industry's best sign-up bonuses, including free access to our premium content.

  • FanDuel

    Get 1-month of RotoGrinders Premium for FREE (a ~$40value) by signing up through one of our links!

    Learn More
  • DraftKings

    Sign up for DraftKings using a RotoGrinders link & receive our DraftKings Premium content FREE for 1 month. That’s a ~$40 value! No DraftKings promo code necessary!

    Learn More
  • FantasyDraft

    FantasyDraft strives to put players first, with a mission to “provide a fun and fair experience for all.” To this end, the site has a well-built, easy-to-use interface and a the first of its kind in offering “Rake-Free” fantasy contests.

    Learn More is the home of the daily fantasy sports community. Our content, rankings, member blogs, promotions and forum discussion all cater to the players that like to create a new fantasy team every day of the week. Our goal is to help all of our members make more money playing daily fantasy sports!

Bet with your head, not over it!
Gambling Problem? Call 1-800-Gambler