Universal Product Code

The Universal Product Code (UPC) is a barcode symbology that is widely used in the United States, Canada, United Kingdom, Australia, New Zealand, in Europe and other countries for tracking trade items in stores.

UPC (technically refers to UPC-A) consists of 12 numeric digits that are uniquely assigned to each trade item. Along with the related EAN barcode, the UPC is the barcode mainly used for scanning of trade items at the point of sale, per GS1 specifications.[1] UPC data structures are a component of GTINs and follow the global GS1 specification, which is based on international standards. But some retailers (clothing, furniture) do not use the GS1 system (rather other barcode symbologies or article number systems). On the other hand, some retailers use the EAN/UPC barcode symbology, but without using a GTIN (for products sold in their own stores only).

History

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.[2][3]

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

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.[5] 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. 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.

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.[6] The shopper was Clyde Dawson and cashier Sharon Buchanan made the first UPC scan. The NCR cash register rang up 67 cents.[7] 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.[8]

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.

In mid 1971, William "Bill" Crouse invented a new bar code called Delta C.[3] It achieved four times the characters per inch as Delta B. Delta B compared bar widths to space width to code bits. This was extremely sensitive to ink spread where too much ink or pressure would cause both edges of a bar to spread outward and too little to cause them to shrink. To make it worse as bars spread spaces shrink and vice versa. Delta C achieved its higher performance by only using leading to leading or trailing to trailing edges which was unaffected by uniform ink spread. The code provided best performance when it had a defined character set with a fixed reference distance that spanned most or preferably all the character. In August, 1971, Crouse joined the scanner effort. After several months they had made no progress. They were aware of the RCA bull’s eye label that could be scanned with a simple straight line laser scanner, but a readable label was far too large. Although Litton Industries proposed a bull’s eye symbol cut in half to reduce the area, it was still too large and presented the same ink smear printing problems as the RCA symbol. The redundancy and checking ability were removed completely. They were also aware of the many proposals from around the world, none of which were feasible.

UPC HKB
The UPC Label showing the general characteristics of Baumeister's proposals

In the spring of 1972, Baumeister announced a breakthrough. He proposed a label with bars that were slightly longer than the distance across all bars that needed to be read in a single pass. This label could be scanned with a simple “X” scanner only slightly more complex than the straight line laser scanner. The next day Baumeister suggested if the label were split into two halves the bar lengths could be cut nearly in half. These two proposals reduced the area from the bull’s eye by one third and then one sixth. The image to the right shows the label proposed by Baumeister. He did not specify any specific bar code as that was well understood. Except for the bar coding and ten digits the UPC label today is his proposal. Shortly after that Baumeister transferred to another area of RTP.

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.

Laurer’s first attempt with a bar code used Delta B. The resulting label size was about six inches by three inches which was too large. Crouse suggested that Laurer use his Delta C bar code and provided a copy of his patent that had a sample alphanumeric character set and rules to generate other size alphabets. This reduced the label size to about 1.5” x 0.9”. Later Laurer asked Crouse for assistance in how the scanner could detect a label. Together they defined guard bars and a definition of how to detect the label. The guard bars also provided identification for half label discrimination and training bars for the scanner threshold circuits. Laurer had a complete label definition and proceeded to write his proposal.[9]

Previously Crouse had an idea for a simple wand worn like a ring and bracelet. He decided to develop that wand to provide a demonstration of the label.

On December 1, 1972, IBM presented Laurer's proposal to the Super Market Committee in Rochester, Minnesota, the location where IBM would develop the scanner. During the presentation, Crouse gave a lab demonstration where he read UPC-like labels with his ring wand. In addition to reading regular labels, he read the large two-page centerfold label in the proposal booklet. He then turned to a page showing a photo of labeled items sitting on a table. The labels were small and flawed due to the resolution of the printed photo but the wand read many of them. This demonstration showed the robustness of the pure Delta C code. The proposal was accepted.

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, 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.

It was decided that the two halves of the label should have a different set of numeric characters. The character set Laurer derived from the Delta C patent used seven printable increments or units where two bars and two spaces would be printed. This yielded twenty combinations of characters, but there were two pairs that when read by Delta C rules yielded the same code for the pair. Since eighteen characters were not enough Laurer tried adding one unit to the character set. This yielded twenty-six Delta C characters which could provide the two sets of decimal characters but it also added fourteen percent to the width of the label and thereby the height. This would be a thirty percent increase in area or a label of 1.7”x1.03”. Laurer felt this was not acceptable. He returned to the original character set with twenty characters but four of those were two pairs with the same Delta C reading. He decided to use them all. To distinguish between the pairs he would measure one bar width in each of the pairs to distinguish them from each other. For each pair those bars would be one or two units wide. Laurer didn’t apply Baumeister’s equations to this set. He felt just one bar width measurement would not be too serious. As it turned out it would have required over fifty percent increase in width and height for an area increase of more than double. Laurer later admitted these four characters in each set were responsible for most of the scanner read errors.

David Savir, a mathematician, was given the task of proving the symbol could be printed and would meet the reliability requirements, and was most likely unaware of Baumeister’s equations. He and Laurer added two more digits to the ten for error correction and detection. Then they decided to add odd/even parity to the number of units filled with bars in each side. Odd/even parity is a technique used to detect any odd number of bit errors in a bit stream. They decided to use odd on one half and even on the other. This would provide additional indication of which half ticket was being read. This meant that every bar width had to be read accurately to provide a good reading. It also meant every space would also be known. Requiring every bit width to be read precisely basically nullified the Delta C advantage except for the Delta C reference measurement. Only the strange character set and the size of the label remains as a shadow of the Delta C code. The size was still that calculated for pure Delta C. If the label size had been properly recalculated, taking into account the required bar width measurements the label would have been far too large to be acceptable.

Mechanical engineering and electronic circuit design commonly require worst case designs using known tolerances. Many engineers working with bar codes had little experience with such things and used somewhat intuitive methods. This was the cause of the poor performance of the Delta B code and quite likely the failure of RCA’s bull’s eye scanner.

The following table shows the workable labels, available in the early 1970s, with their sizes.

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.

This is assuming a bull’s eye with the same information and reliable readability.

Composition

Each UPC-A barcode consists of a scannable strip of black bars and white spaces above a sequence of 12 numerical digits. No letters, characters or other content of any kind may appear on a UPC-A barcode. There is a one-to-one correspondence between 12-digit number and strip of black bars and white spaces, i.e. there is only one way to represent each 12-digit number visually and there is only one way to represent each strip of black bars and white spaces numerically.

The scannable area of every UPC-A barcode follows the pattern SLLLLLLMRRRRRRE, where S (start), M (middle), and E (end) guard patterns are represented the same way on every UPC-A barcode and the L (left) and R (right) sections collectively represent the 12 numerical digits that make each UPC-A 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 to be detected in scanning or manual entry. The guard patterns separate the two groups of six numerical digits and establish the timing.

UPC-A UPC-E
UPC-A UPC-E

Note: UPC-A 042100005264 is equivalent to UPC-E 425261 with the "EOEEOO" parity pattern, which is defined by UPC-A number system 0 and UPC-A check digit 4.

Formatting

UPC-A barcodes can be printed at various densities to accommodate a variety of printing and scanning processes. The significant dimensional parameter is called x-dimension (width of single module element). The width of each bar (space) is determined by multiplying the x-dimension and the module width (1, 2, 3, or 4 units) of each bar (space). Since the guard patterns each include two bars, and each of the 12 digits of the UPC-A barcode consists of two bars and two spaces, all UPC-A barcodes consist of exactly (3 × 2) + (12 × 2) = 30 bars, of which 6 represent guard patterns and 24 represent numerical digits.

The x-dimension for the UPC-A at the nominal size is 0.33 mm (0.013"). Nominal symbol height for UPC-A is 25.9 mm (1.02"). The bars forming the S (start), M (middle), and E (end) guard patterns, are extended downwards by 5 times x-dimension, with a resulting nominal symbol height of 27.55 mm (1.08"). This also applies to the bars of the first and last numerical digit of UPC-A barcode. UPC-A can be reduced or magnified anywhere from 80% to 200%.

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.[10][11] For a GTIN-12 number encoded in a UPC-A barcode, the first and last digits are always placed outside the symbol in order to indicate the quiet zones that are necessary for barcode scanners to work properly.

Encoding

The UPC-A barcode is visually represented by strips of bars and spaces that encode the UPC-A 12-digit number. Each digit is represented by a unique pattern of 2 bars and 2 spaces. The bars and spaces are variable width, i.e. 1, 2, 3, or 4 modules wide. The total width for a digit is always 7 modules; consequently, UPC-A 12-digit number requires a total of 7×12 = 84 modules.

A complete UPC-A is 95 modules wide: 84 modules for the digits (L and R sections) combined with 11 modules for the S (start), M (middle), and E (end) guard patterns. The S (start) and E (end) guard patterns are 3 modules wide and use the pattern bar-space-bar, where each bar and space is one module wide. The M (middle) guard pattern is 5 modules wide and uses the pattern space-bar-space-bar-space, where each bar and space is also one module wide. In addition, a UPC-A symbol requires a quiet zone (extra space of 9 modules wide) before the S (start) and after the E (end) guard patterns.

Encoding table for UPC-A barcode pattern SLLLLLLMRRRRRRE
Quiet
zone
S
(start)
L
(left numerical digit)
M
(middle)
R
(right numerical digit)
E
(end)
Quiet
zone
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9
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 S.svg UPC-A Q.svg

The UPC-A's left-hand side digits (the digits to the left of the M (middle) guard pattern) have odd parity, which means the total width of the black bars is an odd number of modules. On the contrary, the right-hand side digits have even parity. Consequently, a UPC scanner can determine whether it is scanning a symbol from left-to-right or from right-to-left (the symbol is upside-down). After seeing a S (start) or E (end) guard pattern (they are the same, bar-space-bar, whichever direction they are read), the scanner will first see odd parity digits, if scanning left-to-right, or even parity digits, if scanning right-to-left. With the parity/direction information, an upside-down symbol will not confuse the scanner. When confronted with an upside-down symbol, the scanner may simply ignore it (many scanners alternate left-to-right and right-to-left scans, so they will read the symbol on a subsequent pass) or recognize the digits and put them in the right order. There is another property in the digit encoding. The right-hand side digits are the optical inverse of the left-hand side digits, i.e. black bars are turned into white spaces and vice versa. For example, the left-hand side "4" is space×1 - bar×1 - space×3 - bar×2, meanwhile the right-hand side "4" is bar×1 - space×1 - bar×3 - space×2.

Numbering

The number of UPC-A and UPC-E barcodes are limited by the standards used to create them.

UPC-A: (10 possible values per left digit ^ 6 left digits) × (10 possible values per right digit ^ 5 right digits) = 100,000,000,000.
UPC-E: (10 possible values per digit ^ 6 digits) × (2 possible parity patterns per UPC-E number) = 2,000,000.

Number system digit

Below is description of all possible number systems with corresponding 12-digit UPC-A numbering schema LLLLLLRRRRRR, where L denotes number system digit and R check digit.

0–1, 6–9 
For most products. The LLLLL digits are the manufacturer code (assigned by local GS1 organization), and the RRRRR digits are the product code.
Reserved for local use (store/warehouse), for items sold by variable weight. Variable-weight items, such as meats, fresh fruits, or vegetables, are assigned an item number 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 (0 for weight).
Drugs by National Drug Code (NDC) number. Pharmaceuticals in the U.S. use the middle 10 digits of the UPC as their 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.[12]
Reserved for local use (store/warehouse), often for loyalty cards or store coupons.
Coupons. The LLLLL digits are the manufacturer code, the first three RRR are a family code (set by manufacturer), and the next two RR are a coupon code, which determines the amount of the discount. These coupons can be doubled or tripled.

Check digit calculation

The UPC includes a check digit to detect common data entry errors. For example, UPC-A codes choose the check digit to satisfy the check digit equation:

If an entered code does not satisfy the equation, then it is not a valid UPC-A.

The UPC-A check digit may be calculated as follows:

  1. Sum the digits at odd-numbered positions (first, third, fifth,..., eleventh).
  2. Multiply the result by 3.
  3. Add the digit sum at even-numbered positions (second, fourth, sixth,..., tenth) to the result.
  4. Find the result modulo 10 (i.e. the remainder, when divided by 10) and call it M.
  5. If M is zero, then the check digit is 0; otherwise the check digit is 10 − M.

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

  1. Sum the odd-numbered digits (0 + 6 + 0 + 2 + 1 + 5 = 14).
  2. Multiply the result by 3 (14 × 3 = 42).
  3. Add the even-numbered digits (42 + (3 + 0 + 0 + 9 + 4) = 58).
  4. Find the result modulo 10 (58 mod 10 = 8 = M).
  5. If M is not 0, subtract M from 10 (10 − M = 10 − 8 = 2).

Thus, the check digit x12 is 2.

The check digit equation is selected to have reasonable error detection properties (see Luhn algorithm).

  • 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.
Here is the Table of d-transpositions for UPC-A barcodes, where
Table of d-transpositions for UPC-A barcodes
d
0 1 2 3 4 5 6 7 8 9
1 0 0 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 9
2 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9
3 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9
4 3 3 3 4 3 5 3 6 3 7 3 8 3 9
5 4 4 4 5 4 6 4 7 4 8 4 9
6 5 5 5 6 5 7 5 8 5 9
7 6 6 6 7 6 8 6 9
8 7 7 7 8 7 9
9 8 8 8 9
10 9 9
Sum 10 18 16 14 12 10 8 6 4 2
Row Sum contains the number of d-transpositions, therefore the proportion of non-detectable transposition errors is (ignoring the transpositions where d = 0):

Variations

UPC in its most common usage technically refers to UPC-A.

Other variants of the UPC exist:

  • UPC-B is a 12-digit version of UPC with no check digit, developed for the National Drug Code (NDC) and National Health Related Items Code.[13] It has 11 digits plus a 1-digit product code, and is not in common use.[14]
  • UPC-C is a 12-digit code with a product code and a check digit; not in common use.[14]
  • 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.
  • 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.

As the UPC becomes technologically obsolete, it is expected that UPC-B and UPC-C will disappear from common use by the 2010s. The UPC-D standard may be modified into EAN 2.0 or be phased out entirely.

UPC-E

To allow the use of UPC barcodes on smaller packages, where a full 12-digit barcode may not fit, a 'zero-suppressed' version of UPC was developed, called UPC-E, in which the number system digit, all trailing zeros in the manufacturer code, and all leading zeros in the product code, are suppressed (omitted).[15] This symbology differs from UPC-A in that it only uses a 6-digit code, does not use M (middle) guard pattern, and the E (end) guard pattern is formed as space-bar-space-bar-space-bar, i.e. UPC-E barcode follows the pattern SDDDDDDE. The way in which a 6-digit UPC-E relates to a 12-digit UPC-A, is determined by UPC-E numerical pattern and UPC-E parity pattern. It can only correspond to UPC-A number system 0 or 1, the value of which, along with the UPC-A check digit, determines the UPC-E parity pattern of the encoding. With the manufacturer code digits represented by X's, and product code digits by N's, then:

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

For example, a UPC-E 654321 may correspond to the UPC-A 065100004327 or 165100004324, depending on the UPC-E parity pattern of the encoded digits, as described next:

UPC-A
check digit
UPC-E parity pattern for UPC-A

number system 0

UPC-E parity pattern for UPC-A

number system 1

0 EEEOOO OOOEEE
1 EEOEOO OOEOEE
2 EEOOEO OOEEOE
3 EEOOOE OOEEEO
4 EOEEOO OEOOEE
5 EOOEEO OEEOOE
6 EOOOEE OEEEOO
7 EOEOEO OEOEOE
8 EOEOOE OEOEEO
9 EOOEOE OEEOEO
Encoding table for UPC-E barcode pattern SDDDDDDE
S
(start)
O
(odd parity digit)
E
(even parity digit)
E
(end)
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9
UPC-E S.svg UPC-E 0ow.svg
3-2-1-1
UPC-E 1ow.svg
2-2-2-1
UPC-E 2ow.svg
2-1-2-2
UPC-E 3ow.svg
1-4-1-1
UPC-E 4ow.svg
1-1-3-2
UPC-E 5ow.svg
1-2-3-1
UPC-E 6ow.svg
1-1-1-4
UPC-E 7ow.svg
1-3-1-2
UPC-E 8ow.svg
1-2-1-3
UPC-E 9ow.svg
3-1-1-2
UPC-E 0ew.svg
1-1-2-3
UPC-E 1ew.svg
1-2-2-2
UPC-E 2ew.svg
2-2-1-2
UPC-E 3ew.svg
1-1-4-1
UPC-E 4ew.svg
2-3-1-1
UPC-E 5ew.svg
1-3-2-1
UPC-E 6ew.svg
4-1-1-1
UPC-E 7ew.svg
2-1-3-1
UPC-E 8ew.svg
3-1-2-1
UPC-E 9ew.svg
2-1-1-3
UPC-E E.svg

UPC-E 654321 with "EOEOEO" parity pattern (UPC-A 065100004327) would be encoded as

1-1-1  4-1-1-1  1-2-3-1  2-3-1-1  1-4-1-1  2-2-1-2  2-2-2-1  1-1-1-1-1-1.

The barcode would look like this:

UPC-E-654321
UPC-E-654321

EAN-13

The EAN-13 was developed as a superset of UPC-A, adding an extra digit to the beginning of every UPC-A number. This expanded the number of unique values theoretically possible by ten times to 1 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 three leading digits of the code determine this, according to the GS1 country codes. Every UPC-A code can be easily converted to the equivalent EAN-13 code by prepending 0 digit to the UPC-A code. This does not change the check digit. All point-of-sale systems can now understand both equally.

EAN-8 is an 8-digit variation of the EAN barcode.

UPC usage notes:

  • All products marked with an EAN will be accepted in North America currently, in addition to those already marked with a UPC.
  • Products with an existing UPC do not have to be re-marked with an EAN.
  • In North America, the EAN adds 30% more codes, mainly by adding digits 10 through 12 to the UPC digits 00 through 09. This is a powerful incentive to phase out the UPC.

See also

References

  1. ^ "GS1 US > RESOURCES > Standards > EAN/UPC visuals". gs1us.org.
  2. ^ US patent 2612994, Woodland, Norman J. & Bernard Silver, "Classifying Apparatus and Method", issued October 7, 1952
  3. ^ a b "UPC - The Transformation of Retail". Retrieved April 28, 2016.
  4. ^ "A Brief History of the Bar Code". Esquire. 153 (3): 42. March 2010.
  5. ^ "Our history - Careers - McKinsey & Company". mckinsey.com.
  6. ^ Nelson, Benjamin (1997). Punched cards to bar codes : a 200 year journey ; with description and examples of over 270 different machine-readable codes. Peterborough, N.H.: Helmers. ISBN 978-0911261127.
  7. ^ Alfred, Randy, "June 26, 1974: By Gum! There's a New Way to Buy Gum" Archived August 24, 2010, at the Wayback Machine Wired magazine 06.26.08
  8. ^ Scanning Species, Harvard Magazine, September - October 2005
  9. ^ "Alumni Hall Of Fame Members". University of Maryland Alumni Association. The University of Maryland. 2005. Archived from the original on 2007-06-23. 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.
  10. ^ rainman_63 (6 April 2005). "Drawing UPC-A Barcodes with C#". codeproject.com.
  11. ^ "UPC Symbol Specification Manual".
  12. ^ "Barcodes for Pharmaceuticals and Surgical Products".
  13. ^ "NHRIC (National Health Related Items Code)". HealthData. U.S. Department of Health & Human Services.
  14. ^ a b Bar Code 1: A Web Of Information About Bar Code UPC and EAN Bar Code Page
  15. ^ "UPC-E Symbology". Retrieved 21 January 2013.

Further reading

  • 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

Barcode

A barcode (also bar code) is an optical, machine-readable representation of data; the data usually describes something about the object that carries the barcode. Traditional barcodes systematically represent data by varying the widths and spacings of parallel lines, and may be referred to as linear or one-dimensional (1D). Later, two-dimensional (2D) variants were developed, using rectangles, dots, hexagons and other geometric patterns, called matrix codes or 2D barcodes, although they do not use bars as such. Initially, barcodes were only scanned by special optical scanners called barcode readers. Later application software became available for devices that could read images, such as smartphones with cameras.

The barcode was invented by Norman Joseph Woodland and Bernard Silver and patented in the US in 1952 (US Patent 2,612,994). The invention was based on Morse code that was extended to thin and thick bars. However, it took over twenty years before this invention became commercially successful. An early use of one type of barcode in an industrial context was sponsored by the Association of American Railroads in the late 1960s. Developed by General Telephone and Electronics (GTE) and called KarTrak ACI (Automatic Car Identification), this scheme involved placing colored stripes in various combinations on steel plates which were affixed to the sides of railroad rolling stock. Two plates were used per car, one on each side, with the arrangement of the colored stripes encoding information such as ownership, type of equipment, and identification number. The plates were read by a trackside scanner, located for instance, at the entrance to a classification yard, while the car was moving past. The project was abandoned after about ten years because the system proved unreliable after long-term use.Barcodes became commercially successful when they were used to automate supermarket checkout systems, a task for which they have become almost universal. Their use has spread to many other tasks that are generically referred to as automatic identification and data capture (AIDC). The very first scanning of the now-ubiquitous Universal Product Code (UPC) barcode was on a pack of Wrigley Company chewing gum in June 1974. QR codes, a specific type of 2D barcode, have recently become very popular.Other systems have made inroads in the AIDC market, but the simplicity, universality and low cost of barcodes has limited the role of these other systems, particularly before technologies such as radio-frequency identification (RFID) became available after 2000.

EBay

eBay Inc. ( EE-bay) is an American multinational e-commerce corporation based in San Jose, California that facilitates consumer-to-consumer and business-to-consumer sales through its website. eBay was founded by Pierre Omidyar in the autumn of 1995, and became a notable success story of the dot-com bubble. eBay is a multibillion-dollar business with operations in about 30 countries, as of 2011. The company manages the eBay website, an online auction and shopping website in which people and businesses buy and sell a wide variety of goods and services worldwide. The website is free to use for buyers, but sellers are charged fees for listing items after a limited number of free listings, and again when those items are sold.In addition to eBay's original auction-style sales, the website has evolved and expanded to include: instant "Buy It Now" shopping; shopping by Universal Product Code, ISBN, or other kind of SKU number (via Half.com, which was shut down in 2017); online classified advertisements (via Kijiji, or eBay Classifieds); online event ticket trading (via StubHub); and other services. eBay previously offered online money transfers as part of its services (via PayPal, which was a wholly owned subsidiary of eBay from 2002 to 2015).

Electronic Product Code

The Electronic Product Code (EPC) is designed as a universal identifier that provides a unique identity for every physical object anywhere in the world, for all time. The EPC structure is defined in the EPCglobal Tag Data Standard [1], which is an open standard freely available for download from the website of EPCglobal, Inc.. The canonical representation of an EPC is a URI, namely the 'pure-identity URI' representation that is intended for use when referring to a specific physical object in communications about EPCs among information systems and business application software. The EPCglobal Tag Data Standard also defines additional representations of an EPC identifier, such as the tag-encoding URI format and a compact binary format suitable for storing an EPC identifier efficiently within RFID tags (for which the low-cost passive RFID tags typically have limited memory capacity available for the EPC/UII memory bank). The EPCglobal Tag Data Standard defines the structure of the URI syntax and binary format, as well as the encoding and decoding rules to allow conversion between these representations. The EPC is designed as a flexible framework that can support many existing coding schemes, including many coding schemes currently in use with barcode technology. EPC identifiers currently support 7 identification keys from the GS1 system of identifiers, as well as a General Identifier and EPC identifiers that can be used for encoding supplies to the US Department of Defense.

EPCs are not designed exclusively for use with RFID data carriers. They can indeed be constructed based on reading of optical data carriers, such as linear bar codes and two-dimensional bar codes, such as Data Matrix symbols. The 'pure identity URI' canonical representation of an EPC is agnostic to the data carrier technology that was used to attach the unique identifier to the individual physical object.

The EPC is designed to meet the needs of various industries, while guaranteeing uniqueness for all EPC-compliant tags. Some of the existing GS1 identification keys [2] (such as the Global Returnable Asset Identifier (GRAI)) already provide for unique identification of individual objects. However, the Global Trade Item Number (GTIN) only identifies the product type or stock-keeping unit (SKU) rather than an individual instance of a particular product type. To ensure that an EPC always uniquely identifies an individual physical object, in the case of a GTIN, the EPC is constructed as a serialised Serialised Global Trade Item Number (SGTIN) by combining a GTIN product identifier with a unique serial number.

Both the Universal Product Code and EAN-13 identifiers that are still found on many trade items can be mapped into a 14-digit GTIN identifier, by padding to the left with zero digits to reach a total of 14 digits. An SGTIN EPC identifier can therefore be constructed by combining the resulting GTIN with a unique serial number and following the encoding rules in the EPCglobal Tag Data Standard.

The EPC accommodates existing coding schemes and defines new schemes where necessary. Each coding scheme within the EPC identifier framework is distinguished through the use of a separate namespace. In the URI notations, this is indicated using a URI prefix such as urn:epc:id:sgtin or urn:epc:id:sscc

In the compact binary encoding of an EPC identifier, the namespace is instead indicated using a compact binary header (typically the first 8 bits of the binary encoding of an EPC identifier). The EPCglobal Tag Data Standard provides details of the URI prefixes and corresponding binary header values.

Low-cost passive RFID tags were designed to uniquely identify each item manufactured. In contrast, bar codes for trade items and consumer products have limited capacity and typically only identify the manufacturer and class of products. Although RFID tags are currently still more expensive than a simple optically readable label, they offer additional capabilities such as the ability to be read by radio waves, without requiring 'line of sight' between the reader or interrogator and the tag; this enables individual items within a large cardboard box (case) to be read without first unpacking each individual item from the box. Some RFID tags offer additional read/write user memory that could be used for storage of additional information, such as an expiry date or date of manufacture.

The EPC tag will never entirely replace both plain text and barcoding, as liability obligations for the producer require durable and sufficiently fail-safe labels. Currently (2010) there are no applications in which RFID tags have completely replaced conventional labeling.

The EPC was the creation of the MIT Auto-ID Center, a consortium of over 120 global corporations and university labs. EPC identifiers were designed to identify each item manufactured, as opposed to just the manufacturer and class of products, as bar codes do today. The EPC system is currently managed by EPCglobal, Inc., a subsidiary of GS1. The specifications for the EPC identifiers can be found in the EPCglobal, Inc. Tag Data Standard, which is an open standard, freely available for anyone to download.

The Electronic Product Code is one of the industrial standards for global RFID usage, and a core element of the EPCglobal Network[3], an architecture of open standards developed by the GS1 EPCglobal community. Most currently deployed EPC RFID tags comply with ISO/IEC 18000-6C for the RFID air interface standard.

George J. Laurer

George Joseph Laurer (born September 23, 1925 in New York, NY) developed the Universal Product Code, commonly known as the barcode, in 1973. As an engineer at IBM, he was asked to develop the pattern used for the Universal Product Code.

A 36-year veteran of the International Business Machines Corporation (IBM) who retired in June 1987, George Laurer is the holder of 25 patents. He is also the author of 20 published Technical Disclosure Bulletins.

During his career, IBM recognized and rewarded him for many technical innovations. He received the prestigious “Raleigh, N.C. Inventor of the Year” award in 1976. In 1980, he was honored with IBM’s Corporate Technical Achievement award for his work on the Universal Product Code proposal that was issued in 1970 by McKinsey & Co. and Uniform Grocery Product Code Council, Inc.

Before joining IBM, he received the B.S. in electrical engineering from the University of Maryland in 1951. He came to the University after having served in the US Army during World War II and attending a technical school to learn radio and TV repair. Upon completion of his first year at the technical school, his instructor convinced him that he should not continue that course of study, but that he should go to college.

Today, Laurer lives in Wendell, North Carolina.

Human-readable medium

A human-readable medium or human-readable format is a representation of data or information that can be naturally read by humans.

In computing, human-readable data is often encoded as ASCII or Unicode text, rather than presented in a binary representation. Virtually all data can be parsed by a suitably equipped and programmed computer or machine; reasons for choosing binary formats over text formats usually center on issues of storage space, as a binary representation usually takes up fewer bytes of storage, and efficiency of access (input and output) without parsing or conversion.

In most contexts, the alternative to a human-readable representation is a machine-readable format or medium of data primarily designed for reading by electronic, mechanical or optical devices, or computers. For example, Universal Product Code (UPC) barcodes are very difficult to read for humans, but very effective and reliable with the proper equipment, whereas the strings of numerals that commonly accompany the label are the human-readable form of the barcode information. In many jurisdictions, barcode labels used in retail shopping must also include a human-readable price on the merchandise.

With the advent of standardized, highly structured markup languages, such as Extensible Markup Language (XML), the decreasing costs of data storage, and faster and cheaper data communication networks, compromises between human-readability and machine-readability are now more common-place than they were in the past.

This has led to humane markup languages and modern configuration file formats that are far easier for humans to read.

In addition, these structured representations can be compressed very effectively for transmission or storage.

Human readable protocols greatly reduce the cost of debugging.Various organizations have standardized the definition of human-readable and machine-readable data and how they are applied in their respective fields of application, e.g., the Universal Postal Union.Often the term human-readable is also used to describe shorter names or strings, that are easier to comprehend or to remember than long, complex syntax notations, such as some Uniform Resource Locator strings.Occasionally "human-readable" is used to describe ways of encoding an arbitrary integer into a long series of English words.

Compared to decimal or other compact binary-to-text encoding systems,

English words are easier for humans to read, remember, and type in.

IBM Research

IBM Research is IBM's research and development division. It is the largest industrial research organization in the world, with twelve labs on six continents.IBM employees have garnered six Nobel Prizes, six Turing Awards, 20 inductees into the U.S. National Inventors Hall of Fame, 19 National Medals of Technology, five National Medals of Science and three Kavli Prizes.As of 2018, the company has generated more patents than any other business in each of 25 consecutive years, which is a record.

IBM Research – Africa

IBM Research – Africa is one of twelve research laboratories comprising IBM Research. Located at the Catholic University of Eastern Africa in Nairobi, it opened on November 7, 2013. It is the first commercial technology research facility on the African continent conducting both applied and far-reaching exploratory research.The lab is directed by Chief Scientist Osamuyimen Stewart, who oversees a research staff of 25.

IBM Research – Australia

IBM Research – Australia is a research and development laboratory established by IBM Research in 2009 in Melbourne. It is involved in social media, interactive content, healthcare analytics and services research, multimedia analytics, and genomics. The lab is headed by Vice President and Lab Director Joanna Batstone. It was to be the company’s first laboratory combining research and development in a single organisation.The opening of the Melbourne lab in 2011 received an injection of $22 million in Australian Federal Government funding and an undisclosed amount provided by the government of the state of Victoria.

IBM Research – Ireland

IBM Research – Ireland is one of IBM Research's twelve worldwide research laboratories, a first for the European Union and the only one which focuses on smarter technology for cities.

Opened in 2011 in Damastown Industrial Park, in the north-west of Dublin, Ireland, it conducts research on such critical resources as water, energy, and marine environments, as well transportation, city fabric, risk, and exascale computing.The Smarter Cities Technology Centre at IBM Research – Ireland represents an IDA Ireland - supported investment of up to EUR 66 million. As many as 200 new jobs are hoped to be created.

International Article Number

The International Article Number (also known as European Article Number or EAN) is a standard describing a barcode symbology and numbering system used in global trade to identify a specific retail product type, in a specific packaging configuration, from a specific manufacturer. The standard has been subsumed in the Global Trade Item Number standard from the GS1 organization; the same numbers can be referred to as GTINs and can be encoded in other barcode symbologies defined by GS1. EAN barcodes are used worldwide for lookup at retail point of sale, but can also be used as numbers for other purposes such as wholesale ordering or accounting.

The most commonly used EAN standard is the thirteen-digit EAN-13, a superset of the original 12-digit Universal Product Code (UPC-A) standard developed in 1970 by George J. Laurer. An EAN-13 number includes a 3-digit GS1 prefix (indicating country of registration or special type of product). A prefix with a first digit of "0" indicates a 12-digit UPC-A code follows. A prefix with first two digits of "45" or "49" indicates a Japanese Article Number (JAN) follows.

The less commonly used 8-digit EAN-8 barcode was introduced for use on small packages, where EAN-13 would be too large. 2-digit EAN-2 and 5-digit EAN-5 are supplemental barcodes, placed on the right-hand side of EAN-13 or UPC. These are generally used for periodicals like magazines or books, to indicate the current year's issue number; and weighed products like food, to indicate the manufacturer's suggested retail price.

International Standard Recording Code

The International Standard Recording Code (ISRC) is an international standard code for uniquely identifying sound recordings and music video recordings. The code was developed by the recording industry in conjunction with the ISO technical committee 46, subcommittee 9 (TC 46/SC 9), which codified the standard as ISO 3901 in 1986, and updated it in 2001.

An ISRC identifies a particular recording, not the work (composition and lyrical content) itself. Therefore, different recordings, edits, and remixes of the same work should each have their own ISRC. Works are identified by ISWC. Recordings remastered without significant audio-quality changes should retain their existing ISRC, but the threshold is left to the discretion of the record company.

Label printer applicator

Label printer applicators are basic robots that automatically print and apply pressure-sensitive labels to various products. Some types of labeling include shipping labeling, content labeling, graphic images, and labeling to comply with specific standards such as those of GS1 and Universal Product Code U.P.C. A pressure-sensitive label consists of a label substrate and adhesive. First developed in the late 1970s, today there are over 70 manufacturers of these types of machines worldwide.

List of algebraic coding theory topics

This is a list of algebraic coding theory topics.

Norman Joseph Woodland

Norman Joseph Woodland (September 6, 1921 – December 9, 2012) was an American inventor, best known as one of the inventors of the barcode, for which he received a patent in October 1952. Later, employed by IBM, he developed the format which became the ubiquitous Universal Product Code (UPC) of product labeling and check-out stands.

Paper data storage

Paper data storage refers to the use of paper as a data storage device. This includes writing, illustrating, and the use of data that can be interpreted by a machine or is the result of the functioning of a machine. A defining feature of paper data storage is the ability of humans to produce it with only simple tools and interpret it visually.

Though now mostly obsolete, paper was once an important form of computer data storage as both paper tape and punch cards were a common staple of working with computers before the 1980s.

Product code

Product code is a unique identifier, assigned to each finished/manufactured product which is ready, to be marketed or for sale.

Product code may also refer to:

Universal Product Code, common barcode used to identify packaged products

Electronic Product Code, an RFID code mainly applied as a packaging code for packaged products

Motion Picture Production Code (production code for short)

Product key, a number used to verify the authenticity of a software as a license code

Serial number, a number identifying an item per instance

The Weather Company

The Weather Company is a weather forecasting and information technology company that owns and operates weather.com, intellicast.com, and Weather Underground. The Weather Company is a subsidiary of the Watson & Cloud Platform business unit of IBM.

Truven Health Analytics

Truven Health Analytics is a IBM Watson Health Company that provides healthcare data and analytics services. It provides information, analytic tools, benchmarks, research, and services to the healthcare industry, including hospitals, government agencies, employers, health plans, clinicians, pharmaceutical, biotech and medical device companies.

Formerly the Thomson Healthcare of Thomson Corporation, on April 23, 2012, Thomson Reuters agreed to sell this business to Veritas Capital for US$1.25 billion. On June 6, 2012, the sale of the healthcare division was finalized and the new company, Truven Health Analytics, became an independent organization solely focused on healthcare. Truven is a portmanteau of the words "trusted" and "proven". IBM Corporation acquired Truven on February 18, 2016, and merged with IBM's Watson Health unit.

Linear barcodes
Post office barcodes
2D barcodes (stacked)
2D barcodes (matrix)
Polar coordinate barcodes
Other
Technological issues
Other data tags
Related topics
History
Products
Business entities
Facilities
Initiatives
Inventions
Terminology
CEOs
Board of directors
Other

This page is based on a Wikipedia article written by authors (here).
Text is available under the CC BY-SA 3.0 license; additional terms may apply.
Images, videos and audio are available under their respective licenses.