Barcode Guides · 7 min read

SKU vs UPC: What Each Code Does, What It Costs, and When You Need Both

By Toolsque Team · September 2, 2026 · Updated September 5, 2026

A SKU is an internal product code you invent yourself, for free, and it only has to make sense inside your own business. A UPC is a globally registered 12 digit number licensed through GS1 that identifies the exact same product across every retailer, scanner, and marketplace that stocks it.

Most growing sellers end up with both. The SKU runs your shelves, your point of sale, and your spreadsheets. The UPC gets the product through retail checkouts and past Amazon's listing checks. This guide compares the two codes line by line, shows how one product carries both, and ends with a SKU scheme you can copy.

What a SKU is: your code, your rules

SKU stands for stock keeping unit. You create it, you own it, and it costs nothing. A typical SKU is 8 to 16 alphanumeric characters that pack real meaning into a fixed order: category, color, size, batch. TEE-BLK-M tells a warehouse picker everything in nine characters.

Uniqueness only matters inside your company. Ten thousand other shops can also use TEE-BLK-M and nothing collides, because SKUs never leave your own systems. That freedom cuts both ways: every variant needs its own SKU, so one t-shirt in 4 colors and 5 sizes is 20 SKUs, not 1.

What a UPC is: one number for the whole planet

UPC stands for Universal Product Code. The standard retail form is UPC-A: 12 digits, known inside the GS1 system as a GTIN-12. The first chunk is a GS1 company prefix licensed to the brand owner, the middle digits are an item reference the owner assigns, and the final digit is a check digit that lets scanners catch misreads.

Unlike a SKU, a UPC carries no meaning. The digits never say navy or XL. The number is a lookup key: the register scans it, the store's database returns price and description. And the number travels with the product, not the store, so the same jar of sauce scans identically at 500 different retailers.

One caution before you print anything. A barcode image and a registered number are two different things. Our free UPC barcode generator turns any 11 digits into a scannable UPC-A symbol with the check digit computed for you, which is perfect for internal labels, mockups, and testing. But a symbol that scans is not a number GS1 has licensed to you, and retail systems care about the second part.

SKU vs UPC: the comparison table

SKUUPC
Who assigns itYouGS1, licensed to the brand owner
Cost$0Around $30 one time per single GTIN, or a few hundred dollars plus annual renewal for a company prefix
Uniqueness scopeYour company onlyGlobal
FormatFlexible alphanumeric, usually 8 to 16 charactersFixed 12 digits (GTIN-12)
Meaning in the codeYes: category, color, size, batchNone, it is a pure lookup key
Where it is usedYour POS, warehouse, spreadsheetsRetail checkout, Amazon, Walmart, distributors
Can it changeAny time you decideStays with the product permanently
Typical barcodeCode 128UPC-A symbol

How one product carries both

Every sellable variant gets exactly one SKU and, if it goes to retail, exactly one GTIN, mapped 1 to 1 in your inventory table. A black medium tee might sit in your system as SKU TEE-BLK-M-26 next to UPC 012345678905, and every report, pick list, and marketplace feed joins on that pair.

In practice the two codes even live on different labels. The poly bag in your warehouse gets a Code 128 barcode of the SKU, because Code 128 encodes letters and hyphens. The hang tag or retail box gets the UPC-A symbol. On Amazon you submit both in the same listing form: the SKU field feeds your own seller reports, the product ID field takes the UPC.

When SKUs alone are enough

If you only sell through your own website, your own point of sale, market stalls, or direct invoicing, you can skip UPCs entirely and save the GS1 fees. You still want barcodes, just not registered ones. For apparel, the garment barcode generator turns a full style-color-size SKU like HOOD-NVY-L into a Code 128 label ready for hang tags, and its page covers tag sizing and label materials in depth.

The same logic covers gear that never gets sold at all. For laptops, ladders, and test equipment, print QR labels of your internal IDs with the QR code for asset tags tool, and if the inventory already lives in a spreadsheet, the QR generator from an Excel list batches hundreds of labels in one pass.

Marketplace rules and the Amazon GTIN exemption

Amazon asks for a GTIN, usually a UPC in the US, on most new product listings, and it checks submitted numbers against GS1 records. Numbers bought from cheap third party UPC resellers often trace back to some other company's prefix, and listings built on them can be blocked or removed later. If you need real UPCs, license them from GS1 directly.

The GS1 US pricing splits into two paths. Single GTINs cost a small one time fee, around $30 each with no renewal, which fits sellers with a handful of products. A company prefix costs a few hundred dollars up front plus an annual renewal and comes in capacity tiers from 10 up to 100,000 numbers, which pushes the per number cost down fast at volume.

The exemption is real but narrow. Amazon grants GTIN exemptions per category and brand, mainly for handmade goods, generic unbranded products, bundles, parts, and private label brands whose products genuinely carry no barcode. You apply inside Seller Central and upload images showing the product and packaging without a barcode, and approval is not guaranteed. eBay asks for product identifiers in many categories but still accepts listings without them, and Etsy has no UPC requirement at all. Walmart Marketplace requires a GTIN and is stricter about waiving it.

Building a SKU scheme: a worked example

A good scheme survives 5 years of new products without a rewrite. Six rules cover most of it:

  • Lead with a 2 to 6 letter style or category code: TEE, HOOD, MUG.
  • Fix your abbreviation lists once, so BLK always means black and NVY always means navy.
  • Separate segments with hyphens. Code 128 encodes them fine.
  • Skip lookalike characters like O and I, and never start a SKU with 0, because spreadsheets strip leading zeros.
  • Stay under about 16 characters so labels print small and typing errors stay rare.
  • Retire SKUs, never recycle them. A reused code poisons your sales history.

Worked example: a small apparel brand with 3 styles, 4 colors, and 5 sizes carries 3 x 4 x 5 = 60 variants, so 60 SKUs on day one. The pattern STYLE-COLOR-SIZE, plus an optional 2 digit year for batch tracking, covers all 60. The question that actually costs money is which of them need a GTIN:

VariantSKUUPC needed?
Hoodie, navy, L, own webshop onlyHOOD-NVY-LNo
Hoodie, navy, XL, own webshop onlyHOOD-NVY-XLNo
Crew tee, white, S, 2026 run, on AmazonTEE-WHT-S-26Yes, 1 GTIN
Crew tee, black, M, Amazon plus retailTEE-BLK-M-26Yes, same GTIN everywhere

If all 60 variants go to Amazon without an exemption, you need 60 GTINs, which is exactly the case where a GS1 prefix on a 100 number tier beats buying single GTINs one at a time.

The short version

SKUs and UPCs answer two different questions: what do I call this thing, and what does the world call it. Start with a clean SKU scheme today, add GS1 numbers the day a marketplace or retailer demands them, and print each code in the symbology built for it. For more barcode and labeling walkthroughs, browse the full guides library.

Related: barcode vs QR code

About Toolsque
Every tool and guide here is built and tested by hand. Formulas are checked against published sources, and QR tools are verified with a real scanner before release. Read how we build and test.