Gantt Chart in Excel: The Part Templates Leave Out

Every tutorial on building a Gantt chart in Excel stops in the same place. You end up with a task list, a Start column, a Days column, and a conditional-formatting rule that paints a bar across a grid of dates. It looks like a schedule. It is a picture of dates you typed in yourself, and it will keep looking correct long after it has stopped being true.

I spent a weekend building the version I actually wanted — one where Start is calculated, weekends are skipped, and a row underneath tells me how many people the plan is quietly assuming I have. Here is what went into it and where the spreadsheet honestly runs out of road.

Gantt chart of a 21-task renovation with a crew load row underneath. Every task bar is within capacity on its own, but the daily total for the general crew peaks at five people against a crew of three, and is over capacity on 14 days.
Nothing is over-allocated task by task. The plan just quietly assumes five people for fourteen days.
Continue reading “Gantt Chart in Excel: The Part Templates Leave Out”

Your Project Software Is Guessing at Resource Leveling

Every project management package has a button that fixes an over-allocated schedule. Microsoft Project calls it Level Resources. Primavera calls it resource leveling. You click it, the bars slide right, the red goes away, and you get a new finish date. What none of them tell you is how far that new date sits from the best one available.

I went looking for someone who had actually measured it. I found a paper from 1999 — and then noticed something strange about what happened to the topic afterwards.

Bar chart of daily crew demand on a 17-task renovation project. Demand sits at two or three people most days but spikes to five for four days in late October, above the dashed line marking the three-person crew that is actually available.
Nothing is over-allocated on paper. The plan just quietly assumes five people for four days.

Continue reading “Your Project Software Is Guessing at Resource Leveling”

Why My Free Shift Scheduler Became 13 Different Tools

The staff scheduler started as one page: give it your shifts, your people, and your coverage requirements, and it hands back a roster. That’s still true. What changed this week is that the one page became thirteen — a nurse scheduler, a firefighter scheduler, a police scheduler, a warehouse scheduler, and nine more — all running the exact same engine underneath. Same solver, same rules, same workbook format. Different pages. Here’s why I did that instead of leaving well enough alone.

Staff scheduler industry page showing a fixed 24/7 shift scheduling card
Continue reading “Why My Free Shift Scheduler Became 13 Different Tools”

CBC vs CP-SAT: My Lineup Optimizer Got 8x Faster

Two months ago I wrote about CBC vs HiGHS on my staff scheduler, where swapping solvers turned a model that took minutes into one that took seconds. So when my daily fantasy lineup optimizer started feeling slow, I reached for the same fix — and HiGHS came back three times slower. This is the story of CBC vs CP-SAT on that model, why my own previous result did not transfer, and the failure mode I found on the way that was worse than being slow.

Continue reading “CBC vs CP-SAT: My Lineup Optimizer Got 8x Faster”

A Free NFL Lineup Optimizer for DraftKings and FanDuel

The NFL lineup optimizer is live. It is free, there is no account, no email, and no cap on how many lineups you can build. It works with DraftKings and FanDuel, and it hands you a CSV formatted for direct re-upload to whichever one you came from.

It is the football version of the baseball optimizer I put up in June, built on the same solver with a different set of rules on top.

NFL Lineup Optimizer rules screen showing QB stacking, bring-back, exposure cap, and cooldown settings

Continue reading “A Free NFL Lineup Optimizer for DraftKings and FanDuel”