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.

Everything new is off until you press a button

I have a rule for data the tool fetches on its own: uploading your player file must never fail because somebody else’s website is having a bad day. So both features sit behind their own buttons in step 2, next to the player list, and nothing happens until you press one. If the source is down you get a message and the rest of the tool works exactly as before.

  • Update injury list checks every player on your slate against ESPN’s injury report.
  • Load Vegas lines pulls the game total and the spread or moneyline for every game on your slate, and adds an Impl column to the player list: the points, runs or goals Vegas expects each team to score.
  • The rules that use those Vegas numbers live in step 3, Tier 2, in a box that stays greyed out until lines are loaded. Every threshold starts blank, and blank means off. The cash and GPP presets don’t touch them.

The injury list works like the site’s own OUT flag

DraftKings, FanDuel and Yahoo already mark injured players in their exports, and my tools already unchecked anyone marked out. The problem is that the flag is frozen at the moment you downloaded the file. A player ruled out on Sunday morning is still sitting in your pool from the Friday download.

The ESPN check does the same thing the site flag does, just later. Players listed Out, on injured reserve, on the IL or suspended get their checkbox cleared. Questionable, doubtful and day-to-day players stay in and get a yellow badge. Nothing is banned inside the solver: if you disagree, tick the player back and he stays ticked through later refreshes. There’s also a new On/Off by status row above the player list, one checkbox per status with a count, so you can switch off every questionable player in one click instead of scrolling for them.

The interesting design question was what to do when two sources disagree. The MLB tool already pulls posted batting orders, and the NHL tool already pulls line combinations and starting goalies. If a hitter is in today’s posted lineup but ESPN still lists him on the IL, I trust the lineup: it’s fresher and more specific, and injury reports are sometimes a day late taking a player off. He stays checked with an orange warning badge. A hockey skater who is only on a projected line but listed out by ESPN goes the other way and gets unchecked, because a projection is a guess and an injury report isn’t.

Turning a betting line into an implied team total

For football the arithmetic is simple. A game total of 43.5 with Green Bay favored by 5.5 means Vegas expects the two teams to split 43.5 points with Green Bay 5.5 ahead: 24.5 for Green Bay, 19 for Atlanta. Half the total, plus or minus half the spread.

Baseball and hockey don’t cooperate. Their spread is almost always 1.5 in both directions, so it carries no information about how lopsided the game is. The information is in the moneyline. So the tool turns both moneylines into win probabilities, removes the bookmaker’s margin, and then asks what split of the game total would produce that win probability under the Pythagorean expectation, the old Bill James formula that relates runs scored and allowed to winning percentage. I use the textbook exponents, 1.83 for baseball and 2 for hockey.

A real example from the day I built it: Minnesota at San Francisco, total 8 runs, Minnesota at -162. That works out to Minnesota 4.4 runs and San Francisco 3.6. I want to be clear that this is an approximation. Sportsbooks do post their own team totals, but the free feed I use doesn’t carry them, so the tool derives them and the page says so.

The rule that backfired

The first Vegas rule I wrote for NFL sounded obviously right: turn the bring-back on only in games with a high total. A bring-back is a player from the other side of your quarterback’s game. It pays off in a shootout, so why force it in a 38-point slog?

I ran it and checked where the quarterbacks came from. Zero of ten lineups had a quarterback in a 50-point game. The solver had found a loophole I handed it: a quarterback in a high-total game came with an extra requirement, a quarterback in a low-total game didn’t, so the cheapest way to satisfy my rule was to avoid the good games entirely. The constraint was correct and the result was the opposite of the intent. That is what the chart at the top shows.

The fix was to put the condition on the stack, not on the bring-back. The shipped rule says only stack quarterbacks whose game total is at least Y, and the ordinary bring-back setting stays as it was. Same test slate, threshold 47: nine of ten quarterbacks came from 47-plus games and every lineup carried its bring-back. The tenth came from the one game on the test slate with no posted line, which is deliberate: a team with no line is never filtered, because a missing number is not a low number.

This is the kind of thing I wrote about in One Good Lineup Is Easy. Twenty Is the Hard Part. An optimizer does exactly what the constraints say, including the parts you didn’t mean.

The Vegas rules, sport by sport

  • NFL: only stack teams implied at or above X points (no quarterback, and so no stack, from a team below X), and only stack quarterbacks whose game total is at least Y. More on why the quarterback is the whole stack in In Baseball You Stack a Team. In Football You Stack a Throw.
  • MLB: only stack teams implied at or above X runs, and leave out any pitcher facing an offense implied at or above Z runs.
  • NHL: only stack lines and power-play units from teams implied at or above X goals, and leave out any goalie facing a team implied at or above Z goals.

None of these change the blue checkboxes. A player on a low-total team stays in the pool and can still be picked as a one-off; he just can’t be part of a stack. If you set a number that leaves nothing to build with, you get a message naming the highest implied totals on the slate instead of an empty result. In my tests the stack rules also made solving faster, not slower: on a twelve-game hockey test slate the NHL stack rule cut solve time from 2.3 to 1.3 seconds a lineup, because the solver has fewer lines to choose between.

How I’d actually use it

  • Load your file, press both buttons, then sort the player list by Impl. That one sort tells you more about the slate than the salary column does.
  • Set the stack threshold so it leaves the handful of teams you would have stacked anyway. The point is to stop the solver from building a stack around a cheap team in a bad spot, not to shrink the slate to two games.
  • Use the opponent rule (pitcher or goalie) as a guard rail, not a strategy: set it high enough that it only removes the obvious traps.
  • Refresh both lists close to lock. Lines move, and players get ruled out.

One thing I have not done is measure whether these rules win more contests. I tested that the constraints do what they say, not that they make money. When I tried something similar for basketball, the idea looked great until I actually measured it, so I’m not going to claim a number I haven’t earned. What the Vegas data does for certain is save you the tab-switching and let the optimizer act on the same information you’d have used by hand.

All three tools are free, need no account, and export a file you can upload straight to DraftKings. The hockey one is new this week, and its launch post covers the line-stacking part.

Tradeline Supply
Things that I use, like, and am affiliated with:
Mint Mobile offers great cell phone service for $15 flat, get $15 off using the link. Get discounted phones with service activation and no contract.
I never spend money before I check Mr Rebates or Rakuten to get cashbacks, rebates, discounts, coupons or cheaper gift cards.

Leave a Reply