Part 1 of 3 · A day at a trades company

The Schedule Fell Apart Before 8 AM

A dispatcher in a work jacket stands at a cluttered desk in a small shop office at dawn, phone to her ear, looking out the window at a white pickup truck in the gravel yard with its hood up and a crew member in a hi-vis vest leaning over the engine.

It's 6:50 AM on a Thursday.

One of your crew leads just texted. His truck won't start.

By 7:15 AM you've moved four jobs in your head, called two customers, and sent a crew across town twice because it was the only way to make the day fit.

By 7:40 AM you'd love to hit "optimize." But you've been burned before.

The last time you trusted the button, it moved your certified gas tech's job to a guy without the ticket. Another time it quietly dropped two stops, and you found out when a customer called asking where everyone was.

So you do it by hand. Again.

The problem isn't speed. It's trust.

Most dispatchers don't avoid route optimization because it's slow.

They avoid it because they can't see what it did.

A typical optimizer hands you a clean-looking result. What it doesn't show you is what it left out, what rules it bent, or whether the schedule changed underneath it while you were reading the preview.

An optimizer you have to double-check isn't saving you time. It's giving you a second job.

So we rebuilt route optimization in CrewOS around one idea: it has to show its work.

Fleet assign: your whole day, reshuffled

Hit Optimize Routes on the Daily view and you get two modes.

Reorder today re-sequences each crew's stops so they stop zig-zagging.

Fleet assign is the big one. It looks at every booked job across every crew and reassigns them to cut your total drive time for the day. Not one truck at a time. The whole fleet.

You pick the date, the crews and the jobs. CrewOS works out the best arrangement and shows you exactly what would change: which job moves from which crew to which crew, and how many minutes of driving it saves.

Then you decide.

A Fleet assign preview: total fleet drive time down 41 minutes (20.7 percent), with each crew's travel and waiting time listed, and a warning that the plan would leave Jordan Fraser with no shifts.
A Fleet assign preview: 41 minutes of driving cut across the fleet, with each crew's travel and waiting time laid out before anything moves.
A Reorder today preview listing each crew's new stop order with the drive time and distance it saves and an Apply button per crew.
Every change starts as a preview: the new order for each crew, what it saves, and nothing applied until you say so.

Nothing moves until you say so

Every optimization starts as a preview. Nothing touches your schedule until you hit Apply.

And if anything changed between the preview and the apply, CrewOS won't apply it. Say the office moved one of those jobs to Friday while you were reviewing. You'll get a clear message that the preview is stale, and one click to re-run it.

No half-applied reshuffles. It's all of it, or none of it.

It never breaks your rules to save a few minutes

Every reassignment is checked against the things that actually matter on your crews:

  • Does this person have the certification the job needs?
  • Are they on approved time off?
  • Are their compliance documents current?
  • Do they have the capacity?
  • Would this double-book them?

If a single move fails any of those checks, none of the moves are applied, and you're told which job, which crew and which rule.

Your gas tech keeps the gas jobs. Every time.

It tells you what it couldn't do

This is the part most tools skip.

Every result includes a section called Excluded from this optimization. If a crew was left out, it's listed there with the reason, like a crew whose starting point can't be found on the map. Nothing disappears quietly. You see it.

CrewOS will never call your day "already optimal" when work fell off the plan.

A crew card marked Failed with the reason: the crew takes their vehicle home but the home address could not be geocoded.
A crew the optimizer can't place is named, with the reason, instead of quietly left out.

Pins, and no crew left behind

Some customers want the same crew every time. Mrs. Patel wants Dave.

Pin the job, and the optimizer treats it as a hard rule. It isn't a suggestion the solver can overrule. Any plan that breaks a pin gets thrown out.

And if you're worried the "best" plan will send a crew home with nothing to do, turn on Keep everyone working. If a plan would leave a crew idle, CrewOS names that crew and won't apply until someone makes that call on purpose.

A warning in the Fleet assign preview: this plan would leave Jordan Fraser with no shifts, with an Accept and keep going link or the option to change the selection and re-run.
Keep everyone working names the crew a plan would leave idle, and waits for you to decide.
A shift list in Fleet assign with one shift marked Pinned, a note that the solve must keep it on its current crew, and the Keep everyone working option ticked.
Pin the jobs that can't move, and ask to be warned before any crew is left idle.

The software doesn't decide who gets a short day. You do.

Routes that start where the truck actually sleeps

Most routing assumes every truck leaves from the shop.

Yours don't. Some crews take the truck home. Some start from the north yard.

In Vehicle Origins you set it up once: your yards, your default depot, and which crew members take their vehicle home. Every route starts from the right place, and you can see it on the map with real road routes drawn out for each crew.

Crew home addresses stay private. Only owners see where a truck parks overnight.

The Schedule map with Show routes on, each crew's day drawn along real roads across Halifax, Dartmouth and Bedford in its own colour.
Each crew's day drawn along real roads, colour-coded by crew, with the yard and take-home start points on the map.

Recurring work that fits your trade

Scheduling isn't only about today. It's about the work that comes back.

The new recurring scheduler handles the patterns trades actually run on:

The work How you set it up in CrewOS
Filter changes every 3 months, inspections every 6 Every N weeks or months
"The 2nd Tuesday of the month," not "the 14th" Weekday position
Lawn care April to October, snow November to March Seasonal, straight across New Year, repeating every year
Five aeration dates, each with the aeration crew Specific dates, with a different crew on each

And when you move or cancel one visit, that change sticks. The series won't quietly re-create the visit you moved last week.

The recurrence editor set to Seasonal: Tuesdays, April to October, repeat every year, with a next-occurrences list that picks back up the following April.
A seasonal rule: Tuesdays from April to October, picking back up on its own next spring.

What changes at 7:40 AM

The truck still won't start. That part's on you.

But the rest of the morning looks different:

  1. You hit Optimize Routes and pick Fleet assign.
  2. The preview tells you what moves, what it saves, and what it couldn't place.
  3. Your pins held. Your certified people are on the jobs that need them. Nobody's sitting at home.
  4. You hit Apply reassignment, and you go deal with the truck.

That's what an optimizer is supposed to do. Give you the morning back, without giving you something new to worry about.

Next in the series: it's noon, and your office manager is doing forty things at once. One Paragraph. Five Jobs Done. Nothing Sent Without You.

Run your crew like you've got it together. Because now you do.

Set up your first site in an afternoon. Free to start, no card required.