Logistics / Delivery
Business problems solved
| Problem | How PBCP solves it |
|---|---|
| No visibility into where a shipment is stuck | Shipment Story → timeline for each parcel |
| No way to identify high/low performing drivers | Driver Story → delivery rate, delay frequency |
| Customers constantly calling for status updates | Customer Story → view full shipment history |
| No advance warning of which routes will be delayed | Intelligence → delay pattern prediction |
Story types
Shipment Story
Where is this parcel? Where did it get delayed? How many days?
Driver Story
What is this driver's delivery success rate? How often do they have delays?
Customer Story
How many shipments does this customer have? What % were successfully delivered?
Route Story
Does this route have frequent delays? What time of day performs best?
Key events
| Event | Occurs when |
|---|---|
shipment.created | A new shipment is created |
shipment.assigned | Assigned to a driver |
shipment.picked_up | Driver picks up the parcel from the warehouse |
shipment.in_transit | Parcel is in transit |
shipment.out_for_delivery | Parcel is out for final delivery |
shipment.delivery_attempted | Delivery attempted but unsuccessful |
shipment.delivered | Successfully delivered |
shipment.failed | Delivery failed (recipient not home, wrong address) |
shipment.returned | Returned to origin |
driver.shift_started | Driver begins shift |
driver.shift_ended | Driver ends shift |
checkpoint.scanned | Scanned at a checkpoint / sorting center |
route.started | Route begins |
customer.notified | Notification sent to recipient |
Intelligence use cases
| Use case | Signal | Action |
|---|---|---|
| Delay prediction | Pattern in checkpoint.scanned → time of day + route | Notify customer in advance, adjust ETA |
| Failed delivery prevention | delivery_attempted > 1 time | Call recipient / change drop-off point |
| Driver performance | delivered / total assigned per driver | Incentivize top performers |
| Route bottleneck | Delay cluster at the same checkpoint | Adjust route or add vehicles |
| SLA breach risk | in_transit exceeds threshold | Escalate to ops team immediately |
Shipment story timeline
shipment.created → 09:00 Order created
shipment.assigned → 09:15 Assigned to driver A
shipment.picked_up → 10:30 Picked up from warehouse
checkpoint.scanned → 12:45 Passed sorting center (Lat Krabang)
shipment.out_for_delivery → 14:00 Departed hub
delivery_attempted → 15:30 Could not reach recipient, not home
shipment.delivered → 17:00 Successfully delivered on 2nd attempt
Total: 8 hours ← Pulse displays this timeline for the ops team