Katana VentraIP

Universal Product Code

The Universal Product Code (UPC or UPC code) is a barcode symbology that is used worldwide for tracking trade items in stores.

The chosen symbology has bars (or spaces) of exactly 1, 2, 3, or 4 units wide each; each decimal digit to be encoded consists of two bars and two spaces chosen to have a total width of 7 units, in both an "even" and an "odd" parity form, which enables being scanned in either direction. Special "guard patterns" (3 or 5 units wide, not encoding a digit) are intermixed to help decoding.


A UPC (technically, a UPC-A) consists of 12 digits that are uniquely assigned to each trade item. The international GS1 organisation assigns the digits used for both the UPC and the related International Article Number (EAN) barcode.[1] UPC data structures are a component of Global Trade Item Numbers (GTINs) and follow the global GS1 specification, which is based on international standards. Some retailers, such as clothing and furniture, do not use the GS1 system, instead using other barcode symbologies or article number systems. Some retailers use the EAN/UPC barcode symbology, but do not use a GTIN for products sold only in their own stores.


Research indicates that the adoption and diffusion of the UPC stimulated innovation and contributed to the growth of international retail supply chains.[2]

UPC-A can detect 100% of single digit errors.

A single digit error means exactly one digit is wrong. Let the difference modulo 10 of the erroneous digit and the correct digit be d. The value of d cannot be zero because that means the digits are the same, but d can be any other value in {1, 2, 3, 4, 5, 6, 7, 8, 9}. If the error digit is in an odd position (weight 1), the left hand side of check digit equation changes by d and the equivalence is no longer zero. If the error digit is in an even position (weight 3), then the left hand side changes by 3d, but that change is also nonzero modulo 10, so the check digit equation is not satisfied.

UPC-A can detect about 89% of transposition errors. Specifically, if and only if the difference between two adjacent digits is 5, the UPC-A can't detect their transposition.

  1. If 2 neighboring digits are transposed, then one of the digits a will be weighted by 1, and the other digit b = a + d will be weighted by 3, where d is the difference between the two digits. If the digits were in their correct order, they would contribute
    to the left hand side of the check digit equation. In the transposed order, they contribute
    .
    to the LHS. Subtracting the two contributions gives how much they change the LHS:
    An error will be detected as long as the modular change is nonzero; if 2d ≡ 0 modulo 10, then the change will not be detected. Consequently, only when the character difference d ≡ 5 will an error be undetected (when d ≡ 0 the degenerate "transposition" is not an error).
  2. Next consider how often a transposition has a distance d of 5.

UPC-B is a 12-digit version of UPC with no check digit, developed for the and National Health Related Items Code.[21] It has 11 digits plus a 1-digit product code, and is not in common use.[22]

National Drug Code (NDC)

UPC-C is a 12-digit code with a product code and a check digit; not in common use.

[22]

UPC-D is a variable length code (12 digits or more) with the 12th digit being the check digit. These versions are not in common use.

UPC-E is a 6-digit code, that has its equivalent in UPC-A 12-digit code with number system 0 or 1.

is a 2-digit supplement to the UPC used to indicate the edition of a magazine or periodical.

UPC-2

is a 5-digit supplement to the UPC used to indicate suggested retail price for books.

UPC-5

– International supply-chain standards organization

GS1

Proof of purchase

, Bilgutay, Ilhan M., "Bar Code Font", published 11 May 1972, issued 27 August 1974 

US 3832686

, Brainerd, H. B., "Identification System", published 2 July 1959, issued 18 April 1964  Railroad bar code.

US 3145291

, Shields, Charles B. & Stapelfeldt, Roelif, "Automatic car identification system", published 17 August 1967, issued 2 November 1971 

US 3617707

, Crouse, William G. & Jones, John E., "Method and Device for Reading and Decoding a High Density Self-Clocking Bar Code", published 28 June 1971, issued 27 March 1973 

US 3723710

at the Wayback Machine (archived 7 July 2019)

UPC History - ID History Museum - Where the history of the UPC lives

Free online database of UPCs

UPC-Search.org

GS1 three-digit prefix list indicating country of origin of company in UPC code (not necessarily country of manufacture)

GS1 company prefix