Upper Help
Optimization

Factors Upper considers during optimization

See what Upper's optimizer weighs — driving distance and time, service time, time windows, driver shifts, vehicle capacity, and more — so you can debug any route.

When you optimize a route, Upper reads every constraint and preference on that route and returns a stop sequence that respects them. Knowing which inputs the optimizer reads makes it much faster to work out why a route came back the way it did.

This guide uses Upper's default driver and delivery labels. If your workspace is set up for service work, you may see Technician and Service wording instead (for example, "Assign Technicians") — the behavior is the same.

Why this matters

When a route looks wrong, the cause is almost always one of its inputs — an under-set service time, a missing time window, or a driver shift that ends too early. Once you know what the optimizer reads, you can usually find the input that produced the result and fix it.

What the optimizer considers

Upper optimizes a route's stop sequence and, on multi-driver plans, distributes stops across drivers based on the route's Advanced Settings. The main inputs are below.

FactorHow Upper uses it
Driving distanceMeasures the distance between stops
Driving timeEstimates travel time between stops
Service timeAdds the time spent at each stop to the route's total duration
Time windowsSchedules each stop inside its allowed delivery window
Driver shift hoursKeeps each driver's stops inside their working hours
Vehicle capacityRespects the capacity limits you have defined
Start and end locationsBegins and ends each driver's route at the configured location
Workload DistributionSplits stops across drivers based on the mode you pick
Pre-assigned stopsPlaces stops locked to a specific driver before distributing the rest
Pickup orderingSequences pickups in between, before, or after deliveries

Upper's ETAs and optimization use historical traffic data, not real-time congestion. If your routes run during peak traffic hours, build in a buffer.

Optimization goal — time or distance

The optimizer works toward one of two goals, set by the Optimize For option in Advanced Settings:

SettingGoal
TimeMinimize the total time to complete every stop
DistanceMinimize the total driving distance

See optimize for time vs distance for how to choose.

Service time, time windows, and capacity

A few inputs do most of the work in shaping a route. Setting them accurately is the single biggest thing you can do to get a route you trust.

  • Service time is the average time a driver spends at each stop. You set it in Advanced Settings (and as an account default in your User Settings). If drivers actually spend longer per stop than you've set, every downstream time and ETA will run optimistic.
  • Time windows constrain when a stop can be scheduled. Tight windows give the optimizer less room to work with, so use them only where the stop genuinely requires one. Time windows set on a contact carry through to the stop.
  • Vehicle capacity limits how much a driver can carry. You define your own capacity dimensions in your workspace settings; when a route exceeds capacity, stops move to another driver or are left unscheduled. See what happens when capacity is exceeded.

If routes consistently finish later than the plan says, service time is the first thing to check. Raise it to match what drivers really spend on a stop, then re-optimize.

How to influence the result

Set accurate service times

Match the average time per stop in Advanced Settings to what drivers actually spend on site.

Add time windows only where they matter

Reserve time windows for stops that truly need one. Each window narrows the optimizer's options.

Confirm driver shift hours

The optimizer keeps each driver's stops inside their working hours, so a shift that ends too early can push stops off the route.

Re-optimize

Use Re-optimize Route after changing any input so the route reflects your latest settings.

Troubleshooting

If a route still doesn't behave the way you expect after checking its inputs, contact support@upperinc.com.

On this page