Home / Glossary / UPC-A
Barcodes

What is a UPC-A Barcode?

The 12-digit retail barcode used in the United States and Canada. The original North American grocery scanner format, and a subset of EAN-13.

TL;DR
UPC-A (Universal Product Code, Type A) is a 12-digit barcode registered through GS1 US. The first digit is a number system / prefix, the next chunk is the manufacturer code, the next chunk is the product code, and the last digit is a check digit calculated from the other eleven. UPC-A is mathematically a subset of EAN-13. It's just EAN-13 with an implied leading zero. If you sell only in North America, UPC-A works. The moment you sell internationally, switch to EAN-13.

The 12-digit structure

PositionWhat it represents
1Number system digit. Defines the type of product. 0, 1, 6, 7, 8, 9 are general retail. 2 is variable-weight items (deli, meat). 3 is pharmaceuticals. 4 is loyalty/store use. 5 is coupons.
2–6Manufacturer code. Assigned by GS1 US to the brand owner. This identifies your company across every product you sell.
7–11Product code. Assigned by the brand owner to the specific SKU. Different sizes, flavors, and variants get different codes.
12Check digit. Calculated from digits 1–11.

The split between manufacturer code and product code isn't always rigidly 5+5. Larger brands with thousands of SKUs get shorter manufacturer prefixes (more digits available for products); smaller brands get longer prefixes (fewer products allowed). All of this is administered by GS1 US. You don't choose your own split.

How the check digit works

The math is the same as EAN-13, just on 11 digits instead of 12. Take the first 11 digits, multiply them by alternating weights of 3 and 1 starting with weight 3 on the leftmost digit. Sum the results. The check digit is the smallest number that, added to the sum, gives a multiple of 10.

For example, the first 11 digits 03600029145:

If the printed check digit doesn't match this calculation, the barcode is invalid. Scanners will read it but the POS system rejects the lookup. Catch this before press. A typo in the barcode digits means every label is unscannable, and reprinting is the only fix.

Print size and contrast rules

UPC-A nominal size is 37.29mm × 25.93mm (about 1.47" × 1.02") with an X-dimension of 0.33mm. Acceptable scaling is 80% to 200% of nominal. Most US retail compliance specs require minimum 80% magnification with full quiet zones. 9 modules on the left, 9 on the right, with no artwork or background tint encroaching.

Bars must be a single ink, not a CMYK build. Black or a dark spot color is standard. Red bars don't scan. Most laser scanners use red light, and red ink reflects red light, so the bars look invisible. Dark backgrounds need a white knockout shape behind the barcode so contrast holds.

On flexo, ink spread can fatten narrow bars by 10–15%. The industry term is bar growth. To compensate, prepress sometimes thins the bars in artwork (typically 1–2% reduction) so the printed result lands on spec. Most modern barcode generators handle this automatically when you specify the press type.

UPC-A vs EAN-13, when does it matter?

UPC-A and EAN-13 are not separate systems. Every UPC-A code 0XXXXXXXXXXXX can be read as the EAN-13 code 0XXXXXXXXXXXX with the leading zero made explicit. Modern POS systems and scanners read both transparently.

Where it matters is registration and retail acceptance:

Most modern brands print EAN-13 by default for new products. The extra digit costs nothing and future-proofs against international expansion.

Common file mistakes

Wrong check digit. Either calculated incorrectly, or the artwork was edited (a digit changed) without recalculating. Always validate the check digit before sending to press.

Quiet zone violations. Background artwork, decorative borders, or product copy crowding the left or right edge of the barcode. Scanners need clean white margins on both sides.

Vector-traced barcodes. A barcode traced from a low-resolution image rounds the bar widths and corrupts the encoding. Always generate barcodes from the digit string in a barcode tool, never trace from a screenshot.

Wrong number system digit. Variable-weight items (digit 2) and coupons (digit 5) need specific number systems and won't scan as standard retail. If you're not sure which, default to 0 for general retail.

UPC-A in your file?

Preflight reads the digits straight from the artwork, validates the check digit math, measures the print size against GS1 minimums, and flags quiet-zone problems before they become reprints.

Check a file →