How to Create an SKU Numbering System (Formula, Example, and Rules)

An SKU numbering system is the set of rules you use to build a unique code for every product you stock. Get it right early and a warehouse worker can scan a label and know exactly what the item is, which variant it is, and where it belongs. This guide shows you how to create an SKU numbering system that stays readable at 50 products and still works at 50,000, with a formula, a worked example, and the mistakes that force painful re-labeling later.
What an SKU is, and what it is not
SKU stands for Stock Keeping Unit. It's an internal code you invent and control. That makes it different from two things people confuse it with:
- A UPC or EAN (both are GTINs) is assigned through GS1 and lives on retail packaging so any store in the world can scan it. You don't make these up.
- A barcode is just the visual encoding. You can print a barcode that contains your SKU, your UPC, or anything else.
Your SKU is yours. Nobody outside your business needs to agree on it, which is exactly why so many teams design it badly. There are no guardrails, so you have to bring the discipline.
Seven rules for a good SKU numbering system
Before the formula, lock in the constraints. Break these and you'll pay for it during your first physical count.
- Keep it short. Aim for 8 to 12 characters. Long enough to be meaningful, short enough to read off a shelf label without squinting.
- Start with a letter, not a number. Spreadsheets silently strip leading zeros, so
00457becomes457. A letter prefix protects you. - Never encode anything that changes. No price, no supplier cost, no promo status. Prices move; SKUs must not.
- Go general to specific, left to right. Category first, then attributes, then the unique tail. This makes codes sortable and scannable at a glance.
- No spaces or odd characters. Use letters, digits, and a single separator (a hyphen). Slashes and spaces break CSV imports and URLs.
- Pad your numbers. Three digits (
001) gives you room to 999 without the sort order jumping around. - Keep it human-readable, not a paragraph.
TS-014-BLK-Mis fine.TSHIRT-CLASSIC-CREW-BLACK-MEDIUM-2024is not.
The formula
A reliable SKU follows one pattern:
[Category] - [Attribute or Style] - [Variant] - [Sequential ID]
Not every product needs all four segments. A simple item might be Category + Sequential ID. A product with color and size variants needs the full string. The point is that the structure is consistent, so TS always means t-shirt and the last block is always the unique number.
How to create an SKU numbering system, step by step
- List your top-level categories. Group by how you actually pick and store items, not marketing categories. Give each a 2 to 3 letter code (
TStee,HDhoodie,ACaccessory). - Pick the attributes that matter for picking. For apparel that's usually color and size. For electronics it might be model and capacity. Only encode what a picker needs to tell two items apart.
- Choose your ID scheme. Sequential numbers per category (
001,002) are the safe default. See the comparison below. - Write the rules down. Document the segment order, the code for every category, and who can create new ones. One person or one system should own it.
- Test on 10 real products before you commit. If a code is ambiguous or over 14 characters, adjust the structure now, not after you've printed 2,000 labels.
- Generate, don't hand-type. Manual entry is where duplicates and typos come from. Let your system build the code.
A worked example
Say you run an apparel brand. Your categories are tees (TS), hoodies (HD), and hats (HT). You launch a product called the Classic Crew Tee. It's the 14th tee style you've created, so its base is:
TS-014
It comes in black and white, in sizes S, M, and L. Each buyable variant gets its own SKU by appending color and size:
| Variant | SKU |
|---|---|
| Classic Crew, Black, Medium | TS-014-BLK-M |
| Classic Crew, Black, Large | TS-014-BLK-L |
| Classic Crew, White, Small | TS-014-WHT-S |
| Classic Crew, White, Medium | TS-014-WHT-M |
Anyone can read TS-014-WHT-M and know it's a tee, style 14, white, medium. The 014 block leaves room for 985 more tee styles before you touch the format. And because color and size are the only variable segments, your reporting can group every TS-014 variant into one product line automatically.
Smart vs. sequential SKUs: which to choose
There are two philosophies. Most operations land somewhere between them.
| Smart (intelligent) | Sequential (non-significant) | |
|---|---|---|
| Example | TS-014-BLK-M |
100457 |
| Reads at a glance | Yes | No, you look it up |
| Setup effort | Higher, needs a scheme | Low, just increment |
| Risk | Rules drift as catalog grows | None baked in |
| Best for | Warehouses picked by humans | Fully barcode-scanned, systemized flows |
Smart SKUs win when people read shelves and labels. Sequential SKUs win when scanners do all the work and your software resolves the code to details instantly. If you're not sure, use a lightly smart scheme: a short category prefix plus a sequential number (TS-1042). You get scannability without over-engineering.
Mistakes that wreck an SKU system
- Encoding the price or year. The moment either changes, your code lies.
- Reusing a retired SKU. Old records and returns will collide with the new product. Retire codes permanently.
- Letting everyone invent codes. Five people means five conventions and guaranteed duplicates. Centralize creation.
- No leading-zero padding.
TS-9sorts afterTS-100alphabetically. Pad to a fixed width. - Baking location into the SKU. Where an item sits is warehouse data, not product identity. Track location separately so you can move stock without renaming it.
Where Inventoros fits
You can run this whole scheme in a spreadsheet, and plenty of small teams do. Once you're managing variants across more than one location, though, you want the software to build and enforce the pattern for you. Inventoros generates structured SKUs, tracks variants and multi-location stock out of the box, and exposes everything through a REST and GraphQL API so your codes stay consistent whether they're created in the UI or by an integration. It's free, open source, and self-hosted, so your product data stays on your own server. The documentation walks through import formats and variant setup if you want to migrate an existing catalog.
FAQ
How many characters should an SKU be? Target 8 to 12 characters and cap it around 14. Short enough to read off a shelf label and print cleanly on a small barcode, long enough to carry a category, a couple of attributes, and a unique number. If yours are consistently longer, you're probably encoding attributes a picker doesn't need.
Should an SKU be the same as a barcode or UPC? No. Your SKU is an internal code you design and control. A UPC or EAN is assigned through GS1 for external retail scanning. You can print your SKU as a barcode for internal use, but keep the two identifiers separate in your records so a supplier change never forces you to renumber products.
Can I use random or sequential numbers instead of a structured SKU?
Yes, and for fully scanned, software-driven operations it's often the cleaner choice because there's no scheme to drift. The tradeoff is that a bare number like 100457 tells a human nothing without a lookup. If people read your labels, add a short category prefix so the code stays meaningful.
What happens if I run out of numbers in a category?
With three-digit padding you get 999 items per category, which is plenty for most. If you approach the limit, add a digit (TS-1000) or split the category rather than reusing retired codes. Never recycle an old SKU; returns and historical reports will map to the wrong product.