The list is sorted the way the floor is walked, not the way it was typed.

Picking in walk order, pieces scanned as they are taken, labels printed from the record, and counting a slice of the floor at a time rather than closing the building for a weekend.

What it does

One walk, four stops, three customers.

The lines on a shipment are in the order somebody typed them. The racks are not, and the picker pays for the difference in footsteps every time.

Fig. 1 — The list is sorted the way the floor is walked.lib/warehouse-stock.ts
The same eight spots, walked twice The lines are in the order somebody typed them. The racks are not. Order the lines were typed in Order you walk the racks in the same aisle, twice and again one pass, and it ends where it ends Two spots sit together because they are next to each other, not because they share a house bill.
Nothing is added to the warehouse and nothing is moved — the only thing that changes is the order of the rows, which is why the shorter walk costs nothing to adopt.
Pick list — loading 20 Aug Walk order
Pick list — loading 20 August, in walk order
StopSpotShipperPiecesPicked
1A-02-1Vela ImportsHBL AMC-2026-043133
2A-14-2Kim Trading CoHBL AMC-2026-041788
3A-14-3Kim Trading CoHBL AMC-2026-041744
4B-07-4Sun Lighting LLCHBL AMC-2026-038865
Stop 4 is one piece short — 5 of 6 scannedNot loaded
Why three customers are on one list
The order is the route through the racks. Two spots belonging to the same shipment sit together because they are next to each other, not because they share a house bill.

Counted off the spot as it goes.

Each piece comes off its spot against the line it belongs to, so a short stop stays short on the screen — five of six — rather than turning into a full load that somebody discovers at the truck. The barcode reader is the same one the dock uses at receiving, running in the phone’s own browser.

Cycle counting works the same way from the other direction: one slice of the floor is counted against what the record claims is in it, then the next slice the following day. Nobody closes the warehouse for a weekend to establish what is true.

What loading does to the clock →

One rule

A button that does nothing is worse than a button that is missing.

One of the twenty release checks is check_dead_controls, and it fails a build for exactly that: a control that can be pressed but has nothing behind it.

Two scanners behind one button

Some phone browsers ship a barcode reader and some do not. The app uses the built-in one where it exists and falls back to zxing where it does not, so the scan button behaves the same on the new phone the supervisor carries and the four-year-old one in the picker’s pocket. One button, and it always does what it says.

Because the floor forgives only once

Whoever had a scan button fail on Tuesday prints the list on Wednesday and keeps printing it. Nobody files a ticket about it and nobody reports it; the warehouse returns quietly to paper, and six weeks later the stock on the screen is fiction. That is why a dead control stops a release rather than joining a backlog.

What it does not do

Three gaps worth knowing about.

No staff mobile app
The field app belongs to the driver, and it is the only one that is translated — four languages across its eleven screens. Warehouse staff work the desktop screens, in English.
No general ledger
No chart of accounts, no bank reconciliation, no month-end close. Charges leave for QuickBooks and payments read back to mark an invoice paid.
No custom report builder
Counts and stock leave as CSV or Excel, and reports are built where the office already builds them. The export is widened instead of a query designer being shipped.
Get a demo

A load picked on an ordinary phone.

The field app is handed over during the demonstration, and a piece is scanned off a spot with the phone camera already in hand. One stop is then shorted deliberately, so that what the screen does about it can be seen.