Universal Product Code

From Infogalactic: the planetary knowledge core
Jump to: navigation, search




Wallace Flint proposed an automated checkout system in 1932 using punched cards. Bernard Silver and Norman Joseph Woodland, a graduate student from Drexel Institute of Technology (now Drexel University), developed a bull's-eye style code and applied for the patent in 1949 (US patent 2612994, Norman J. Woodland and Bernard Silver, "Classifying Apparatus and Method", issued October 7, 1952 ).[2]

In the 1960s, railroads experimented with a multicolor barcode for tracking railcars, but they eventually abandoned it.[3]

A group of grocery industry trade associations formed the Uniform Grocery Product Code Council which with consultants Larry Russell and Tom Wilson of McKinsey & Company, defined the numerical format of the Uniform Product Code.[4] Technology firms including Charegon, IBM, Litton-Zellweger, Pitney Bowes-Alpex, Plessey-Anker, RCA, Scanner Inc., Singer, and Dymo Industries/Data General proposed alternative symbol representations to the council.[citation needed] In the end the Symbol Selection Committee chose to slightly modify, changing the font in the human readable area, the IBM proposal designed by George J. Laurer.[citation needed]

The first UPC marked item ever scanned at a retail checkout was at the Marsh supermarket in Troy, Ohio at 8:01 a.m. on June 26, 1974, and was a 10-pack (50 sticks) of Wrigley's Juicy Fruit chewing gum.[5] The shopper was Clyde Dawson and cashier Sharon Buchanan made the first UPC scan. The NCR cash register rang up 67 cents.[6] The entire shopping cart also had barcoded items in it, but the gum was the first one picked up. This item went on display at the Smithsonian Institution's National Museum of American History in Washington, D.C.[7]

IBM proposal

Around late 1969, IBM at Research Triangle Park (RTP) in North Carolina assigned George Laurer to determine how to make a supermarket scanner and label. In late 1970, Heard Baumeister provided equations to calculate characters per inch achievable by two IBM bar codes, Delta A and Delta B. In February, 1971, Baumeister joined Laurer.


File:UPC HKB.png
The UPC Label showing the general characteristics of Baumeister's proposals


Laurer proceeded to define the details of the label and write a proposal. N.J. Woodland was assigned as planner for the project and aided Laurer with writing his proposal.




One month later, January 1, 1973 Crouse transferred back to IBM's Advanced Technology group, and Laurer remained with the full responsibility for the label.

Dymo Industries, makers of handheld printing devices insisted that the code be character independent,[clarification needed] so that handheld printing devices could produce the bar code in store if the items were not bar-coded by the manufacturers. Dymo's proposal was accepted by IBM and incorporated in IBM's latest proposal.






Label type Label dimensions Area
Bull’s eye with Morse Code Large Large
Bull’s eye with Delta B 12.0" diameter 113.10 sq. in.
Bull’s eye with Delta A 9.0" diameter 63.62 sq. in.
Baumeister 1st w/ Delta B 6.0" × 5.8" 34.80 sq. in.
Baumeister 2 halves w/ Delta B 6.0" × 3.0" 18.00 sq. in.
Baumeister 2 halves w/ Delta A 4.5" × 2.3" 10.35 sq. in.
Baumeister with Delta C 1.5" × 0.9" 1.35 sq. in.




The scannable area of every UPC-A barcode follows the pattern SLLLLLLMRRRRRRE, where the S (start), M (middle), and E (end) guard bars are represented exactly the same on every UPC and the L (left) and R (right) sections collectively represent the 12 numerical digits that make each UPC unique. The first digit L indicates a particular number system to be used by the following digits. The last digit R is an error detecting check digit that allows some errors in scanning or manual entry to be detected. The non-numerical identifiers, the guard bars, separate the two groups of six digits and establish the timing.

Standard UPC-A Standard UPC-E*
UPC-A Q.svgUPC-A S.svgUPC-A L1E.svgUPC-A L2.svgUPC-A L3.svgUPC-A L4.svgUPC-A L5.svgUPC-A L6.svgUPC-A M.svgUPC-A R7.svgUPC-A R8.svgUPC-A R9.svgUPC-A R9.svgUPC-A R9.svgUPC-A R9E.svgUPC-A E.svgUPC-A Q.svg

1  23456 78999  9

UPC-E S.svgUPC-E 2ew.svgUPC-E 3ow.svgUPC-E 4ow.svgUPC-E 5ew.svgUPC-E 6ow.svgUPC-E 9ew.svgUPC-E E.svg






A quiet zone, with a width of at least 9 times the x-dimension, must be present on each side of the scannable area of the UPC-A barcode.[9] UPC-E requires 9 X-dimension units on the left side and 7 on the right.[10] For a GTIN-12 number encoded in a UPC-A barcode symbol, the first and last digits are always placed outside the symbol to indicate the quiet zones that are necessary for barcode scanners to work properly.




Start Left numerical digits Middle Right numerical digits End Quiet
UPC-A Q.svg UPC-A S.svg UPC-A L0.svg UPC-A L1.svg UPC-A L2.svg UPC-A L3.svg UPC-A L4.svg UPC-A L5.svg UPC-A L6.svg UPC-A L7.svg UPC-A L8.svg UPC-A L9.svg UPC-A M.svg UPC-A R0.svg UPC-A R1.svg UPC-A R2.svg UPC-A R3.svg UPC-A R4.svg UPC-A R5.svg UPC-A R6.svg UPC-A R7.svg UPC-A R8.svg UPC-A R9.svg UPC-A E.svg UPC-A Q.svg





Number system


  • 2: Reserved for local use (store/warehouse), for items sold by variable weight. Variable-weight items, such as meats and fresh fruits and vegetables, are assigned a UPC by the store, if they are packaged there. In this case, the LLLLL is the item number, and the RRRRR is either the weight or the price, with the first R determining which.
  • 3: Drugs by National Drug Code number. Pharmaceuticals in the U.S. have the remainder of the UPC as their National Drug Code (NDC) number; though usually only over-the-counter drugs are scanned at point-of-sale, NDC-based UPCs are used on prescription drug packages and surgical products and, in this case, are commonly called UPN Codes.[11]
  • 4: Reserved for local use (store/warehouse), often for loyalty cards or store coupons.
  • 5, 9: Coupons: The manufacturer code is the LLLLL, the first 3 RRR are a family code (set by manufacturer), and the next 2 RR are a coupon code. This 2-digit code determines the amount of the discount, according to a table set by the GS1 US, with the final R being the check digit. These coupons can be doubled or tripled.

Check digits

See also: Check digit


  3. Find the result modulo 10 (i.e. the remainder when divided by 10.. 10 goes into 58 5 times with 8 leftover).

For example, in a UPC-A barcode "03600029145x" where x is the unknown check digit, x can be calculated by:

  1. Adding the odd-numbered digits (0 + 6 + 0 + 2 + 1 + 5 = 14)
  2. Multiplying by three (14 × 3 = 42)
  3. Adding the even-numbered digits (42 + (3 + 0 + 0 + 9 + 4) = 58)
  4. Calculating modulo ten (58 mod 10 = 8)
  5. Subtracting from ten (10 − 8 = 2)

The check digit is thus 2.

This should not be confused with the numeral "X" which stands for a value of 10 in modulo 11, commonly seen in the ISBN check digit.





Last digit UPC-E pattern is UPC-A equivalent is
0 XXNNN0 0 or 1 + XX000-00NNN + check
1 XXNNN1 0 or 1 + XX100-00NNN + check
2 XXNNN2 0 or 1 + XX200-00NNN + check
3 XXXNN3 0 or 1 + XXX00-000NN + check
4 XXXXN4 0 or 1 + XXXX0-0000N + check
5 XXXXX5 0 or 1 + XXXXX-00005 + check
6 XXXXX6 0 or 1 + XXXXX-00006 + check
7 XXXXX7 0 or 1 + XXXXX-00007 + check
8 XXXXX8 0 or 1 + XXXXX-00008 + check
9 XXXXX9 0 or 1 + XXXXX-00009 + check



Check digit Parity pattern for UPC-A

number system 0

Parity pattern for UPC-A

number system 1

Start Odd parity pattern Even parity pattern End
UPC-E S.svg UPC-E 0ow.svg
UPC-E 1ow.svg
UPC-E 2ow.svg
UPC-E 3ow.svg
UPC-E 4ow.svg
UPC-E 5ow.svg
UPC-E 6ow.svg
UPC-E 7ow.svg
UPC-E 8ow.svg
UPC-E 9ow.svg
UPC-E 0ew.svg
UPC-E 1ew.svg
UPC-E 2ew.svg
UPC-E 3ew.svg
UPC-E 4ew.svg
UPC-E 5ew.svg
UPC-E 6ew.svg
UPC-E 7ew.svg
UPC-E 8ew.svg
UPC-E 9ew.svg
UPC-E E.svg





The EAN was developed as a superset of UPC, adding an extra digit to the beginning of every UPC number. This expanded the number of unique values theoretically possible by ten times, from 1 trillion to 10 trillion. EAN-13 barcodes also indicate the country in which the company that sells the product is based (which may or may not be the same as the country in which the good is manufactured). The leading digits of the code determine this, according to the GS1 country codes. The EAN-13 encoding rules encode the leading 13th digit by modifying the encoding of the left-hand half of the barcode: the original rules for UPC are treated as a '0' if read as EAN-13. A UPC barcode XXXXXXXXXXXX therefore is the EAN-13 barcode 0XXXXXXXXXXXX. It is possible to prefix a UPC barcode with a 0; they become EAN-13 rather than UPC-A. This does not change the check digit. All point-of-sale systems can now understand both equally.[citation needed]

EAN-8 is an 8-digit (including check digit) variation of the EAN number.

UPC usage notes:

  • Currently all products marked with an EAN will be accepted in America in addition to those products already marked with a UPC.

Other variations

  • UPC-B is a 12-digit version of UPC with no check digit, developed for the National Drug Code and National Health Related Items Code.[13]
  • UPC-2 is a 2-digit supplement to the UPC used to indicate the edition of a magazine or periodical.
  • UPC-5 is a 5-digit supplement to the UPC used to indicate suggested retail price for books.


See also


  1. "GS1 US > RESOURCES > Standards > EAN/UPC visuals". gs1us.org. 
  2. 2.0 2.1 "UPC - The Transformation of Retail". http://www-03.ibm.com/. Retrieved 2 Aug 2015.  External link in |website= (help)
  3. "A Brief History of the Bar Code". Esquire. 153 (3): 42. March 2010. 
  4. "Our history - Careers - McKinsey & Company". mckinsey.com. 
  5. Nelson, Benjamin (1997), From Punched Cards To Bar Codes. 
  6. Alfred, Randy, "June 26, 1974: By Gum! There's a New Way to Buy Gum" Wired magazine 06.26.08
  7. Harvard Magazine, September - October 2005
  8. "Alumni Hall Of Fame Members". University of Maryland Alumni Association. The University of Maryland. 2005. Archived from the original on 2007-06-30. Retrieved 2009-06-10. After graduating from Maryland in 1951, George Laurer joined IBM as a junior engineer and worked up the ranks to senior engineer. In 1969, he returned to the technical side of engineering and was later assigned the monumental task of designing a code and symbol for product identification for the Uniform Grocery Product Code Council. His solution—the Universal Product Code—radically changed the retail world. Since then, he has enhanced the code by adding a 13th digit. 
  9. rainman_63 (6 April 2005). "Drawing UPC-A Barcodes with C#". codeproject.com. 
  10. UPC Symbol Specification Manual
  11. "Barcodes for Pharmaceuticals and Surgical Products". 
  12. "UPC-E Symbology". Retrieved 21 January 2013. 
  13. "NHRIC (National Health Related Items Code)". HealthData. U.S. Department of Health & Human Services. 
  • US 3832686, Bilgutay, Ilhan M., "Bar Code Font", published May 11, 1972, issued August 27, 1974 
  • US 3145291, Brainerd, H. B., "Identification System", published July 2, 1959, issued April 18, 1964  Railroad bar code.
  • US 3617707, Shields, Charles B. & Roelif Stapelfeldt, "Automatic car identification system", published August 17, 1967, issued November 2, 1971 
  • US 3723710, Crouse, William G. & John E. Jones, "Method and Device for Reading and Decoding a High Density Self-Clocking Bar Code", published June 28, 1971, issued March 27, 1973 

External links

hu:Universal Product Code