CPG Terms Explained, a series by Cyril Ovely
A SKU (Stock Keeping Unit) is a company's own internal code for a sellable item. Unlike UPC and EAN, SKUs follow no global standard. Every company designs its own system, and the design says a lot about how that business runs. This article looks at how different SKU coding systems are built and what makes them hold up at scale.
The same jar of coffee has one GTIN worldwide, the licensed global number from the previous article in this series. But it carries a different SKU at every company that touches it. The brand has one code, the distributor has another, the retailer has a third. GTINs belong to GS1. SKUs belong to you.
A SKU is both the unit of measure in which stock is managed and the code that names it. It is internal, unregulated, and alphanumeric, which means two things. First, nobody can tell you that your SKU format is wrong. Second, nobody will save you from it either. The companies that treat SKU design as a real decision get clean data for decades. The ones that let codes accumulate ad hoc spend years paying for it.
The foundational rule: every distinct sellable variant gets its own SKU. Consider a t shirt in 3 sizes and 4 colors. That is 12 SKUs, not one product with attributes, because stock, sales, and reorders all happen at the variant level. If two variants share a code, the system cannot tell you which one sold, which one is short, and which one to reorder.
Bundles and kits follow the same rule. A gift pack that combines two sellable units gets its own SKU in addition to the component SKUs, because the pack itself is stocked, sold, and shipped as a thing.
Pronunciation note, because it comes up in every meeting: people say either "ess kay you" or "skew", and both are accepted. Choose one and stay consistent.
Most structured SKUs are short strings of segments joined by a separator, where each segment encodes one attribute. Read left to right, they go from general to specific:
| Example SKU | Segment 1 | Segment 2 | Segment 3 | Segment 4 |
|---|---|---|---|---|
| AC-ORG-200 | AC: Alpha Coffee brand | ORG: Original variant | 200: 200g jar | |
| TSH-RND-WHT-M | TSH: t shirt category | RND: round neck style | WHT: white | M: size medium |
| CHG-USB-C-65W-US | CHG: charger category | USB-C: connector | 65W: output | US: region variant |
The first example continues the Alpha Coffee range from earlier in this series. Notice what the code gives you without any lookup: someone in a warehouse can read AC-ORG-200 and know the brand, the variant, and the pack size. That readability is the point of structured codes, and it is exactly what sequential numbers cannot offer.
SKU systems differ by industry because they answer to different operational realities. Three patterns cover most of what you will meet:
Apparel and footwear: built for the floor. Fashion SKUs lean on short letter segments for style, color, and size, such as JKT-NVY-M for a navy jacket in medium. The design priority is human readability at a glance, because store staff handle these codes constantly and the color size matrix is the shape of the entire range. A new colorway or size is immediately legible in the code.
Electronics and industrial parts: built for specification. These SKUs encode model bases plus specification attributes: connector type, output, voltage, revision, region. They often use fixed length, zero padded blocks so codes sort cleanly in systems and scan reliably. The priority is precision across thousands of near identical variants, where a wrong revision digit means the wrong spare part.
Food and beverage: built for pack configuration. FMCG SKUs encode what distribution actually runs on: flavor, pack size, and case configuration. A case level code like AC-ORG-200-CS12 says "Alpha Coffee Original 200g, case of 12" without opening a system. Some teams also embed storage hints, chilled, frozen, ambient, because the code doubles as a handling instruction on the warehouse floor. This is the pattern that matters most for brands selling through trade, because the case, not the unit, is the working unit of distribution.
Sequential systems: the starting point everyone outgrows. Plain numbers like 100245 are simple, collision free, and carry no meaning, which is precisely the problem. At 50 products they are fine. At 500, nobody can read an order without a lookup, and at 5,000 the register is the only source of truth, and the day it drifts, nobody notices. Sequential codes work as a last resort segment, not as a system.
Across industries, the same practical rules keep coming up:
The rules above only hold with a small amount of machinery around them. Teams that do this well run three habits:
A SKU stays stable while the product's external identities multiply around it. One internal code maps to the GTINs for each packaging level, to each retailer's own item number, and to marketplace catalog identifiers such as Amazon's ASIN where the product is sold online. The SKU is the anchor. The mappings carry the external world.
This is why SKU master data always grows a mapping table, and why that table, not the SKU itself, is where most integration errors hide.
Here is the situation that defines product data in FMCG distribution. One physical jar of coffee moves through three organizations, and each keeps its own code for it:
| Who | Their identifier | What it is tuned for |
|---|---|---|
| The brand | AC-ORG-200 (SKU) plus GTIN per pack level | Range management, production, measurement |
| The distributor | Its own SKU, say BEV-04412 | Warehousing, van loading, route accounting |
| The retailer | Its own item number | Assortment, pricing, POS |
All three codes, plus the GTIN, must resolve to the same physical item. When the mapping is right, orders flow, deliveries reconcile, and reports agree. When it is wrong, the failure modes are expensive and dull: vans loaded with the wrong variant, invoices disputed line by line, stock records that say full while the shelf is empty.
This is also where spreadsheets quietly break. A mapping table shared by email between a brand and ten distributors is not a system, it is a bet. The brands that scale through trade move these mappings into shared product data that every party reads from, so a variant change propagates once, everywhere.
Encoding meaning that changes. A price or a warehouse inside a SKU forces either wrong codes or mass renaming the day either changes. Identity belongs in the code; attributes belong in the record.
Letting every team invent codes. Sales wants readability, warehouse wants sortability, finance wants grouping, and without one owner you get three incompatible schemes for one range.
Confusing the SKU with the barcode number. The SKU is internal and unregulated. The GTIN under the barcode is global and licensed. They map to each other; they are not interchangeable, and systems that treat them as one field corrupt both.
SKUs are the only product codes you get to design, which makes them the most revealing ones. Apparel codes are built for the shop floor, electronics codes for specification precision, and FMCG codes for pack configurations and cases. The rules that keep any of them healthy are the same: short, unambiguous, stable, documented, and owned.
With the symbol, the global number, and the internal code all in place, the final article in this series puts them together on a single product and follows every identifier from the brand's master data to the retailer's checkout.
Lighthouse connects distribution, execution, trade, and supply into one system your commercial teams act on at the store and SKU level.
Request a demo