Blog

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”

Roth Conversion vs ACA Subsidy: The Cliff Is Back

Two dollars of income cost a couple I was modeling last week $9,574. Not two thousand — two. That is the Roth conversion vs ACA subsidy problem in one line, and as of January it is live again for anyone retiring before 65.

The enhanced premium tax credits that ran from 2021 through 2025 expired on December 31 and were not extended. What came back with them is the old 400%-of-the-federal-poverty-line cliff: below it you get a subsidy, above it you get nothing at all. Not a taper. Nothing.

Chart of the 2026 ACA subsidy cliff: household premium rises gently with income, then jumps from $8,426 to $18,000 at $84,600 of MAGI
What a married couple pays for a benchmark silver plan as income rises. At 400% of the federal poverty line the premium tax credit disappears all at once — which is why a Roth conversion in a pre-Medicare year needs to be sized, not guessed.
Continue reading “Roth Conversion vs ACA Subsidy: The Cliff Is Back”

Every Constraint in My Excel NBA DFS Optimizer

A few days ago I wrote that a basketball rules file would come out nearly empty, and that the interesting part of an NBA optimizer is not the optimization. Then I went looking for something else and found a workbook I had forgotten I wrote: FCP Optimizer — Master v6.7, an NBA daily fantasy optimizer in Excel, with a change log that starts at version 4. So rather than speculate about NBA DFS optimizer constraints, here is the actual model, read straight out of the file.

It is a mixed integer program with about 200 binary variables, solved by CBC through the OpenSolver add-in. Everything below is what the sheet and its macros really do, not a cleaned-up version of it.

Diagram of the mixed integer program inside the Excel NBA daily fantasy optimizer, showing objective and seven constraints
Continue reading “Every Constraint in My Excel NBA DFS Optimizer”

The Textbook Fix That Made My MILP Twice As Slow

The textbook move, when a mixed-integer program solves slowly, is to tighten the linear relaxation. Add the constraint that makes the LP bound closer to the integer optimum, give branch and bound less room to wander, watch it finish faster.

I did that to the stacking constraint in my hockey lineup optimizer last week. It got twice as slow. Same slate, same solver, same lineups out the other end — 2.20 seconds a lineup before, 4.38 after. I reverted it and left a comment telling future-me not to helpfully fix it again.

Bar chart of seconds per lineup by stacking formulation: naive 3.00, cover inequalities 2.20, two-sided counters 4.38
Three formulations of the same constraint, same slate and solver. The textbook tightening is the slowest of the three.

Continue reading “The Textbook Fix That Made My MILP Twice As Slow”

A Free NHL Lineup Optimizer for DraftKings

The NHL lineup optimizer is live. Free, no account, no email, no cap on lineups. You upload one file — the player pool exactly as it downloads from DraftKings — and it hands back a CSV formatted for re-upload.

It is the hockey version of the football optimizer and the baseball one, same solver underneath, a different rulebook on top. Hockey turned out to be the easiest of the four sports I have tried, which was a pleasant surprise after basketball, where the stacking rules turned out to barely exist at all.

NHL DFS lineup optimizer rules screen showing line and power-play stacking, goalie rules and diversity caps
The rules screen. Tier 1 is DraftKings’ own rules, Tier 2 shapes a single lineup, Tier 3 is how the set differs from itself.

Continue reading “A Free NHL Lineup Optimizer for DraftKings”