Porting My 20-Year-Old Excel Models to Python

This is part five of my series on rebuilding my old daily fantasy lineup optimizer (the series kicks off with how I got into this). The earlier posts were about the math. This one is about the move itself: taking a model that lived in an Excel workbook for over a decade and turning it into a web app anyone can use without installing anything. It’s the same journey I’m making with all my old Operations Research models, one at a time.

Diagram of porting an Excel and Solver model to a Python and Flask web app
Continue reading “Porting My 20-Year-Old Excel Models to Python”

One Good Lineup Is Easy. Twenty Is the Hard Part.

This is part four of my series on the daily fantasy lineup optimizer I rebuilt this year (the series starts with the origin story). Everything up to now has been about finding the single best lineup. Here’s the uncomfortable truth that took me a while to accept: the single best lineup is the easy part, and it’s not what wins tournaments. The hard, interesting problem is building a set of lineups that are each strong but smartly different. That’s where the real work — and the real edge — lives.

Player exposure grid showing which players appear across a set of fantasy lineups
Continue reading “One Good Lineup Is Easy. Twenty Is the Hard Part.”

The Multi-Position Trick I Retired From My Optimizer

This is part three of my series on rebuilding the daily fantasy lineup optimizer I started in Excel in 2012 (start here if you missed the first one). This post is about a small, clever trick I used in the spreadsheet for years to handle players who can fill more than one position — and why, when I rebuilt the tool, I deliberately threw it away.

Diagram of a multi-position player eligible for several roster slots in a fantasy lineup
Continue reading “The Multi-Position Trick I Retired From My Optimizer”

A Fantasy Lineup Is Just a Knapsack Problem

This is the second post in my series about rebuilding the daily fantasy lineup optimizer I first wrote in Excel back in 2012 (the origin story is here). Before I get into the clever parts, I want to start with the simplest and most important idea: a fantasy lineup is just a knapsack problem wearing a baseball cap. Once you see that, everything the optimizer does makes sense.

Diagram showing a fantasy lineup as a knapsack problem: salary cap as the bag, players as items with salary and projected points
Continue reading “A Fantasy Lineup Is Just a Knapsack Problem”

From Daily Fantasy to Fiverr to a Free Lineup Optimizer

Back in 2012 I got into daily fantasy baseball, and like a lot of people with an Operations Research degree and a little too much free time, I couldn’t just play. I had to model it. That turned into an Excel spreadsheet that picked my lineups for me, which a few years later turned into a small side business selling those spreadsheets on Fiverr, which then sat untouched in a folder for the better part of a decade. This summer I finally dragged it back out and rebuilt it as a free lineup optimizer that runs in your browser at mlb-lineup-optimizer.kindoflost.com. This is the story of how it got here, and the first post in a short series about the rebuild.

Timeline from 2012 daily fantasy to 2016 Fiverr tools to a 2026 free lineup optimizer
Continue reading “From Daily Fantasy to Fiverr to a Free Lineup Optimizer”