UPC Barcodes Explained

UPC-A (Universal Product Code, version A) is the barcode that appears on virtually every product sold through retail in North America. It was introduced in 1974 when a pack of Wrigley's chewing gum became the first commercially scanned product at a Marsh supermarket in Troy, Ohio. Understanding its structure is necessary for anyone creating retail product labels.

The UPC-A Number Structure

A UPC-A number is exactly 12 digits, divided into four logical sections:

DigitsSectionAssigned ByDescription
1Number System Character (NSC)GS1Indicates product type (0=standard, 2=variable weight, 3=health, 5=coupon)
2–6Manufacturer / Company PrefixGS1 USUniquely identifies the brand or company
7–11Item ReferenceBrand/ManufacturerUniquely identifies the product variant within the company
12Check DigitAlgorithmCalculated from digits 1–11; validates the number

The manufacturer code is typically 5 digits (for a 6-digit company prefix including the NSC), but GS1 company prefixes range from 6 to 11 digits. Longer prefixes leave fewer digits for the item reference — a company with a 10-digit prefix can only have 1 item reference digit (and thus 10 unique item numbers). This is why large manufacturers request shorter prefixes and small companies receive longer ones.

The Check Digit Algorithm

The check digit ensures scanner reliability — a misread digit that changes one number to an adjacent digit will almost always produce an invalid check digit, causing the scanner to reject the read rather than silently decode the wrong value. The algorithm:

  1. Multiply digits at odd positions (1, 3, 5, 7, 9, 11) by 3.
  2. Sum those results.
  3. Sum digits at even positions (2, 4, 6, 8, 10) — no multiplication.
  4. Add both sums.
  5. Check digit = (10 − (total mod 10)) mod 10.

Example for 036000291451 (first 11 digits: 03600029145):

Odd positions: 0×3 + 6×3 + 0×3 + 2×3 + 1×3 + 5×3 = 0+18+0+6+3+15 = 42
Even positions: 3+0+0+9+4 = 16 (position 2,4,6,8,10 = digits 3,0,0,9,4)
Total = 42 + 16 = 58. Next multiple of 10: 60. Check digit = 60 − 58 = 2.
Full UPC-A: 036000291452

The UPC-A generator calculates the check digit automatically from your 11-digit input.

UPC-A vs. EAN-13

EAN-13 is the international equivalent of UPC-A. A UPC-A is simply an EAN-13 with a leading zero prepended — the 12-digit UPC-A 036000291452 is identical to the EAN-13 0036000291452. Every EAN-13 scanner reads UPC-A. In international markets, EAN-13 is the standard. If your products are sold globally, obtain an EAN-13 (which is a GTIN-13 in current GS1 terminology) and your domestic UPC will be automatically compatible.

Getting a Valid GS1 Company Prefix

To sell through major retailers in North America, you need a GS1-issued company prefix. The process:

  1. Join GS1 US at gs1us.org. Membership fees are annual and depend on company size and number of products (roughly $250–$10,000/year).
  2. You receive a company prefix (e.g., 0360002). Your prefix length determines how many item numbers you can create.
  3. Assign item reference numbers sequentially for each product variant (size, colour, and flavour are separate items with separate GTINs).
  4. Calculate or auto-generate the check digit for each product.
  5. Optionally register your GTINs in the GS1 Registry for supply chain partners to look up.

Some marketplaces (Amazon, Etsy) accept GS1-issued GTINs or allow exemptions for handmade goods. For physical retail distribution through major chains (Walmart, Target, Kroger, CVS), GS1 membership is generally required.

Common Mistakes with UPC Labels

  • Making up UPC numbers

    Fabricated UPCs can collide with legitimate products in retailer databases, causing checkout errors or rejected EDI transactions. Use only GS1-issued numbers for retail.

  • Using the same GTIN for different variants

    Each distinct product variant (size, colour, configuration) needs its own unique GTIN. Sharing a GTIN across variants causes inventory and checkout errors.

  • Printing below 80% magnification

    GS1 specifies 80% minimum magnification for UPC-A. Below this, many POS scanners fail at distance. Verify printed size against the GS1 specification.

  • Violating the quiet zone

    The 3.63 mm quiet zone on each side of the barcode must be completely clear of text, borders, and design elements.

  • Leading zero stripped

    If entering UPC values in Excel, format the column as Text to prevent zero stripping. A UPC-A with a missing leading zero becomes an invalid 11-digit number.

Frequently Asked Questions

Do I need a GS1 number to sell on Amazon?

Amazon accepts GS1-issued GTINs and brand registry exemptions for private label products. For third-party reselling of branded products, use the manufacturer's existing GTIN. For new brands, a GS1 company prefix is the recommended route.

What is UPC-E and when is it used?

UPC-E is a compressed 6-digit version of UPC-A used on small packaging (cigarettes, gum, small hardware) where a full UPC-A barcode does not fit. Not all UPC-A numbers can be compressed to UPC-E — the manufacturer code and item reference must contain specific zero patterns. The generator handles this automatically if you request UPC-E output.

How long does it take to get a GS1 company prefix?

GS1 US online registration is typically processed within one business day. You receive the prefix and can immediately begin assigning item numbers. Some regional GS1 offices take longer — check the local GS1 member organisation's process.

Can I transfer a GS1 prefix if I sell my business?

GS1 prefixes are licensed, not sold. When a business changes ownership, the new owner should work with GS1 to transfer or re-license the prefix. Using a prefix that has been transferred without notifying GS1 is a terms-of-service violation and can cause database conflicts.

Generate labels right now — free

The free tool runs entirely in your browser. No account, no uploads.

    More small-business tools: PromptedPaperwork