Skip to content
barcoder

Standards/upc-e

UPC-E

Type1D LinearUniversal

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
source · docs/standards/upc-e/index.md