Simple item identities make the work easier, faster, and more accurate

Posted August 9, 2021 by Clark Wilkins

Over the 20+ years I have worked on inventory systems — both as a programmer/designer, and also in my roles running various inventory/warehouse operations, I have been asked many times about the roles of item numbers, bar codes, and SKUs (part numbers) in the identification and processing of inventory items. It's time to take a deeper dive into this topic, and explain why simple rules are better in this area. This discussion will discuss both front-end (the people handing the items) and back-end (the data systems handling the items) issues.

Principle 1: items are uniquely identifiable

This is the primary principle of the stockd approach to inventory. Every item is a unique entity with its own lifecycle and metadata (serial number, associated pictures and notes, etc.). Two circuit boards may have the same part number, but they are not the same object. For this reason, we establish a unique item identifier for every object in the inventory — the item number.

Principle 2: don't “overload” data attributes

Every item in your inventory system is going to be stored in an organizational information system. Within that system, you should be able to keep as many discrete types of information as desired, such as:

Note that, in the list above, the first six fields directly apply to this item in that it can only have one of them at a time. Let's call that a “one-to-one (1:1) relationship”.

The remainder are “many-to-one (N:1) relationships”. For example, you might have 100s of lifecycle events for a single item. The set of all lifecycle events relates to a single item. The exact same principle holds for notes — you can have N notes about a single item.

Now that we have described an efficient organizational system that can store everything we need to know about an specific item, all we need is a unique identity to find it, and we can retrieve every other aspect from the item's complete record. We can use the item number (easily set and communicated as a unique integer) to find the record (“show me item 123”), and we get every other aspect of the item from the record.

This is why it's not desirable to overcomplicate item numbers. The simple integer gets you access to every aspect of the item, and yet it's easy to identify it — whether it's a hand-written number or a barcode.

Principle 3: the master identity is internal and unchangeable

However, there is a complication. What do you do if the item label (a tamperproof barcode, for example) gets damaged or removed, and you need a new item number? The answer is to present an external identity (a modifiable item number), and an internal identity (unique to this item, unchangeable, and used for all linkage and interactions internal to the software). This is all (relatively) invisible to the users, but what's happening now is you can change the item number, and all of the other fields (see above) are unaffected (no links are lost).


prev: making smarter decisions