Outlet Coverage
Route Status
Rep Utilization (Top 15)
Workload Trend
Outlet Cluster Map
Quick Actions
Reports
Reports compute automatically when data is available. Use the buttons to re-run after changing settings.
Capacity Diagnostic
Business Feasibility Report
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.
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
Advanced Settings — territory & routing math
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.
Territory limits
Rural / Micro Group Handling
Territory Feasibility & Utilization Bands
Capacity Preview
Calculated from your settings above. Updates when you save.
Chain Servicing Rules
click to expand
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.
Chains without a rule follow your working days × work hours.
| 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
click to expand
| 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
Route Detail:
Map
Service Health
Outlet Usage (Billing)
Counts every unique outlet ever loaded into the system, across all projects and re-uploads. Each outlet is counted once — re-uploading the same outlets does not increase usage.
New Outlets by Month
| Month | New Outlets First Seen |
|---|---|
| No data yet. | |
Billing — Route-Days
Billing unit: routes × working days, charged once per configuration (data + working days + month). Re-running with different settings under the same configuration is free. The quota mode below is set by your service provider: a soft quota is a spend meter settled at invoicing; a hard cap blocks further billable runs once usage reaches the quota.
| Date | Project | Month | Working Days | Routes | Units |
|---|---|---|---|---|---|
| No charges yet. | |||||
Route Matrix Cache
Cached Valhalla travel time/distance pairs stored in PostgreSQL (read-only view, shared across all projects).
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).