Outlet Coverage
Route Status
Rep Utilization (Top 15)
Workload Trend
Outlet Cluster Map
Business Feasibility Summary
Quick Actions
Create Project
Projects
Loading...
Upload Outlet File
Click or drag outlet file here
.xlsx or .csv | Required: outlet_id, name, latitude, longitude, service_time_minutes, monthly_service_amount | Optional: chain, state, min_monthly_visits, max_monthly_visits, service_windows (e.g. 09:30-12:00, 14:00-17:30)
Upload Rep File
Click or drag rep file here
.xlsx or .csv | Expected: rep_id, rep_name, rep_address, latitude, longitude
Planner Settings
Valhalla Accurate: Always calls Valhalla, no cache, slowest but fresh results every run.
Fast Estimate: Fastest, rough Haversine estimate, no Valhalla needed.
KMeans Geographic: Groups by geographic proximity only (original algorithm). May produce overloaded groups.
Rural / Micro Group Handling
Territory Feasibility & Utilization Bands
Capacity Preview
Calculated from your settings above. Updates when you save.
Chain Servicing Rules
Define the servicing windows permitted per chain. Mon–Fri share one window input (applied to all five weekdays on save).
Leave a field empty to disallow servicing on that day.
Format: HH:MM-HH:MM, multiple windows comma-separated e.g. 09:30-12:00, 14:00-17:30.
| Chain | Mon–Fri | Sat | Sun | Public Holidays |
|---|---|---|---|---|
| Select a project and load settings to view chain rules. | ||||
Unrecognized chains default to Mon–Fri 09:30–18:00. Windows apply per store chain; the lunch break applies to the rep regardless of chain.
Per-outlet service_windows from the outlet file override these chain windows.
Public Holidays
| Date | Name | State | Action |
|---|---|---|---|
| Load settings to view holidays. | |||
Route Planner Calculation
Calculates recommended rep count, clusters outlets into groups using KMeans, and estimates travel workload.
Planner Summary
Cluster Workload Table
Outlet Clusters Map
Rep Assignment
Assign reps to planner-generated groups. Auto-assign uses nearest Haversine distance.
Group Assignments
Use dropdowns to manually assign or reassign reps. Changes are saved immediately.
Loading...
Unassigned Groups
--
Unassigned Reps
--
Monthly Visit Generation
Generates individual visit tasks for each outlet based on monthly_service_amount. Visits are spread across working days (Mon-Fri) in the planning month. Only outlets in groups with assigned reps will generate visits.
Visit Tasks
Route Map
Route Detail
Daily Routes
Territory Rebalancing
Partial MergeTransfer nearby outlets between groups to optimize utilization into the target band (70-90%). Low-utilization groups receive outlets from nearest neighbors to fill their deficit.
Overloaded Route Warnings
Route Detail:
Run Reports
Route Matrix Cache
Cached Valhalla travel time/distance pairs stored in PostgreSQL.
Capacity Diagnostic
Business Feasibility Report
Route Accuracy Audit
Coverage Breakdown
Territory absorption is now a planner-stage decision. Set Rural Group Handling Mode = Planner Absorption in Settings and re-run the planner to resolve satellites/micro groups. Standalone islands are labelled for local/part-time coverage.
Map
Service Health
Upload your existing routes (outlets tagged with a route/territory) and your reps. The optimizer keeps your territories and rep count fixed, and re-optimizes each rep’s schedule and daily routes.
Step 1 — Outlets + Routes file (combined)
Click or drag Outlets + Routes file here
.xlsx or .csv | Required columns: outlet_id, name, latitude, longitude, service_time_minutes, monthly_service_amount, route_code | Optional: min/max_monthly_visits, chain, state, service_windows
Step 2 — Reps file
Click or drag Reps file here
.xlsx or .csv | Required columns: rep_id, rep_name, latitude, longitude, route_code
Step 3 — Run Re-optimization
Both uploads must succeed before running. The optimizer will generate the visit schedule and daily routes for your fixed territories (30–60 s).