UPC (Universal Product Code)
A UPC (Universal Product Code) is the 12-digit numeric identifier encoded in the barcode on retail packaging in the US and Canada. It is assigned by the brand owner from a licensed GS1 company prefix and identifies one specific sellable item: a single size, color, and pack count. A UPC is not a separate standard from GTIN. It is a GTIN-12, the 12-digit member of the GTIN family.
What the 12 digits actually mean
A UPC-A barcode encodes 12 digits. Read left to right, they break into three parts.
| Part | Digits | What it means |
|---|---|---|
| GS1 Company Prefix | First 6-10 | Licensed to the brand owner by GS1. Identifies the company, not the product. |
| Item reference | Digits 11 minus prefix length | Assigned by the brand owner to one specific sellable item. |
| Check digit | Last 1 | A mod-10 calculation over the first 11 digits. |
The check digit exists to catch scanner misreads and keying errors. If someone types 012345679905 instead of 012345678905, the math returns 2 where the code claims 5, and the record can be rejected before it enters the catalog. Mod-10 catches every single-digit error, but it does not catch every transposition: some swapped-digit pairs still compute a matching check digit. Any validation rule you write should recalculate the check digit rather than trust the source file.
You will also see UPC-E, an eight-digit compressed symbol carrying six data digits, printed on small packages: a tube of thread sealant, a single automotive fuse. UPC-E is not a different number. It is a UPC-A with runs of zeros suppressed to save print width, and it expands back to the full 12 digits. Store the expanded UPC-A. Never store the compressed print form as the identifier of record.
UPC vs GTIN vs EAN vs everything else
This is the question behind most identifier confusion, and the answer is simpler than the vocabulary suggests.
| Identifier | Length | Who assigns it | Where you see it |
|---|---|---|---|
| UPC-A (GTIN-12) | 12 digits | Brand owner, from a GS1 prefix | US and Canadian retail packaging |
| EAN-13 (GTIN-13) | 13 digits | Brand owner, from a GS1 prefix | Europe, Asia, most of the world |
| GTIN-14 | 14 digits | Brand owner | Case and inner-pack labels |
| ASIN | 10 characters | Amazon | Amazon listings only |
| MPN | No fixed format | The manufacturer | Spec sheets, cut sheets, distributor catalogs |
UPC and GTIN are not competing standards. UPC-A is GTIN-12. EAN-13 is GTIN-13. GTIN is the umbrella term GS1 uses for the whole family, and every member can be expressed at 14 digits by left-padding with zeros.
- A UPC of
012345678905stored as GTIN-13 is0012345678905. - The same UPC stored as GTIN-14 is
00012345678905. - Same product, same number, different field width.
That padding rule is why a European trading partner asking for an EAN and a US retailer asking for a UPC are usually asking for the same digits.
Where UPCs break in real catalogs
UPC data almost never fails because the standard is hard. It fails because of handling.
- Leading zeros vanish. A spreadsheet reads
012345678905as a number and stores12345678905. The code is now 11 digits and fails a length check. It is recoverable by re-padding to 12, but only if you know a zero was dropped. - Scientific notation. Longer codes display as
8.71234E+11. In the workbook this is a display format, not damage: precision survives to 15 significant digits, so a 12- or 14-digit value is still intact underneath. The corruption happens on round-trip. Export that cell to CSV and re-import it, and the rounded display string is what lands in the file. - The wrong code in the field. Vendors drop the ITF-14 case code into the UPC column, or send the compressed UPC-E.
- Reuse. A brand retires a SKU and reassigns its number to something else. GS1 sets waiting periods for exactly this reason, and not everyone honors them.
- One UPC across variants. A supplier ships the same UPC for a 3/8-16 Grade 8 hex bolt in a 25-count box and a 100-count box. Retailers reject the second listing as a duplicate.
- Invented numbers. Internal SKUs padded to 12 digits, or codes using prefixes reserved for in-store and variable-weight use. They scan at the shelf and fail everywhere else.
What a UPC does not tell you
A UPC tells two systems that they are looking at the same product. It tells neither system what the product is.
012345678905 might be a 3/8-16 x 2 in. Grade 8 hex bolt, zinc-plated, sold 50 to a box. The number carries none of that. Not the thread pitch. Not the grade. Not the finish. Not the box quantity. Not the proof load.
That gap is where catalogs stall. A distributor can have a validated, GS1-legitimate UPC on every SKU in the file and still have most of the attribute columns empty. Matching by UPC is the easy half. The hard half is everything the match does not hand you.
Your PIM stores the UPC and the empty attribute fields next to it. Anglera does the work of finding the thread pitch, the grade, the finish, and the pack count in the manufacturer's spec sheet and filling those fields, so the identifier and the content land together instead of years apart.
Rules that keep UPC data trustworthy
Six habits cover almost every failure mode above.
- Store it as text, fixed width. Never a numeric column, in the PIM, the ERP, or the export.
- Recalculate the check digit on every ingest, not once at initial load. Vendor feeds change.
- Normalize to GTIN-14 internally. Render back down to 12 digits for US channels that want a UPC. One internal shape, many outbound shapes.
- One UPC per sellable variant. Parent and grouping records do not get one.
- Keep the case GTIN in its own field, separate from the each-level UPC. They are different products to a trading partner.
- Record the source and the date. When two systems disagree, provenance is the only thing that settles it.
Frequently asked questions
Is a UPC the same as a GTIN?
Effectively, yes. UPC-A is the 12-digit member of the GTIN family, formally called GTIN-12. GTIN is GS1's umbrella term covering GTIN-12 (UPC), GTIN-13 (EAN), and GTIN-14 (case codes). If a trading partner asks for a GTIN and you hold a 12-digit UPC, send it, left-padded with zeros to whatever width their field expects. Same product, same digits.
Do I need a UPC to sell on Amazon?
Amazon requires a GS1-issued GTIN for most new listings, and a UPC satisfies that requirement. Amazon checks the number against GS1 records, so codes bought from third-party resellers trace back to the original licensee and get rejected. Some categories and brand-registered sellers can apply for a GTIN exemption. The ASIN Amazon assigns after listing is Amazon's internal identifier, not a replacement for your UPC.
How do I get a UPC for my product?
You license a GS1 Company Prefix from your national GS1 organization, assign item reference numbers underneath it, and calculate the check digit. GS1 also sells individual GTINs for companies with only a handful of products. Buying UPCs from resellers is cheaper, but those numbers trace back to the original licensee, and any channel that verifies against GS1 records will flag them.
Why does my UPC lose its leading zero in Excel?
Excel treats a UPC as a number, so 012345678905 becomes 12345678905. That zero is destroyed. Scientific notation like 8.71234E+11 is different: the digits survive in the cell and only corrupt on CSV export and re-import. Format the column as text before pasting, type it as text on import, store it as a string in your PIM, and validate the check digit.
Does every product variant need its own UPC?
Yes. Every sellable variant gets its own UPC: each size, color, finish, and pack count. A UL listed 600V wire connector sold in a 25-count jar and a 100-count jar needs two distinct UPCs. The parent grouping record does not get one at all. Cases carry their own GTIN-14, stored in a separate field from the each-level UPC.