Written with ChatGPT.
My ex played daily fantasy sports professionally. Not recreationally, but as a serious, full-time pursuit. I spent a lot of time watching how lineups were constructed, how models were adjusted day to day, and how results were evaluated across long horizons rather than individual slates. I also spent time around other professionals, where the language was not about teams or narratives, but about distributions, leverage, and long-run expectation.
At the time, I didn’t quite have the mathematical vocabulary to describe what I was seeing. Now it feels natural to return to it and write about daily fantasy sports as what it really is: an optimisation problem with partial information.
This post focuses on introducing DFS. Future posts will dive into the specific math and techniques in basketball, baseball and (American) football.
A daily fantasy slate begins with a finite player set . Each player has a salary and a random fantasy score Xi. The lineup construction problem is to choose a subset
The key point is that is not a number. It is a random variable. A serious model does not output a projection, but an estimated distribution. In basketball, this distribution is shaped by minutes played, usage rate, pace, efficiency, and opponent context.
Correlation further complicates the picture. Player scores are not independent. Usage is conserved within a team, and minutes are shared. Positive correlations arise from shared game environments and pace. Negative correlations arise from role overlap. Ignoring covariance leads to lineups that are fragile under realistic variance. Incorporating it turns the problem into something closer to portfolio optimization, where the covariance matrix matters as much as individual expectations.
There is also a temporal component. Injury reports, starting lineups, and late news introduce discontinuities. My ex would check for news first thing every day.
No comments:
Post a Comment