On October 16 a single DFS late scratch sat in 29.1% of the NHL lineups I had built for a two-game slate. Egor Chinakhov, a $4,100 Penguins winger, was ruled out about 25 minutes before puck drop, and my Frozen Tools set had him in 134 of its 461 lineups. In the real DraftKings contests, 1.6% of entries had him. I have since rebuilt the night without him, checked four other nights, and added a “Check late news” button to my NHL lineup optimizer and the other three sports. The surprise is how little removing him changed.

What happened to the winger
I paper-trade (real lineups, fake money): I build sets of lineups before the games, then score them the next day against the actual contest fields. The slate was Penguins at Avalanche at 9:00 p.m. Eastern and Bruins at Ducks at 10:00. Chinakhov was listed at $4,100 on the second line and the second power play, and my pool had him at 5.3 projected points. Cheap, plausible, exactly the kind of name an optimizer is built to find.
His Daily Faceoff news page has an injury item stamped 00:34 UTC on the 17th, which is 8:34 p.m. Eastern on the 16th, 25 minutes before the first puck. It cites the Penguins’ own account on X: lower-body injury, will not play in Colorado. The DraftKings player file I had downloaded an hour or two earlier showed no status next to his name, and my routine is to pull ESPN’s injury list about 30 minutes before the slate and then not look again. A note posted at 8:34 lands in that gap. (I can tell you my routine, but not whether ESPN had him flagged that night, because I never went back and checked.)
How many lineups held him
The real field barely touched him: 1.3% to 1.7% of entries in each of the four contests. My seven plain and simulation sets held him in 90 to 134 lineups each, 19.5% to 29.1%. The grid sets, which build around a goalie and a team stack, held him in 28 (6.1%), and the grid_top set not at all. He scored zero, so every lineup with him was playing with eight men.
My theory for the pile-up, which I have not tested: an optimizer is a machine for finding the player whose price is most wrong, and a player who is about to be scratched has the most wrong price on the board, $4,100 for a guaranteed zero. The field is hundreds of different hunches. My plain sets share one projection and one rule book, so they all walk to the same cheap name together.
The part where it barely mattered
I assumed this explained why my plain sets did so badly that night (they lost about 91% of their entry fees). So I rebuilt the whole slate from a pool with every player who did not dress switched off, and scored it again.
| Set | ROI as built | ROI scratch-free | Average points, as built | Average points, scratch-free |
|---|---|---|---|---|
| grid | −21% | −20% | 112.4 | 113.0 |
| plain_dff | −91% | −92% | 78.0 | 79.3 |
| plain_ft | −91% | −90% | 78.7 | 79.2 |
That is a point or two of ROI. The back-of-envelope agrees: a zero in 27.5% of lineups, replaced by someone worth about 5 points, should cost about 1.5 points per lineup, and the plain_dff set gained 1.3. A scratched player was a one-point problem, not a thirty-point one. The plain sets lost for another reason. My working explanation is that on a four-team slate the plain builder runs out of lineups that satisfy my stacking rules and has to relax them to reach 461, while the grid keeps them. It is a working explanation, nothing more.
I felt a little silly. I had been ready to blame the news for a result the news did not cause.
How common is this?
I checked the nights I could. This is the share of lineups holding a skater who never dressed, for the worst set each night:
| Night | Worst set | Lineups with a non-dressed skater |
|---|---|---|
| Oct 5 | DraftKings-projection set (since dropped) | 20.9% |
| Oct 11 | DraftKings-projection set (since dropped) | 26.6% |
| Oct 13 | any set | 4.9% or less |
| Oct 14 | Frozen Tools, extended | 21.3% |
| Oct 16 | Frozen Tools | 29.1% |
So on most nights roughly one lineup in four or five, in the worst set, had a player who did not play. I rebuilt four of those nights without the scratched players (Oct 5, 11, 14 and 16) and the order of the sets did not change in any consistent way. That is why I now build every night’s test from a scratch-free pool. I want to measure how well the tool builds lineups, not how well I catch news at 8:34 p.m., and I do not want a good result to look like hindsight.
Check late news: the button
If I ever play for real money, I will not be able to ignore news that breaks after I build. So the tool now has a “Check late news” button in the Lineups card, which appears once lineups exist. It looks at the injury and lineup sources, highlights every lineup holding a player who is ruled out, and pops up a message such as “Chinakhov is now ruled out and is in 134 lineups”. Each flagged lineup gets a suggested replacement. It uses the game start times in the DraftKings and Yahoo files, so it marks a flagged player as locked once his game has started and never suggests a replacement whose game has. FanDuel’s player file has no start times, so on FanDuel it cannot tell which lineups are still editable. The earlier posts on injury reports and Vegas lines cover the pre-build side.
| Sport | Sources it checks |
|---|---|
| NHL | ESPN injuries and Daily Faceoff news |
| MLB | ESPN, MLB’s official stats API (posted batting orders), and RotoWire lineups |
| NFL | ESPN and Fantasy Alarm inactives (only teams whose list is marked Confirmed) |
| NBA | ESPN only so far; I could not find a source I can read reliably yet |
What it does not do
It does not rebuild or re-upload anything. Editing an entered lineup on DraftKings, FanDuel or Yahoo takes a file in each site’s own format, with entry IDs I do not have, so the button points at the problem and suggests a fix, and you swap by hand. As far as I know a DraftKings swap is allowed until that player’s own game starts, into a player whose game has not started either, within the cap (an older RotoGrinders explainer says so; check each site’s current rules).
And it has not been proven on a live night. The Daily Faceoff reader, the MLB sources and the NFL source have run against saved copies of their pages, not against a real slate, and the NBA has no extra source yet. I have reminders set to test each one on its first real game day, and I will update this post with what breaks.
If you want the broader picture of what I am testing and why, the strategy review is the place to start, and how the NHL builder got fast explains why 461 lineups takes seconds.
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.
