How this game works

Each day you do two things: choose which of four vehicle slots to send out and what type each one is, then put every stop on a vehicle or defer it to tomorrow. The model then sequences each vehicle's stops and prices the day.

  • The model chooses the stop order, not you. It builds two candidate routes — nearest neighbour, and earliest-closing window first — improves each with 2-opt, and keeps the cheaper. It is a heuristic and it is not guaranteed optimal, but it is the same one for everybody.
  • Capacity is hard. A vehicle loaded above its capacity is not a costly day, it is an invalid one, and the model will not let you commit it.
  • Time windows are soft. Arriving after a stop closes is allowed and costs $2.20 a minute. Arriving before it opens means waiting outside, and the wait is on the clock.
  • The shift is 480 minutes at normal pay. Past that the driver is on overtime at 1.5×, and past 660 minutes — the longest shift this depot runs — the day is penalised at $4.20 a minute. That ceiling is a setting in this scenario, not a statutory limit.
  • Deferring a stop costs $190 plus $4.50 a case — a dedicated redelivery tomorrow plus a customer who was promised today. It is priced above the cost of simply sending another vehicle, so "deliver nothing" is never the cheap answer.
  • An empty vehicle still bills its fixed charge. Sending a van you do not fill is not free.

The cost of the day updates as you assign stops, so you can try an arrangement and see it immediately. The benchmark for the day is only revealed once you commit.

Day 1 of 5

In play

Fleet
Stops

The order list as the warehouse printed it. Put each stop on a vehicle, or defer it.

Where you stand

The territory

What the model is doing

The split of labour, and why it is where it is

This game gives the sequencing to the computer and keeps the clustering for you. That is not a simplification for the sake of a smaller interface — it is the division that holds in practice. Ordering the stops on one vehicle is a travelling-salesman problem on a dozen nodes, which software solves to near-optimality in milliseconds and a person solves badly. Deciding how much fleet to put on the road, and which customers belong on the same truck, involves cost structures, service promises and judgement about what is worth failing at. Routing software proposes; a dispatcher disposes.

Making you drag stops into an order would have produced a game about patience. This one is about the decision you would actually still be making.

How a route is sequenced

For each vehicle the model builds two candidate orders and keeps whichever prices lower:

  • Nearest neighbour. Start at the depot and repeatedly drive to the closest stop not yet visited. Cheap, greedy, and reliably about 20 percent worse than optimal on its own.
  • Window order. Visit stops in order of how soon each one closes. Ignores geography entirely and is often the better start on a day with tight windows.

Each candidate is then improved by 2-opt: take any two points in the route, reverse the segment between them, and keep the change if the route gets cheaper. Repeat until nothing improves. The important detail is that the test is on total cost, not distance — that is what lets the improvement step accept a longer drive in exchange for arriving before a window shuts. A pure distance-based 2-opt would cheerfully optimise you into a late delivery.

What a day costs

per vehicle: fixed charge + $/km × distance + driver hours × rate (1.5× past 480 minutes) + $2.20 × minutes late, per stop + $4.20 × minutes past the 660-minute maximum shift plus: $190 + $4.50/case for every stop deferred

Distance is straight-line between grid points multiplied by 1.28, a circuity factor that turns crow-flight into something that reads like driving distance. There is no road network and no traffic, and both are left out to keep the scenario tractable rather than because they do not matter. They do. A river with two bridges, a one-way system or a peak-hour corridor makes travel time asymmetric and breaks the triangle inequality, and any of those can change which grouping of stops is cheapest. Read the answers here as answers under a uniform-travel assumption, and expect a real network to move some of them.

The clock starts at 07:00. A vehicle leaves the depot at minute zero, drives, waits outside anything not yet open, unloads, and returns. Waiting counts against the shift, which is why a stop that opens late can be more expensive than a stop that is far away.

The two benchmarks

Load in list order fills the first vehicle from the top of the picking sheet, then the next, and tries every fleet size to find the best version of that policy. It uses no geography at all. This is the floor, and it is not a straw man — it is what happens when routing is done by whoever is standing at the loading bay.

The sweep plan sorts the stops by their angle from the depot, cuts that circle into contiguous arcs, and gives each arc to one vehicle. Every starting point on the circle and every fleet mix is tried, and each arc is then sequenced by the same routine your assignment gets. The sweep algorithm is one of the classical constructive heuristics for vehicle routing and it is a real bar — but it is still a heuristic, and it can be beaten. A day where you come in under it is a day where the geography had a structure the sweep could not see.

Watch the gap between the two. On Monday it is about 14 percent; by Thursday, when volume binds and the fleet decision matters, it is nearly 20. The value of thinking about routing rises with the difficulty of the day, which is the argument for the software and against it in the same breath.

The five days

  • Monday is a pure fleet-sizing question. 176 cases; two vans hold 180 for $270 of fixed cost and one truck holds 220 for $290. Two vans drive two short loops; one truck drives a single long one and saves a radial leg out of the depot. Neither wins on arithmetic you can do in your head.
  • Tuesday puts four stops in a cluster thirty-four kilometres out, one of them worth nine cases. The radial legs are a fixed cost of reaching the cluster at all, so the question is what else rides along.
  • Wednesday is about the clock. Five stops close at 10:30 and they are spread right across the territory. A fleet can be one vehicle short for the morning and one too many for the day.
  • Thursday is about volume. 538 cases against four vans holding 360. Cases per dollar of fixed cost becomes the relevant number, and on that measure the truck is half the price of the van.
  • Friday is all three, plus one nine-case order that is far away and will only take delivery between 12:30 and 14:00. Somebody has to decide whether that one is worth the day it bends.

Peak week is the same five days derived by a stated rule rather than a second hand-written table: every drop is 35 percent heavier, takes 20 percent longer to unload, and every window that ran to the end of the day now closes at 14:00. Fleet decisions that were close on the standard week stop being close.

Assumptions, stated plainly

  • One depot, one shift, one day at a time. No second trip, no relay, no driver who finishes early and takes another load.
  • Straight-line distance scaled by a constant. No one-way streets, no river with two bridges, no rush hour.
  • Deterministic everything. Service times are exact, nothing breaks down, and no customer is out when you arrive.
  • Deferral is a clean transaction. A deferred stop costs a fixed amount and then disappears; it does not actually turn up on tomorrow's list and make tomorrow harder. That is the most convenient assumption in the game and the one to be most suspicious of.
  • Sequencing is a heuristic, not an optimum. Two assignments that are genuinely close may be ranked by which one the heuristic happened to route better.

Where this sits in the literature

The underlying problem is the capacitated vehicle routing problem with time windows, which is NP-hard and which no exact method solves at real dispatch sizes inside a dispatch window. Everything practical is a heuristic: the savings method of Clarke and Wright, the sweep method used here as the benchmark, and local search of which 2-opt is the simplest useful member. The point of the game is not to teach those algorithms but to make the shape of the cost surface legible — to make it obvious why the fleet decision dominates the sequencing decision, and why an extra vehicle is sometimes cheaper than a clever route.