Not a consumption log.
A real inventory system.
Every scan updates actual on-hand quantity through an append-only ledger — the same record whether it's stock coming in, materials used on a repair order, or a physical count reconciling what's actually on the shelf. Here's what's actually running underneath it.
Three modes, one ledger.
Every movement writes to the same append-only record — nothing gets silently overwritten.
A dead zone in the shop doesn't cost you a scan.
Queues offline, syncs on reconnect
Scan with no signal and the entry is held on the device, then sent automatically the moment connection comes back — nobody has to remember to retry it.
Retries can't double-count
If a shaky connection makes it look like a scan didn't go through, scanning it again doesn't double-count it. Every scan carries its own idempotency key, so a retry always resolves to the same ledger entry instead of a second one.
Repair Kits: one scan for a job you do every day.
Some jobs use the same materials every time — a bumper repaint, say, always takes the same tape, the same mixing cups, the same clips. Define that once as a Repair Kit.
Bumper Repaint
- Masking Tape×2
- Mixing Cups×4
- Retention Clips×6
- 400-Grit Sandpaper×1
One scan adds all four to the cart, at these quantities.
One tap, same ledger
Using a kit on the scan screen adds every material in it to the cart at its set quantity, in one action. From there it's an ordinary cart, submitted and flagged exactly the way anything scanned by hand would be — a kit is a shortcut into the ledger, not a separate system next to it.
Know who used what, and what looks wrong.
Technician usage
A per-technician rollup of what they've consumed, how much value it added, and how many ROs it touched — the same accountability picture that's normally a separate purchase, built in.
Anomaly detection
Flags duplicate scans (the same material, same RO, same person, seconds apart) and usage spikes against a material's own baseline — loss prevention that surfaces on its own instead of waiting to be noticed in a history list.
When it's time to reorder, it's already grouped by vendor.
Every material carries a reorder point, so there's no separate stock-take to run before ordering.
The list updates itself
- Every material carries its own reorder point
- The reorder list reflects the ledger in real time — no stock-take needed to generate it
One purchase order per vendor
- Export it, email it, or generate a real PO straight from the list
- Suggested quantities round to a whole pack where that applies
- A material with no vendor linked gets called out, not silently skipped
Partial shipments stay open
- Receiving a PO logs what actually arrived against each line
- A partial shipment leaves the rest outstanding as a backorder
- The line isn't closed until it's actually fulfilled