Skip & Reschedule
Stop-level skip categories, frequency-aware policies, route-level rescheduling with configurable reason categories and actions.
Skip & Reschedule
NextRoute provides granular control over what happens when a stop cannot be completed or an entire route needs to be moved. Skip and reschedule policies are configurable per tenant and vary by skip category and service frequency.
Stop-Level Skips
When a driver cannot complete a stop, they mark it as skipped with a category and optional reason.
Skip Categories
| Category | Description | Example |
|---|---|---|
no_access | Cannot reach the property | Gate locked, car blocking driveway |
weather | Weather prevents service | Heavy rain, icy conditions |
operational | Equipment or operational issue | Truck breakdown, supply shortage |
customer_request | Customer asked to skip | Out of town, bins not out |
Skip Actions
After a skip, the system determines what happens next based on your skip policies:
| Action | Behavior |
|---|---|
revisit_today | Add the stop back to the end of today's route (or optimized position) |
reschedule_next_week | Create a new stop on next week's route for this customer |
reschedule_next_available | Create a new stop on the next available route date based on frequency |
skip | No follow-up — the service is simply skipped |
Skip Policies Configuration
Skip policies are defined in tenant.settings_json as a matrix of skip category by service frequency:
{
"skip_policies": {
"no_access": {
"weekly": "revisit_today",
"biweekly": "reschedule_next_available",
"monthly": "reschedule_next_available"
},
"weather": {
"weekly": "skip",
"biweekly": "reschedule_next_available",
"monthly": "reschedule_next_available"
},
"operational": {
"weekly": "revisit_today",
"biweekly": "revisit_today",
"monthly": "reschedule_next_available"
},
"customer_request": {
"weekly": "skip",
"biweekly": "skip",
"monthly": "skip"
}
}
}This means, for example:
- A weekly customer with a
no_accessskip gets a revisit added to today's route - A biweekly customer with a
weatherskip gets rescheduled to the next available date - A monthly customer with a
customer_requestskip is simply skipped (no makeup service)
Skip-Revisit Mode
The skip_revisit_mode setting controls where revisit stops are placed:
| Mode | Behavior |
|---|---|
end_of_route | Revisit stop is added at the end of the current route |
optimized | Revisit stop is inserted at the optimal position based on geography |
none | No revisit — use reschedule or skip actions only |
Configure this in Settings > Routes & Scheduling.
Route-Level Reschedule
An entire route can be rescheduled to a different date. This is used when external factors prevent running the route at all.
Reschedule Reason Categories
| Category | Description |
|---|---|
weather | Severe weather conditions |
holiday | Holiday or observed day off |
no_trash_service | Municipal trash service not running (relevant for bin cleaning) |
no_driver | No available driver |
vehicle_issue | Vehicle breakdown or maintenance |
Reschedule Policies
Tenant-configurable policies determine the default action when a route is rescheduled:
| Policy | Behavior |
|---|---|
reschedule_next_day | Move the route to the next business day |
skip | Cancel the route entirely — no makeup |
manual | Dispatcher manually selects the new date |
Configure reschedule policies in Settings > Routes & Scheduling under the Route Reschedule Policies section.
How Rescheduling Works
When a route is rescheduled:
- The route's
original_dateis preserved - The
reschedule_reasonis recorded - Based on the policy:
- reschedule_next_day: A new route is created for the next business day with the same stops
- skip: The route status is updated and stops are marked accordingly
- manual: The dispatcher selects a new date in the UI
Reschedule Tracking
Rescheduled stops maintain a link to their original:
rescheduled_from_stop_id— points to the original skipped stoprescheduled_to_stop_id— points to the new makeup stoprevisit_of— tracks revisit chains within the same day
This chain allows you to trace the full history of a service visit.
Configuring Policies
From the Dashboard
- Go to Settings > Routes & Scheduling
- Under Skip Policies, configure the action for each category/frequency combination
- Set the Skip-Revisit Mode
- Under Route Reschedule Policies, set the default action for each reason category
- Save
From the API
Update the tenant settings:
PUT https://api.nextroute.app/api/config
Authorization: Bearer <token>
Content-Type: application/json
{
"settings_json": {
"skip_policies": { ... },
"skip_revisit_mode": "optimized"
}
}Related
- Daily Routes — route and stop status lifecycle
- Driver Mobile App — how drivers execute skip workflows
- Missed-Service Credits — billing impact of skips