Yahoo DFS NHL Optimizer: Two Goalies, New Rules

My free NHL lineup optimizer now builds lineups for Yahoo, the third site after DraftKings and FanDuel. I expected a Yahoo DFS NHL optimizer to be a matter of a new file parser and a new roster shape. It was mostly that, except for one line in Yahoo’s roster that broke three of my assumptions: two goalies. This post is about what had to change, which settings would have quietly made every lineup impossible, and the one new rule I added because of it: never repeat the same goalie pair.

Bar chart of distinct goalie pairs. 6 lineups: 4 pairs with the limit off, 6 with it on. 20 lineups: 6 pairs off, 20 on.
Same Yahoo slate, same settings. Without a limit the solver keeps coming back to the same two or three goalie pairs.
Continue reading “Yahoo DFS NHL Optimizer: Two Goalies, New Rules”

What an MIT DFS Paper Taught My NHL Lineup Optimizer

An MIT NHL DFS paper found win probability was the only goalie predictor that mattered. So I rebuilt my NHL lineup optimizer around goalies.

Last week I came across a paper from three MIT operations research people — David Scott Hunter, Juan Pablo Vielma and Tauhid Zaman — called Picking Winners in Daily Fantasy Sports Using Integer Programming. It is about building a set of NHL DFS lineups with a solver, which is exactly what my free NHL lineup optimizer does, so I read it with a pencil in hand. They did not just run simulations: they entered real DraftKings contests and report that “we are able to rank in the top-ten multiple times in hockey and baseball contests with thousands of competing entries.” Then they donated the money — “around $15,000” — to the Greater Boston Food Bank, which I thought was a classy touch.

A good chunk of the paper is theorems and proofs about submodular functions. I skipped those. What I wanted was the strategy: what they stacked, what they found, and whether any of it should change my tool. One thing did, and it made the tool more than twice as fast.

Two bar charts. Seconds per lineup: 2.1 when the solver picks the goalie, 0.9 with the goalie fixed. Lineups built from 150 asked in 240 seconds: 70 versus 115.
Same FanDuel slate, same settings, same machine. Fixing the goalie before the solve cut the time per lineup by more than half.
Continue reading “What an MIT DFS Paper Taught My NHL Lineup Optimizer”

Vegas Lines and Injury Reports in My Lineup Optimizers

My free lineup optimizers for MLB, NFL and NHL now pull two things you used to have to look up in another tab: the league’s injury report and the Vegas lines. The part I care about most is how the Vegas lines get used, because the first version of that rule quietly did the opposite of what I built it for. Implied team totals are the most useful number on a DFS slate that isn’t in the salary file, so this is the post about how the tool gets them, what it does with them, and the one rule I had to throw away.

Strip chart: QB game totals under three rule settings; the first Vegas rule put 0 of 10 stacks in 50+ games, the shipped rule put 9 of 10 in 47+ games
Ten NFL lineups per row, built on a FanDuel slate with test Vegas lines. My first rule made the solver dodge high-total quarterbacks; the one I shipped does the opposite.
Continue reading “Vegas Lines and Injury Reports in My Lineup Optimizers”

The MLB Lineup Optimizer Now Pulls Live Batting Orders

The MLB lineup optimizer just got an upgrade that matters more than any of the lineup rules it already enforced: it now knows who’s actually playing. Confirmed batting orders and probable starting pitchers load automatically from Major League Baseball’s own schedule data, and two new lineup filters use that information to keep bench bats and non-starting arms out of your build by default.

Until now, the tool would happily stack a hitter who wasn’t in that day’s starting nine, or a pitcher who was penciled in for Thursday, not today. That’s on the player to catch by cross-checking DraftKings against a lineup site. Not anymore — the optimizer pulls the day’s confirmed lineups itself and marks every player accordingly, the same way the NHL version of this tool already does with starting goalies.

Bar chart: 201 pitchers in the DK player pool versus 12 actually starting that day
On a real 6-game DK slate, 201 pitchers showed up in the player pool — only 12 were actually starting.
Continue reading “The MLB Lineup Optimizer Now Pulls Live Batting Orders”

NBA DFS Variance Without a Subscription

The NBA optimizer is taking shape, and the shape is strange: the stacking panel is empty, the position rules are the site’s own, and the one feature I actually care about is a number nobody else gives away for free. This is where NBA DFS variance comes in, and why it stopped being something you have to pay for.

Short version of the last three posts: basketball creates no linked scoring unit, so there is nothing to stack; I measured that across three seasons and the correlations are about an order of magnitude weaker than football’s; and the old Excel model I dug up had already reached that conclusion by deleting the columns. What survived all of that is one idea, and it came out of the spreadsheet.

Scatter plot of 3,302 NBA teammate pairs showing that players who split minutes score against each other
Continue reading “NBA DFS Variance Without a Subscription”