The journey of a parcel
lifecycle
Every state a parcel can reach, and the only moves between them
/
Fit
SVG
PNG
courier vehicle_load scan [a stop exists on today's route] / text the recipient their two-hour window
system next working day [fewer than two attempts used] / add a stop to tomorrow's route
system five working days elapsed / notify the merchant that it is coming back
courier delivery scan / publish parcel.delivered and notify the merchant
recipient reschedule or redirect / book the chosen day and confirm by SMS
system ten days without a scan / open a claim and credit the merchant
courier attempt_failed scan / record the reason and a doorstep photo
system depot_outbound scan [the destination depot is not this one]
courier collection scan / start the clock on the service promise
courier return scan at origin depot / raise the return charge
system two attempts used / text the recipient their options
merchant cancel [no scan has been taken] / void the label
courier any scan / close the claim as found
system ten days without a scan
courier depot_inbound scan
courier depot_inbound scan
Created · [initial] · Booked and labelled, still on the merchant's shelf · next: merchant
Created
Booked and labelled,
still on the merchant's
next: merchant
Collected · [normal] · In Relay's hands, not yet sorted · next: courier
Collected
In Relay's hands, not yet
sorted
next: courier
At depot · [normal] · Sorted and waiting for the next leg · next: system
At depot
Sorted and waiting for
the next leg
next: system
In transit · [normal] · On a trunk vehicle between two depots · next: system
In transit
On a trunk vehicle
between two depots
next: system
Out for delivery · [normal] · On a van, with a sequenced stop and a promised window · next: courier
Out for delivery
On a van, with a
sequenced stop and a
next: courier
Attempt failed · [failure] · Nobody in, or no safe place. Back to the depot tonight. · next: system
Attempt failed
Nobody in, or no safe
place. Back to the depot
next: system
Awaiting instruction · [waiting] · Parked until the recipient chooses what happens next · next: recipient
Awaiting instruction
Parked until the recipient
chooses what happens next
next: recipient
Returning · [normal] · Heading back to the merchant · next: system
Returning
Heading back to the
merchant
next: system
Delivered · [terminal] · Handed over, or left in the agreed safe place with a photo
Delivered
Handed over, or left in
the agreed safe place
Returned · [terminal] · Back with the merchant. Charged as a failed delivery.
Returned
Back with the merchant.
Charged as a failed
Cancelled · [terminal] · Withdrawn before Relay ever took it
Cancelled
Withdrawn before Relay
ever took it
Lost · [failure] · No scan for ten days. A claim is opened automatically.
Lost
No scan for ten days. A
claim is opened
courier vehicle_load scan [a stop exists on today's route] / text the recipient their two-hour window
courier: vehicle_load scan
[a stop exists on today's route]
/ text the recipient their two-hour w…
system next working day [fewer than two attempts used] / add a stop to tomorrow's route
system: next working day
[fewer than two attempts used]
/ add a stop to tomorrow's route
system five working days elapsed / notify the merchant that it is coming back
system: five working days elapsed
/ notify the merchant that it is comi…
courier delivery scan / publish parcel.delivered and notify the merchant
courier: delivery scan
/ publish parcel.delivered and notify…
recipient reschedule or redirect / book the chosen day and confirm by SMS
recipient: reschedule or redirect
/ book the chosen day and confirm by …
system ten days without a scan / open a claim and credit the merchant
system: ten days without a scan
/ open a claim and credit the merchant
courier attempt_failed scan / record the reason and a doorstep photo
courier: attempt_failed scan
/ record the reason and a doorstep ph…
system depot_outbound scan [the destination depot is not this one]
system: depot_outbound scan
[the destination depot is not this on…
courier collection scan / start the clock on the service promise
courier: collection scan
/ start the clock on the service prom…
courier return scan at origin depot / raise the return charge
courier: return scan at origin depot
/ raise the return charge
system two attempts used / text the recipient their options
system: two attempts used
/ text the recipient their options
merchant cancel [no scan has been taken] / void the label
merchant: cancel
[no scan has been taken]
/ void the label
courier any scan / close the claim as found
courier: any scan
/ close the claim as found
system ten days without a scan
system: ten days without a scan
courier depot_inbound scan
courier: depot_inbound scan
courier depot_inbound scan
courier: depot_inbound scan
drag to pan · wheel to zoom · click a node · Esc clears
Why it is shaped like this
Two delivery attempts, then the parcel stops moving until a human decides — vans are the scarce resource, not warehouse shelves
Lost is recoverable: parcels turn up, and a found parcel rejoins at the depot that scanned it
Watch out
Scans arrive out of order from offline handhelds, so a transition can be evaluated against a scan older than the current state
Only a scan moves a parcel forward. There is no manual status edit, by design.