My Solver Said Optimal. Two Shifts Were Empty.

A solver status of optimal is a statement about a tolerance, not about your business rule.

A test suite told me my scheduler was broken. It wasn’t. What actually happened is stranger and more useful: on one of the shipped sample rosters my solver said optimal and handed back a schedule with two night posts nobody was assigned to. Not a crash, not an infeasibility, not a timeout. A clean optimal, with holes in it. Here is what I measured, what I had wrong in my own code comments, and the one dependency I had been describing to people as a speed optimization when it is really a correctness one.

Continue reading “My Solver Said Optimal. Two Shifts Were Empty.”

My Free Route Optimizer Now Tracks Three Capacities

The free vehicle routing optimizer at routing.kindoflost.com used to think about a vehicle’s capacity as a single number. Fine for a lot of routes, but real fleets rarely run out of just one thing. A cargo van can be full on volume with plenty of weight capacity left, or maxed out on weight while the cargo area still has room, or simply out of pallet slots. I added a fix: the tool now supports three independent vehicle capacity constraints per route, plus a route time limit you can set per vehicle instead of one setting for the whole fleet.

Vehicles sheet with capacity1, capacity2, capacity3, and route_time_limit columns
Continue reading “My Free Route Optimizer Now Tracks Three Capacities”

NBA DFS Stacking: There Is Nothing to Stack

I have had a baseball lineup optimizer running on this site since June and a football one since August. Pointing the same engine at basketball looked like the easiest job of the three — eight roster slots instead of nine, a $50,000 cap, done before lunch. That part was true. The part that stopped me was NBA DFS stacking, because when I opened a new rules file and went to write the stacking constraints, there was nothing to put in it.

That is not a complaint about missing data. It is a statement about the sport. Baseball and football each hand you a structural link between two players’ scores — something written into the rules of the game itself. Basketball does not have one, and no amount of modeling invents it.

How NHL, NFL, MLB and NBA differ in whether the sport links two players' fantasy scores
Continue reading “NBA DFS Stacking: There Is Nothing to Stack”

What Is a 4 on 4 off Schedule? (Free Builder)

The 4 on 4 off schedule is the easiest rotating shift pattern there is to explain to a new hire: work four consecutive shifts, then get four consecutive days off, on an 8-day cycle that just keeps repeating. No block-counting, no mid-cycle exception, nothing to memorize. The trade-off is what it does to the calendar — and that trade-off is the part most explanations of this pattern skip.

Line chart showing the start day of each 4-on-4-off work block drifting one weekday later every 8-day cycle, from Monday back to Monday after 8 cycles
Eight cycles, eight weekdays, back to Monday — the calendar cost of an 8-day pattern in a 7-day week.
Continue reading “What Is a 4 on 4 off Schedule? (Free Builder)”

Free Rota Planner (No Signup Required)

If you searched for a rota planner rather than a “scheduler,” you’re probably in the UK, Ireland, Australia, or New Zealand — Commonwealth English keeps “rota” and “roster” for the same thing American software calls a schedule. The vocabulary is different; the underlying problem, for a 24/7 team, is identical: cover every shift, honour rest between shifts, and don’t leave one person doing all the nights. This is a free rota planner built around a real solver rather than a grid you fill in by hand, and it makes no assumption about which side of the Atlantic you’re on.

Bar chart: days until a rota pattern repeats on the same weekdays - DuPont 28, Panama and Pitman 14, 4-on-4-off fixed 56, 4-on-4-off rotating 112
Every named rota pattern eventually lands back on the weekdays it started on — some take a lot longer than others.
Continue reading “Free Rota Planner (No Signup Required)”