The constraint

The solver minimised distance. The business paid for driver time, vehicle utilisation, and missed delivery windows — three things distance only loosely predicts.

What we changed

We spent the first fortnight in the depot rather than the codebase, then re-stated the objective function to match how dispatch actually makes decisions. The algorithmic work afterwards was comparatively minor.

  • Objective rewritten around cost per drop, not kilometres
  • Driver-break and window constraints modelled explicitly
  • Dispatcher overrides captured as training signal

Where it landed

Cost per drop fell eighteen percent and on-time delivery reached 99.4%, with dispatchers overriding the solver far less often than before.