CPG Terms Explained, a series by Cyril Ovely

What Is a SKU? How SKU Coding Systems Actually Work

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 short answer

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.

One SKU per sellable variant

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.

The anatomy of a SKU

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 SKUSegment 1Segment 2Segment 3Segment 4
AC-ORG-200AC: Alpha Coffee brandORG: Original variant200: 200g jar
TSH-RND-WHT-MTSH: t shirt categoryRND: round neck styleWHT: whiteM: size medium
CHG-USB-C-65W-USCHG: charger categoryUSB-C: connector65W: outputUS: 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.

How different SKU coding systems work

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.

Design rules that survive scale

Across industries, the same practical rules keep coming up:

  • Keep codes short. 8 to 12 characters is the common guidance. Long enough to carry meaning, short enough to read, say over a phone, and type without errors.
  • Avoid ambiguous characters. O and 0, I and 1, and B and 8 get confused in speech and in hurried typing. Many teams exclude vowels entirely to avoid accidental words, and drop O and I for good measure.
  • Do not start codes with zero. Spreadsheets and some databases silently strip leading zeros, so 0042 becomes 42 and your carefully fixed length scheme falls apart.
  • Keep volatile data out of the code. Price, warehouse location, and supplier names change. A SKU should identify what the product is, not where it is this quarter or what it costs today.
  • Never reuse retired codes. A delisted SKU carries sales history. Reusing it for a new product welds two unrelated histories together.
  • Write the grammar down. Document what each segment means, what the separator is, and how new values get added. The test is a new joiner: can they construct the right SKU for a new variant without asking anyone?
  • Control who creates codes. One owner, one register, one approval path. Distributed invention is how you end up with COF-200, COFFEE-200G, and AC-ORG-200 for the same jar.

SKU governance in practice

The rules above only hold with a small amount of machinery around them. Teams that do this well run three habits:

  • A register. One authoritative list mapping every SKU to its description, its GTIN, its pack and case configuration, and its status. Everything else reads from the register.
  • A launch checklist. New products get their SKU, their GTIN per packaging level, and their mappings before first production, not after. Codes assigned late get assigned badly.
  • A monthly audit. Codes in use but not in the register, register entries with no stock movement, and near duplicate descriptions all surface quickly in a short monthly review, while they are still cheap to fix.

When SKUs meet the outside world

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.

For the technically minded: A SKU is a natural key chosen by the business rather than a system generated surrogate, which is exactly why it needs governance: natural keys are readable and stable only while the rules behind them are enforced. In a CPG data model, treat the SKU as the internal primary key, store GTINs as attributes (one per packaging level, so a SKU can legitimately have several), and keep retailer item numbers in a mapping table keyed on SKU plus customer. When warehouses barcode internal SKUs, they typically use Code 128 or Code 39, because those symbologies carry arbitrary alphanumeric text and are not tied to GS1 rules.

The three SKU problem in distribution

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:

WhoTheir identifierWhat it is tuned for
The brandAC-ORG-200 (SKU) plus GTIN per pack levelRange management, production, measurement
The distributorIts own SKU, say BEV-04412Warehousing, van loading, route accounting
The retailerIts own item numberAssortment, 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.

Common mistakes

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.

The takeaway

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.

Sources and further reading


Lighthouse for CPG

See how Lighthouse turns these terms into retail execution

Lighthouse connects distribution, execution, trade, and supply into one system your commercial teams act on at the store and SKU level.

Request a demo
Cyril Ovely
Co-Founder and CTO, Vxceed

Cyril is the Co-Founder and CTO at Vxceed. With over two decades of experience in engineering and entrepreneurship, he focuses on building scalable SaaS solutions that transform demand chain execution and help businesses operate with greater agility in evolving markets.