Trips
What a trip holds, the statuses it moves through, and how the list, board and calendar views work.
A trip is one journey a driver makes: an ordered list of stops, optionally starting from an origin, with a driver, a vehicle and a schedule attached. It is the unit you plan, dispatch, watch and close out, and it is what the driver app shows when someone taps Start.
This page covers the trip list and the trip page. Building a route is covered separately in the trip wizard and stops and sequencing.
Terminology
Your organisation can rename these. If your screens say something else, this is what they mean here.
- Trip
- One journey with an ordered list of stops. Tenants commonly rename this to route, run, job or delivery.Rename it in Customization → Terminology
- Stop
- One place the driver visits inside a trip. Often renamed to drop, call, visit or leg.Rename it in Customization → Terminology
- Origin
- Where the trip starts from — a warehouse, kitchen or hub. Optional on every trip.Rename it in Customization → Terminology
Who can do this
- Role
- Administrators
- Permission
trips:readtrips:write
Drivers can reach the trips assigned to them, but the planning surfaces described here — the list views, bulk actions and the route builder — are admin-only.
What a trip holds
Every trip gets a generated number of the form TRIP-20260310-0001 — the date it was created plus a counter for that day. You can also record your own reference number, which is searchable alongside the trip number.
Beyond that, a trip carries:
- A type and a priority. Type comes from a tenant-configurable list (delivery, pickup, transfer, return, service, inspection, emergency, other by default). Priority is low, normal, high or critical.
- An origin, or none. With no origin the trip starts wherever the assigned driver is, and the route is measured from the first stop instead.
- A driver, an optional second driver, and a vehicle. All three can be left empty at draft stage and filled in later.
- A schedule. Scheduled start and end, plus planned distance and estimated duration, which the route builder fills in for you unless you override them.
- Its stops, tasks, cargo and documents, each on its own tab of the trip page.
- Costs and revenue, recorded per trip and rolled up into the trip report.
The list, and the three views
The trips page opens on a table, with a view switcher in the header for a board and a calendar. All three read the same filters, so switching view never changes which trips you are looking at — only how they are drawn.
Above the table sits a status strip: one cell per status, each a single-click filter, with the total clearing it again. Below that, a filter bar with quick views for Today, This week, Active and All, and filters for status, scheduled window, driver, vehicle, priority, type and origin. Search matches the trip number, the reference number and the notes.
| Table | Board | Calendar | |
|---|---|---|---|
| Best for | Finding and editing one trip | Moving a day of work along | Seeing load across a month |
| Default window | Everything matching the filters | Today, unless you set a range | The month on screen |
| Grouping | Sortable columns | One column per status | By scheduled start |
| Selection and bulk actions | Yes | No | No |
| Limit | Paged | First 100, with a warning above | The visible month |
The table shows trip number, status, driver, vehicle, origin, scheduled start and priority by default. Around a dozen more columns — type, category, stop progress, actual times, distances, weight, tags — are available from the column manager and remembered per user. Driver, vehicle and origin columns are deliberately not sortable: the server can only sort them by internal id, which would order the rows arbitrarily rather than by name.
Statuses, and what moves between them
A trip has exactly one status, and the moves between them are fixed. There is no free-form status field: every change is a transition the server validates, records as an event on the trip, and may refuse.
| Status | What it means | Can become |
|---|---|---|
| Draft | Created but not committed to. The starting status of every trip. | Scheduled, Cancelled |
| Scheduled | Committed to a start time. Needs a scheduled start to get here. | Assigned, Cancelled |
| Assigned | A driver is on it and the trip is ready to run. | En route, Cancelled |
| En route | The driver has started. Stops begin advancing. | Paused, Completed, Failed |
| Paused | Temporarily halted, with a recorded reason. | En route, Failed, Cancelled |
| Completed | Every stop reached a final state. | Archived |
| Cancelled | Called off, with a reason on anything past draft. | Archived |
| Failed | Abandoned mid-run, with a recorded reason. | Archived |
| Archived | Filed away. Nothing on the trip can change again. | Nothing |
Acting on a trip
Open a trip and the header offers only the actions its current status permits. Anything destructive asks for confirmation, and several ask for a reason that is stored on the trip rather than discarded.
- Draft: Schedule, Edit, or Delete — deleting a draft needs no reason.
- Scheduled: Assign, Edit, or Cancel with a reason.
- Assigned: Edit, or Cancel with a reason.
- En route: Pause with a reason (driver break, vehicle issue, weather, dispatch hold, other), Complete, or Fail with a reason.
- Paused: Resume, or Cancel with a reason.
There is deliberately no Start button on an assigned trip. Starting is the driver's action, and whether it happens by tapping Start or automatically on departure from the origin is a tenant setting, not a per-trip choice.
Assigning runs a conflict check — the same driver or vehicle already booked, maintenance windows, hours-of-service. Conflicts are recorded on the trip and shown to you, but they never block: an operator overriding a warning is a real and legitimate case. What does block is a missing driver, and a vehicle that is not active when the trip starts, which can be forced through only with a reason.
The trip page
The header carries the trip number, its status badge, the origin and stop count, planned distance and duration, a progress stepper and a PDF report. Everything else lives on tabs:
- Overview — the trip at a glance, with recent events.
- Stops — the route, editable while the trip is not in a final state.
- Tasks — every task across every stop, with proof status. See tasks.
- Events — the full audit trail of state changes and system actions.
- Locations — the GPS breadcrumb the driver app reported.
- Documents and Cargo — files and consignments.
- Exceptions — late arrivals, SLA breaches and deviations that were flagged.
- Route comparison — the planned route against what actually happened.
The PDF report bundles costs, revenue, internal notes and contact details, so it is restricted to admins even though drivers can open the trip itself.
Working on many trips at once
Select rows in the table and a bar appears with three actions: cancel, export to CSV, and assign a driver. Each one is applied per trip rather than as a single transaction, so a partial result is possible and is reported as one — for example "7 cancelled, 2 failed". The trips that succeeded are cleared from the selection; the ones that failed stay selected so you can look at them and retry.
A separate export control in the page header exports the current filter rather than the current selection, which is usually what you want for reporting.
When something does not behave
Complete is refused and the message lists stop numbers
One or more stops have not reached a final state.
Open the Stops tab and close out each stop named in the message — either finish it or skip it with a reason. A trip cannot complete over an open stop, because the stop is where proof of delivery lives.
Assign reports that a vehicle is needed, but this trip has no vehicle
The tenant requires a vehicle before a trip can be assigned.
Either assign a vehicle, or turn the requirement off under Customization → Operations. The setting is only available to tenants entitled to run vehicle-less trips; otherwise the requirement is fixed.
The Edit button has disappeared
The trip is completed, cancelled, failed or archived.
Those four are final. Neither the trip nor its stops can be changed again — the record is what happened, not a working document. Duplicate the trip from the create screen if you need to run something similar.
Saving reports that the trip was modified by someone else
Another session changed the trip since this page loaded it.
Every trip carries a version, and a write that quotes a stale one is refused rather than silently overwriting. Refresh the trip and reapply your change. This is what stops two dispatchers reassigning the same trip in opposite directions.
The board shows fewer trips than the count in the filter bar
The board loads at most 100 trips for its window.
A banner above the columns says so when it happens. Narrow the scheduled range or add a filter — the board is a working surface for a shift, not a complete listing.
- The trip wizardThe four-step flow that creates a trip, and what each step decides.
- Stops and sequencingNumbering, ordering, locks, and everything a single stop carries.
- Trip templatesRecurring work, generated ahead on a schedule you define.
- Object modelThe nouns the rest of the documentation is written in terms of.