Every shelf lists exactly what's supposed to be on it.
Map the shop the way you actually walk it — building, room, aisle, rack, shelf, bin — and hang a QR label on every spot. Scan a shelf and it tells you what should be there and what isn't. Packing a gig pulls gear off its shelf on its own; scanning it back puts it home, and every move leaves a from → to line with the item's name and a timestamp.
Nobody actually knows where it is.
Gear has a home in theory. In practice the spare receiver is wherever the last person set it down, the spreadsheet column that says "Rack 2" was last true in March, and the only reliable index is whoever has worked there longest. So a pull that should take forty minutes takes two hours, half of it spent walking past the same shelf three times because the list is in whatever order somebody typed it.
Then the real cost shows up: a shelf looks empty, someone assumes the item is lost, and you rent a replacement for a piece you already own that's sitting in a case on a truck.
With GigPal PRO: every spot has a scannable label, every item has a home, the app tracks which of it left legitimately, and the pull sheet is ordered by the route you actually walk.
From an empty building to a one-pass pull.
Build the tree in your own words.
Start with a top-level spot — a building or a room — then open it and add what's inside. Nesting goes as deep as the building does: a rack holds shelves, a shelf holds bins, a bin holds whatever you decide. Tagging a node with a level is optional and cosmetic, and the level list itself is yours to edit. If your shop calls them Bays and Cubbies rather than Aisles and Bins, rename the tiers and pick different icons; the tree shape comes from what sits inside what, never from the labels.
Hang a label on every spot.
Queue a location from its own LABEL button and it joins the print run with your asset tags. The QR carries the spot's name, the label prints its name large with the level and full parent path underneath, and three sizes cover the range — a 4×2 for a rack face, a 2×1 for a shelf edge, a 1.5×1 for a drawer front. Scanning that code resolves the location by name, so a label survives being re-parented: move Rack 2 to a different aisle and the sticker on it is still correct.
Put gear away in whichever order you're holding it.
PUT AWAY works both directions, because a warehouse doesn't. Scan the shelf label and then everything you're putting on it, or scan the item first — the app holds it and asks for the location next. Either way the contents list updates live while you work. Two other modes share the same scanner: WHERE takes any tag and jumps straight to the location that item belongs to, spelling out the full path and flagging it if the item is currently pulled. REMOVE takes gear off a shelf without erasing its home, so it still shows up on that shelf's missing list until it comes back.
Audit a shelf without a clipboard.
Open a location, hit REMOVE / AUDIT, and the panel puts the answer above the camera: ALL ACCOUNTED FOR, or MISSING FROM HERE with the count and the list. Every line names the item and its tag, and the instruction underneath is the whole workflow — find these and scan them to return them here. A cased item never shows up loose in that list — it's counted under the case that carries it. Gear flagged for service gets its own amber band with REPAIR, REPLACE, or how many units of a pool are down.
Order the shop once — every pull follows it.
Drag your top-level locations into the order you walk them and use ↑↓ to set the sequence inside each one. That arrangement is the walk order, and the PULL sheet for any gig reads it depth-first: gear gathers into location groups top to bottom, one pass through the building, no backtracking. Anything without a location sinks to the end rather than hiding in the middle. Items riding in a case collapse into a single grab-the-whole-case row at that case's spot, so you carry the box once instead of opening it six times.
The rules that keep the count honest.
Cable doesn't move because a case did
A bulk pool can be split across several cases at once — twelve of fifty in this box, eight in that one. So a pool never travels with a case the way a unique item does; the other thirty stay on their shelf, visible and countable. Get this wrong and a whole spool of cable vanishes from the warehouse the moment any of it gets packed.
Counted once, under the thing that holds it
Gear riding in a road case shows under that case — tap the row to open its manifest — not loose on the shelf beside it. Gear hard-wired into a flypack follows the identical rule: it isn't loose stock, and it isn't tallied a second time on top of the container actually holding it. Miss that and a packer sent to the shelf finds nothing there.
History can't record a move that failed
Moving gear between locations is an admin action. If someone without that permission tries, the whole operation is refused up front — no position change, no log row. The alternative is worse than a button that does nothing: a movement log that permanently claims a move that never happened.
A location built for repairs, not just storage
Mark any spot as a workbench and it stops being just another shelf. Service groups gear by location with benches pinned to the top, and an item's repair record gets a one-tap SEND TO WORKBENCH — which is a real location move, logged like any other, so nothing goes missing while it's being fixed.
What it won't let you do
Two locations can't share a name, since items reference their home by name — a rename that would collide is rejected with the reason. A location can't be moved inside its own sub-tree. And deleting one never deletes what was in it: sub-locations move up to the top level, cases it held simply lose their spot.
Rename a shelf, not 200 records
Changing a location's name rewrites it on every item that lives there in the same action. "Rack 2" becoming "Rack 2A" doesn't orphan a single row, and the printed label — which carries the name — is the only thing you need to re-run.
From → to, and when
Every item and case position change writes a history row: what moved, its previous spot, its new spot, a timestamp. The overview shows the latest movements at a glance and HISTORY opens the full log — the newest 300 moves. On an individual item, those moves are interleaved with its repair costs on its service record.
A shelf label works on any screen
The global scanner recognises a location code from wherever you are in the app and answers with the spot's name, its path, and how many items and cases are stored there — plus one button through to the location itself. You don't have to be on the right tab before you scan.
- The tree
- Nested by parent/child, as deep as your building goes. Seven default levels — Warehouse, Room / Zone, Aisle, Rack, Shelf, Bin, Workbench — all renameable, and a level is optional on any node.
- A spot holds
- Road cases by id, loose items by name, and any number of sub-locations. Contents group by name with a running count, and there's a search box for the shelf itself when it gets long.
- Labels
- QR carrying the location name, big auto-shrinking name, level and full parent path underneath. Three sizes: 4×2, 2×1, 1.5×1 inches. Queue them alongside your asset tags in one print run.
- Scan modes
- PUT AWAY (location-first or item-first), WHERE (find any tag's home), REMOVE (take it off the shelf, keep the home). Camera or a wired scan gun; manual tag entry always available.
- Refuses
- Duplicate location names, moving a location into its own sub-tree, and any position change by someone without inventory permission — each with the reason on screen.
- Layout
- Two panes on a desktop — locations left, the selected spot right. Wide monitors put the scanner beside the contents list; iPads and split-view stack them so nothing gets crammed. Phones run the same screen in one column.
A shop anyone new can work in on day one.
Map one aisle this week.
Build a rack, print its labels, scan a case onto a shelf — then run a pull sheet and watch it come out in the order you walk.
Get Started → All features →