Your objective: Plan to the dollar you choose.
Tell it what "best" means — most revenue, lowest cost, most paid miles, least deadhead — and every assignment is built to that target. It packs the most loads onto each driver, keeps trucks earning instead of idling, and spreads work evenly so no one runs ragged while another sits half-empty. Every plan is scored, so you can see why this match beat the alternative.
- Minimize deadhead miles
- Maximize loaded mile %
- Maximize profit
- Loads per driver
- Balanced across drivers
- Minimum shift time — Finish the same work in less clock — fewer paid idle hours per driver.
- Minimize unassigned loads
- Minimize idle drivers
- Hold the loaded-to-total ratio
- Driver shift duration balance — Two drivers, same day: the plan evens their hours instead of running one to the limit.
You set the objective; the algorithm solves to it.
Driver reality: It plans the drivers you actually have.
Who's on today, who's already rolling, how many hours each one has left, who's due home, and who's been run hard three days running. The algorithm reads every driver's real clock and home-time before it assigns a single load — so the plan it hands back is one your drivers can actually run, not one you have to unwind by 4pm.
- Hours of service — 14-hour duty, 11-hour drive, 30-minute break, 70-hour cycle — read per driver, not per fleet.
- Start location
- Start and end time windows
- Driver prioritization — Rank who gets first pick — seniority, performance, or whoever you owe a good day.
- Max driving time — Time at the wheel.
- Shift duration — The whole day, not just the driving.
- No early departure
- Home inside the window — Home end — the driver gets back inside the window.
- Loaded-to-total floor — Loaded-to-total miles never falls under the floor you set for a driver.
No driver gets a load they can't legally finish.
The right hands: The right driver for the load — every time.
Hazmat, tanker, TWIC, the customer's approved-driver list, who's checked out on which product. A crude load doesn't go to a driver without the endorsement; a food-grade load doesn't go to a truck that just ran chemicals. The algorithm matches qualification to commodity before it ever matches truck to lane.
- Hazmat / tank
- TWIC
- Customer-approved drivers — Some shippers name the drivers allowed on site. That list is a filter, not a preference.
- Trainings
- Skills match the load — Tag-based: the load's required tags must all be present on the driver.
Every assignment clears the endorsement and the customer rule.
The route: Tight lanes, not tangled deadhead.
Origins, destinations, racks, terminals, and the empty miles between them. The algorithm chains loads so a driver finishes one near the pickup of the next, turning deadhead into paid freight. Fewer empty miles, more loads per shift, the same trucks earning more.
- Deadhead minimization
- Lane chaining — Drop near the next pickup, then again, then again — the day compounds.
- Rack & terminal geography
- Fuel & tolls
- Backhaul matching
- Miles per load
- Minimize deadhead distance
Empty miles become paid miles.
The clock: Every window, on time.
Appointment times, rack and terminal hours, detention, load and unload times — and the 14-hour, 30-minute, and 70-hour HOS limits sitting on top of all of it. The algorithm sequences the day so loads land inside their windows and no driver runs out of clock mid-route.
- Appointment windows
- Location congestion — A rack that backs up at 7am is planned as a slower stop, not an average one.
- Detention times
- Load / unload times
- Pre and post trip
- Rest times
- Buffer times — Slack held back on purpose so one late gate doesn't cascade through the shift.
- Average speeds
- No early arrival — Window start — the truck doesn't show up before the site will take it.
- No late departure — Window end.
HOS-legal and on-window, enforced at plan time.
Load types: Not every load is just a load.
Urgent, priority, aged, pre-loaded, locked, self-managed. The exceptions your dispatcher keeps on a sticky note are inputs here: an aged load climbs the order before the customer calls, an auto haul recurs on its own frequency, and a load you've already committed to a driver stays there while everything else re-solves around it.
- Urgent loads
- Priority loads
- Auto hauls — Loads the fleet is responsible for picking up on a set frequency, self-managed.
- Dry haul loads
- Aged loads — Sitting too long. Prioritized before the customer gets upset about it.
- Pre-loads
- Lock loads and drivers — Pin an assignment you've already promised; the rest of the plan solves around it.
- Incompatible load pairing
- High-urgency loads first
- Medium-urgency loads next
The exceptions are in the math, not on a sticky note.