The chain ran on people remembering. A supervisor guessed which container was free. An analyst queried inventory and hand-typed a transfer document — the paperwork that moves material off the customer's books — then uploaded it manually to their portal. A placard was hand-written. A truck was audited at the gate against whatever was written down.
The gap that mattered had no owner at all: nothing stopped material being dropped into a container after its transfer paperwork was already filed. That inventory physically leaves the site and never appears on any document.
The full chain, automated and instrumented — container allocation verified against live inventory rather than guessed, transfer paperwork generated from actual on- hand quantities, automatic upload to the customer portal with the failure called out in red when it doesn't succeed, and printed placards carrying a scannable container code, load and pallet number, and captured weight.
Then the control that didn't exist before.
- Closing a container freezes a per-item snapshot of its contents
- A background job re-reads live inventory and alerts whenever anything was added after the paperwork was filed
- The baseline re-arms after each alert, so it reports new drift rather than repeating itself
- Material scrapped out of the wrong disposition bucket is flagged in the closing summary
The truck audit is a hard stop. If any pallet assigned to the load wasn't physically scanned onto the truck, submission is blocked and leadership is emailed — checked in the browser, re-checked on the server, and alerted independently, so bypassing the interface still produces both a block and a notification.
Two asset trackers must be logged on specified pallets before a pickup can be confirmed, and the rule is enforced identically in every path that can confirm one. The system also holds three separate records of driver, truck, trailer and plate — what was ordered, what the vendor's confirmation said, and what was verified at the gate — for no reason other than to catch the mismatch.
Weight is captured once, at placard printing, and carried forward automatically. Where a single order spans several pallets, weight resolves by container rather than by order, because keying on the order number collapses every pallet to whichever placard was printed last.
Status is derived from what actually happened — each milestone is a timestamp, and the stage is computed from them — so there is no status field to drift out of sync with reality. Stamping a milestone twice is harmless, which matters when several people work the same load.
The operation gained a control it had never had: material that leaves the building without appearing on the paperwork now generates an alert instead of a discrepancy someone finds later.