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