Route Optimization
Loma automatically figures out the best order for your technicians to visit their stops each day. When jobs land on a route, the optimizer calculates drive time between locations and arranges the stops so your team spends less time on the road and more time working.
Route optimization runs automatically. You don’t need to do anything for it to work. As jobs are added to routes, Loma calculates the most efficient stop order and assigns start and end times for each job. The details below explain what’s happening behind the scenes and how you can influence the results.
When optimization runs
The optimizer runs in three situations.
First pass at 30 days. When a route’s date enters the 30-day scheduling window, the optimizer makes its first pass. It takes all the Pending jobs for that route on that day, calculates the most efficient stop order, and assigns each job a specific time window. This is how recurring service jobs transition from Pending (a date with no time) to Scheduled (a date with a specific time window).
When a job is added to a route between 30 and 8 days out. If a new job lands on a route that’s already been optimized but is still outside the 7-day locked window, the optimizer re-runs automatically to incorporate the new stop into the schedule.
Manually, at any time. You can trigger the optimizer yourself from the Day view on the Calendar. This is covered in more detail below.
What the optimizer does
The optimizer looks at all the jobs on a given route for a given day and calculates the most efficient order to visit them. It factors in the geographic distance between stops, applies a realistic estimate for drive time (not just straight-line distance), and spaces jobs with at least a 15-minute buffer between them. If the actual drive time between two stops is longer than 15 minutes, the real drive time is used instead.
The route’s preferred start time sets the beginning of the day. The optimizer schedules the first stop at that time and sequences everything forward from there.
If a customer has availability restrictions on their location (like a restaurant that doesn’t allow service between 11 AM and 2 PM, or an office that can only be serviced after 5 PM), the optimizer respects those windows and won’t schedule jobs outside the hours the customer has set.
Your times vs. the system’s times
Every scheduled job is either time-assigned by the optimizer or time-committed by you. This distinction matters because the optimizer will only move jobs that it scheduled itself. If you manually set a job’s time, the optimizer treats that as a fixed anchor and works around it.
This means you can pin important jobs to specific times (a customer who insists on an 8 AM arrival, for example) and let the optimizer arrange everything else around them. You get control where you need it without having to manually schedule every stop.
The 7-day locked window
Routes within the next 7 days are considered locked. The optimizer won’t automatically re-optimize these routes, even if new jobs are added. This protects schedules you’ve already reviewed, communicated to customers, or planned your team around.
You can see this in the Day view on the Calendar. Each route column header shows a lock icon: a green closed padlock means the route is inside the 7-day window and locked; a blue open padlock means the route is outside the window and open to automatic optimization.
If you do need to re-optimize a locked route (say a job was cancelled and you want to tighten up the schedule), you can do that manually using the optimize button next to the lock icon in the Day view. Loma will ask you to confirm, and when it re-optimizes, it preserves any times you’ve manually set as fixed anchors. Only the system-scheduled jobs get rearranged.
Running the optimizer manually
Next to the lock icon in each route’s Day view column header, there’s an optimize button. Clicking it triggers the same optimization that runs automatically, but on demand. This is useful when you’ve made changes to a route (added or removed jobs, adjusted times) and want the optimizer to recalculate the best stop order.
For routes inside the 7-day locked window, you’ll be asked to confirm before the optimizer runs. For routes outside the window, it runs immediately.
Location time windows
If a customer has specific hours when service can or can’t happen, you can set that on their location. Edit the location and enter either an available window (“only service after 5 PM”) or an unavailable window (“no service between 11 AM and 2 PM”). The optimizer will respect these constraints when scheduling jobs at that location.
This is especially useful for customers like restaurants with a lunch rush, offices that need after-hours cleaning, or any site with restricted access times.
A note on start times
The optimizer uses the route’s preferred start time as the beginning of the workday. If you manually schedule a job before the route’s start time, the optimizer takes that as a signal that earlier scheduling is acceptable for that day. It will fill in around the early job rather than leaving a gap between it and the rest of the route.