Everything runs off one record.
Stortrace is the operations platform for valet storage. Dispatch, custody, measurement and billing read from the same row, so there is no second system to keep honest.
Custody chain
Replay the day nobody was watching
Dispatch & routes
Run the route off the same record as the stock
Receiving & measurement
Invoice the footprint you measured, not the one you were told
Empties loop
Get your containers back
Billing
Charge once, however bad the van signal was
API & webhooks
Mirror job state into whatever you already run
Custody chain
Replay the day nobody was watching
Every scan writes an append-only event, so where an item sits is something the system derives from its movements rather than something a person keeps up to date.
How this differs from a catalogueCustody unit states
Plus Missing, Damaged and Disposed. A mistake is corrected with a compensating entry, never by editing history.
Dispatch & routes
Run the route off the same record as the stock
Jobs, routes, stops, vehicles and crews sit on the record the items already live on, so there is no dispatch system to reconcile against your inventory and no seam for an item to fall through.
Job states
Partial retrievals, failed pickups, split loads and reschedules are first-class states, not exceptions bolted onto a happy path.
Receiving & measurement
Invoice the footprint you measured, not the one you were told
Footprint, volume and weight are captured at receiving against a position down to the bin, and that measurement is what the invoice line reads from instead of the estimate your customer gave over the phone.
Why we never bill per itemLocation hierarchy
Facility, warehouse, zone, aisle, rack, shelf, bin. Measured footprint, volume and weight are captured against it on intake.
Empties loop
Get your containers back
Operator-owned containers carry the returnable half of the same chain, so the box you dropped off empty is tracked out and back rather than written on a whiteboard.
Returnable states
Same table, same enum as everything else. A customer-owned pallet simply never enters these states.
Billing
Charge once, however bad the van signal was
Invoices, lines, payments and subscriptions read from the same custody record, and every booking, payment, scan and job transition carries an idempotency key, because all of them get retried by a flaky mobile connection eventually.
See what this costsWhat survives a lapsed subscription
Capture stops when a card fails. Viewing does not — an operator still needs their defence against a damage claim.
API & webhooks
Mirror job state into whatever you already run
Signed outbound webhooks push every job and custody transition to your endpoint with delivery logs, a retry schedule and replay, so a field-ops tool you already pay for can follow along without holding any of the state.
Webhook events
Job state never lives in another system. A custody chain with a third-party hole in it is not a custody chain.
None of this is worth much on a slide.
Bring us a week of your jobs.
Tell us how many sites you run and what you use today, and we will show you the same week running on a custody chain.