| Position | What it represents |
|---|---|
| 1 | Number 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–6 | Manufacturer code. Assigned by GS1 US to the brand owner. This identifies your company across every product you sell. |
| 7–11 | Product code. Assigned by the brand owner to the specific SKU. Different sizes, flavors, and variants get different codes. |
| 12 | Check 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.
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.
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 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.
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.
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 →