What is the number system digit?

UPC-A encodes a 12-digit GTIN-12 . The first of those 12 digits is the number system digit - it categorises what application context the rest of the number lives in. A scanner can branch on this digit alone: if it's 2, treat the next 11 digits as a weighed-item code; if it's 3, treat them as a pharmaceutical NDC; otherwise process as a standard product.

When the same GTIN-12 is rewritten as a 13-digit GTIN-13, the EAN-13 equivalent has a leading 0 followed by the number system digit. So the number system digit ends up being the second digit of the GTIN-13. (See the parity selection page for how that leading zero is encoded implicitly.)

The lookup table

DigitMeaningNotes
0Standard retail merchandiseThe default. Most groceries, household goods, packaged food.
1ReservedNot currently assigned by GS1. Future use.
2Variable-weight itemItems priced by weight: meat at the deli counter, fresh produce, cheese cut to order. The 5 digits after the company prefix encode the weight or price, not a fixed product identifier.
3National Drug Code (NDC) / Health-relatedUS pharmaceuticals carry the FDA-assigned NDC encoded as a 10-digit number, padded out to fill the UPC-A.
4In-store / loyalty barcodeRetailer-internal barcodes that never leave the chain. Most loyalty-card barcodes use this.
5CouponPre-2005 manufacturer coupon barcodes. Superseded by GS1 DataBar Expanded for new coupons.
6Standard retail merchandiseSame meaning as 0. Used when GS1 ran out of leading-0 prefixes for new company allocations in the early 2000s.
7Standard retail merchandiseSame meaning as 0. Another overflow range.
8ReservedNot currently assigned by GS1.
9Coupon family code extensionUsed to extend coupon data when 5 alone was not enough.

The variable-weight case (digit 2)

The most surprising number system digit is 2. When you see a UPC-A starting with 2, the barcode is not a fixed product identifier - it is a per-item label generated on the spot by the retailer's deli or produce scale. Two common encoding patterns exist:

  • Price-encoded: digits 7-11 are the price in cents (or pence), with a check-digit recalculated at the scale. Used by older meat-counter scales.
  • Weight-encoded: digits 7-11 are the weight in fractional units; the price is looked up from the product code in digits 2-6. Used by produce scales that print "8.49 / lb at 1.23 lb".

The same product (say, sliced ham) gets a fresh UPC-A every time the scale prints a new label - same number system digit (2), same product code in digits 2-6, but a different weight/price tail and therefore a different check digit. These barcodes never get a GS1 Company Prefix; the manufacturer is implicitly the retailer that printed the label.

Number system digit vs GS1 prefix (EAN-13)

The EAN-13 family uses a 2- or 3-digit GS1 Prefix at the front of the number instead of a single number system digit. The two ideas serve related purposes:

  • The UPC-A number system digit categorises by application (retail / weight / pharma / coupon / internal).
  • The EAN-13 GS1 Prefix categorises by GS1 member organisation (00-13 = GS1 US, 30-37 = GS1 France, 45-49 = GS1 Japan, etc.).

When a UPC-A is read as an EAN-13 (which happens on every EAN-13 scanner), the leading 0 + the number system digit becomes a 2-digit GS1 Prefix that always falls in the GS1 US range (00-09). The two coding systems are interleaved, not duplicated.

Key standards

Related