NextRouteNextRoute

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

CategoryDescriptionExample
no_accessCannot reach the propertyGate locked, car blocking driveway
weatherWeather prevents serviceHeavy rain, icy conditions
operationalEquipment or operational issueTruck breakdown, supply shortage
customer_requestCustomer asked to skipOut of town, bins not out

Skip Actions

After a skip, the system determines what happens next based on your skip policies:

ActionBehavior
revisit_todayAdd the stop back to the end of today's route (or optimized position)
reschedule_next_weekCreate a new stop on next week's route for this customer
reschedule_next_availableCreate a new stop on the next available route date based on frequency
skipNo 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_access skip gets a revisit added to today's route
  • A biweekly customer with a weather skip gets rescheduled to the next available date
  • A monthly customer with a customer_request skip is simply skipped (no makeup service)

Skip-Revisit Mode

The skip_revisit_mode setting controls where revisit stops are placed:

ModeBehavior
end_of_routeRevisit stop is added at the end of the current route
optimizedRevisit stop is inserted at the optimal position based on geography
noneNo 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

CategoryDescription
weatherSevere weather conditions
holidayHoliday or observed day off
no_trash_serviceMunicipal trash service not running (relevant for bin cleaning)
no_driverNo available driver
vehicle_issueVehicle breakdown or maintenance

Reschedule Policies

Tenant-configurable policies determine the default action when a route is rescheduled:

PolicyBehavior
reschedule_next_dayMove the route to the next business day
skipCancel the route entirely — no makeup
manualDispatcher 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:

  1. The route's original_date is preserved
  2. The reschedule_reason is recorded
  3. 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 stop
  • rescheduled_to_stop_id — points to the new makeup stop
  • revisit_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

  1. Go to Settings > Routes & Scheduling
  2. Under Skip Policies, configure the action for each category/frequency combination
  3. Set the Skip-Revisit Mode
  4. Under Route Reschedule Policies, set the default action for each reason category
  5. 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"
  }
}