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.
| Factor | How Upper uses it |
|---|---|
| Driving distance | Measures the distance between stops |
| Driving time | Estimates travel time between stops |
| Service time | Adds the time spent at each stop to the route's total duration |
| Time windows | Schedules each stop inside its allowed delivery window |
| Driver shift hours | Keeps each driver's stops inside their working hours |
| Vehicle capacity | Respects the capacity limits you have defined |
| Start and end locations | Begins and ends each driver's route at the configured location |
| Workload Distribution | Splits stops across drivers based on the mode you pick |
| Pre-assigned stops | Places stops locked to a specific driver before distributing the rest |
| Pickup ordering | Sequences 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:
| Setting | Goal |
|---|---|
| Time | Minimize the total time to complete every stop |
| Distance | Minimize 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.
Related
How long optimization takes
Most route optimizations in Upper finish quickly. Run time depends on how many stops and drivers you have and how many constraints the optimizer must respect.
Optimization taking longer than expected
If route optimization in Upper is running slow, the usual causes are too many stops, tight time windows, or invalid addresses. Reduce constraints, split, or refresh.