Route planning
This is the core feature of the system β automatically assigning orders to available vehicles, optimizing routes to reduce transport cost.

When to useβ
Use this feature when:
- You have a list of approved orders for the day
- You need to assign orders to vehicles optimally (fewest vehicles, fewest km)
- You need to lock the plan to hand off to Dispatcher for execution
Overall workflowβ
1. Choose depot & run date
β
2. System loads unassigned orders
β
3. Create new plan (run CVRP optimization)
β
4. Review routes on map
β
5. Assign drivers per vehicle
β
6. Finalize plan β lock, hand off
Step 1 β Choose depot and dateβ
At the top of the page, choose:
- Planning depot: a child organization of type "depot", the dispatch origin
- Run date: planned delivery date
Only depots within your permission scope appear. If a depot is missing, contact Admin to grant access.
Step 2 β View unassigned ordersβ
The right column shows the list of approved orders for that date but not yet in any plan.
Each order shows:
- Order code + customer name
- Total weight (kg), volume (mΒ³)
- Delivery window (if specified)
Step 3 β Create new planβ
Click the blue "+ Create new plan" button to start.
The system will:
- Take all unassigned orders for the day
- Take the available vehicles of the depot
- Call HGS-CVRP (Hybrid Genetic Search β Vidal 2022) to solve the routing problem, with LNS-SA and NN+2opt as benchmark baselines
- Generate optimal routes (one route = one vehicle)
Takes about 3-10 seconds depending on order count.
Optimized resultβ
After running, the system displays:
Each route shows:
- Vehicle code assigned
- Number of stops + total km
- Load used / max (e.g. 1800/2000 kg = 90%)
- Estimated time out + back
Step 4 β View route mapβ
The map in the middle shows all routes in different colors:
- π’ Green = first route
- π΅ Blue = second route
- π Orange = third route
- ... (each route a color)
Click a stop on the map to see order details at that point.
Click "Maximize" at the top of the map to enter full-screen mode β easier for complex routes.
Step 5 β Assign driversβ
On each route card, click the "Choose driver" dropdown.
The list only shows drivers who:
- Are within your scope
- Status Active
- Not assigned to another trip that day
Manual adjustmentβ
You can:
- Drag orders between routes
- Remove orders from a route (returns to "unassigned" list)
- Reorder stops within a route
Step 6 β Finalize planβ
When satisfied, click the red "Finalize routes" button at the bottom.
What happens after finalize?β
- β Plan transitions to LOCKED β no more editing
- β Each route automatically becomes a Trip
- β Assigned drivers receive realtime notification on the mobile app
- β Orders move to "Planned" status
- β Dispatcher can start monitoring on the Monitoring page
After finalize, to edit a plan you must unlock (Admin permission required) β this action is recorded in Audit Log.
AI Agent β Plan with a commandβ
You can skip all these steps by commanding the AI Agent:
See the AI Agent panel screenshot for the interface.
Example commands:
- "Plan tomorrow"
- "Optimize routes for 20/5"
- "Create today's plan for Dong Da depot"
The AI Agent opens the page, sets the date, and runs the optimization for you.
FAQβ
Q: Why are some orders not assigned? A: Common causes: (1) all vehicle capacities full, (2) order is too far from depot, (3) customer missing coordinates. Check the red warning under each order.
Q: Can I rerun optimization multiple times? A: Yes. Each "Create new plan" click discards the unfinalized plan and reruns.
Q: Can I prioritize a specific order? A: Yes. After optimization, drag the order to the top of its route to deliver earlier.
Q: How is cost calculated?
A: Based on vehicle config in Master Data: FixedCost (per day) + CostPerKm Γ km. Sum across routes = total plan cost.
Nextβ
- Live monitoring β Track vehicles after finalize
- Incident handling β When something goes wrong on the road