Standards/upc-e
UPC-E
Overview
UPC-E is the compressed, six-digit member of the UPC-A family. It shows only 6 digits and produces a barcode roughly half the width of a full UPC-A symbol, achieved by suppressing zeros in a 12-digit GTIN-12. UPC-E is used on small US and Canadian retail packages where a full UPC-A would not fit. The six visible digits always expand losslessly back to the original 12-digit GTIN-12.
UPC-E is standardised as ISO/IEC 15420 (jointly with UPC-A, EAN-13 and EAN-8) and governed by GS1.
History
UPC-E was created as part of the original Universal Product Code effort to allow UPC barcodes to be carried on smaller packages than a full UPC-A could fit. It is the North American counterpart to the EAN family's short-form symbol, EAN-8, differing in that UPC-E is a reversible compression of an existing UPC-A number rather than a separately allocated short code. UPC was managed by the Uniform Code Council, which later merged into GS1.
Technical specification
- Visible digits: 6 (plus an implicit number-system digit and an implicit check digit, neither of which is drawn as bars).
- Number system: UPC-E only works with number system 0 or 1; number system 0 is by far the most common.
- Zero suppression converts a 12-digit UPC-A (GTIN-12) to 6 digits using
the manufacturer/product code pattern:
- manufacturer code ending in 000, 100, or 200 → first 2 manufacturer digits + last 3 product digits + the 3rd manufacturer digit;
- manufacturer code ending in 00 → first 3 manufacturer digits + last 2
product digits +
3; - manufacturer code ending in 0 → first 4 manufacturer digits + last 1
product digit +
4; - manufacturer code not ending in zero → first 5 manufacturer digits +
last product digit, with a final digit of
5-9.
- Check digit: the check digit is not drawn directly. It is the same check digit as the equivalent UPC-A code and is encoded through the odd/even parity pattern of the six visible digits, together with the number-system digit. The specific combination of parities represents the check-digit value; number system 0 and number system 1 use inverse parity sets.
- Guard bars: a normal start guard (101) and a 6-module end guard (010101). There is no centre guard pattern — all six digits are encoded as a single group, since the number-system and check digits ride in the parity rather than as drawn digits.
- Encoding: each visible digit uses 7 modules, giving a much narrower symbol than the 12-digit UPC-A.
Use cases
- Small retail packaging — the primary use; products too small for a full UPC-A, such as cosmetics, confectionery, film/photography items, and small health-and-beauty goods.
- Point of sale — decoded by North American retail scanners, which expand the six digits back to a GTIN-12 before lookup.
- GTIN carrier — because UPC-E always maps to a GTIN-12, it references the same product master data as UPC-A and the same higher-level GS1 standards such as GS1-128.
Implementations
UPC-E is supported by essentially every barcode scanner and POS system in North America, alongside UPC-A and EAN-13. Decoders such as ZXing and ZBar read UPC-E and typically return the expanded 12-digit GTIN-12. Most barcode-generation libraries accept either the 6-digit compressed form or a full UPC-A number that they compress automatically.
Comparison
| Standard | Digits | Region | Notes |
|---|---|---|---|
| UPC-E | 8 (6 shown) | US/Canada | Zero-suppressed UPC-A |
| UPC-A | 12 | US/Canada | Original retail barcode |
| EAN-13 | 13 | Global | Superset of UPC-A |
| EAN-8 | 8 | Global | Short form for small packs |
| GS1 DataBar | varies | Global | Carries GTIN + attributes in less space |
UPC-E is the North American compact symbol; the EAN family's equivalent for small packages is EAN-8. The key difference is that UPC-E is a reversible compression of an existing UPC-A (GTIN-12), whereas EAN-8 is a separately issued short number (GTIN-8). For richer data, GS1 systems move to GS1-128 or GS1 DataBar.
Fun facts
- UPC-E has no centre guard bar — uniquely among the EAN/UPC family symbols, all of its drawn digits sit in one continuous group.
- Both the number-system digit and the check digit are invisible: neither is drawn as bars; they live entirely in the odd/even parity of the six digits.
- A UPC-E symbol is roughly half the width of the UPC-A it is compressed from, while carrying the exact same GTIN-12 information.
Status
UPC-E is active and remains the standard compact retail barcode in North America. GS1's "Sunrise 2027" initiative encourages retailers to also accept 2D codes at POS, but UPC-E will remain in use on small packaging for the foreseeable future.
Sources
- GS1 — EAN/UPC barcodes: https://www.gs1.org/standards/barcodes/ean-upc
- ISO/IEC 15420: https://www.iso.org/standard/46143.html
- GS1 US — UPCs, barcodes, prefixes: https://www.gs1us.org/upcs-barcodes-prefixes
- Wikipedia — Universal Product Code
- Wikipedia — UPC-E
Deployments
UPC-E is deployed at retail point of sale across the United States and Canada on small consumer packages that cannot accommodate a full UPC-A. It is read by the same North American scanner installed base as the rest of the EAN/UPC family and always resolves to a GTIN-12 for product lookup.
Deployments
No country reports mention this standard by name.
Regions / aggregations not mapped to a single country
- Universal