| |
Current code

In the UPC-A barcode, each digit is represented by a
seven-bit sequence, encoded by a series of alternating bars and spaces. Guard
bars, shown in green, separate the two groups of six digits.
The UPC encodes 12 decimal digits as
SLLLLLLMRRRRRRE, where S (start) and E (end) are the
bit pattern 101, M
(middle) is the bit pattern 01010 (called guard bars), and each L (left) and R
(right) are digits, each one represented by a seven-bit code. This is a total of
95 bits. The bit pattern for each numeral is designed to be as little like the
others as possible, and to have no more than four 1s or 0s in order. Both are
for reliability in scanning.
Since S, M, and E all 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.
The UPC has only numerals, with no letters or other
characters. The first digit
L is the prefix. The last digit R is an error correcting
check
digit, allowing some errors in scanning or manual entry to be detected. UPC
data structures are a component of GTINs (Global Trade Item
Numbers). All of these data structures follow the global GS1 standards.
The bar-and-space patterns for each digit 0–9 are as follows:
| Digit |
Pattern |
Digit |
Pattern |
| 0 |
0001101 |
5 |
0110001 |
| 1 |
0011001 |
6 |
0101111 |
| 2 |
0010011 |
7 |
0111011 |
| 3 |
0111101 |
8 |
0110111 |
| 4 |
0100011 |
9 |
0001011 |
Before the Middle guard bars, a 1 indicates a bar, while a 0 indicates a
space. After the Middle guard bars, however, the patterns are optically
inverted. In other words, a 1 now indicates a space, and a 0 now indicates a
bar. In the illustration above, the "4" digit (shown in detail), falls
after the Middle guard bars, causing the pattern of bars and spaces to be
inverted.

Prefixes
- 0, 1, 6, 7, 8, or 9: For most products.
- 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 as well for inventory purposes.
- 4: Reserved for local use (store/warehouse), often for loyalty cards or store
coupons.
- 5: Coupons
The Manufacturer code is the LLLLL, the first 3 RRR are a family code (set by
manufacturer), and the last 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.
By prefixing these 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.

Check digit calculation
In the UPC-A system, the check digit is calculated as follows:
- Add the digits in the odd-numbered positions (first,
third, fifth, etc.) together and multiply by three.
- Add the digits in the even-numbered positions (second,
fourth, sixth, etc.) to the result.
- Subtract the result modulo 10 from ten.
For example, a UPC-A barcode (in this case, a UPC for a box of tissues) "03600029145X" where
X is the check digit, X can be calculated by adding the
odd-numbered digits (0+6+0+2+1+5 = 14), multiplying by three (14 × 3 = 42),
adding the even-numbered digits (42+3+0+0+9+4 = 58), calculating modulo 10 (58 mod 10 = 8),
subtracting from ten (10 - 8 = 2). The check digit is thus 2.

Zero Compressed UPC-E
To allow the use of UPC barcodes on smaller packages where a full 12-digit
barcode may not fit, a 'zero-compressed' version of UPC was developed called
UPC-E. This symbology differs from UPC-A in that it only uses a 6-digit code,
does not use middle guard bars, and the end bit pattern (E) becomes 010101. The
way in which a 6-digit UPC-E relates to a 12-digit UPC-A is determined by the
last (right-hand most) digit. With the manufacturer code represented by X's, and
product code by N's then:
| Last digit |
UPC-E equivalent is |
UPC-A equivalent is |
| 0 |
XXNNN0 |
0XX000-00NNN + check |
| 1 |
XXNNN1 |
0XX100-00NNN + check |
| 2 |
XXNNN2 |
0XX200-00NNN + check |
| 3 |
XXXNN3 |
0XXX00-000NN + check |
| 4 |
XXXXN4 |
0XXXX0-0000N + check |
| 5 |
XXXXX5 |
0XXXXX-00005 + check |
| 6 |
XXXXX6 |
0XXXXX-00006 + check |
| 7 |
XXXXX7 |
0XXXXX-00007 + check |
| 8 |
XXXXX8 |
0XXXXX-00008 + check |
| 9 |
XXXXX9 |
0XXXXX-00009 + check |
For example a UPC-E barcode with the number 654321 would expand to the UPC-A
065100004327.
UPC-E check digits are calculated using this expanded string in the same way
as used by UPC-A. The resulting check digit is not added to the barcode,
however, but is encoded by manipulating the parity of the six digits which are
present in the UPC-E - as shown in the following tables:
| Check digit |
Parity pattern |
| 0 |
EEEOOO |
| 1 |
EEOEOO |
| 2 |
EEOOEO |
| 3 |
EEOOOE |
| 4 |
EOEEOO |
| 5 |
EOOEEO |
| 6 |
EOOOEE |
| 7 |
EOEOEO |
| 8 |
EOEOOE |
| 9 |
EOOEOE |
| Digit to be encoded |
Odd parity pattern |
Even parity pattern |
| 0 |
3-2-1-1 |
1-1-2-3 |
| 1 |
2-2-2-1 |
1-2-2-2 |
| 2 |
2-1-2-2 |
2-2-1-2 |
| 3 |
1-4-1-1 |
1-1-4-1 |
| 4 |
1-1-3-2 |
2-3-1-1 |
| 5 |
1-2-3-1 |
1-3-2-1 |
| 6 |
1-1-1-4 |
4-1-1-1 |
| 7 |
1-3-1-2 |
2-1-3-1 |
| 8 |
1-2-1-3 |
3-1-2-1 |
| 9 |
3-1-1-2 |
2-1-1-3 |
Our example code 654321, therefore, would become 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 resulting barcode would look
roughly like this:


Other 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 and National
Health Related Items Code.
- UPC-C is a 12-digit code with a check digit.
- 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.
As the UPC has become 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 EAR 2.0 or be phased out entirely.

Printing Considerations

GTIN-12 number encoded in UPC-A barcode symbol. First and
last digit are always placed outside the symbol to indicate Quiet Zones that are
necessary for barcode scanners to work properly.
Dimensions
UPC-A Bar code symbols can be printed at various densities to accommodate
variety of printing and scanning processes. The significant dimensional
parameter is called X-dimension, the ideal width of single module element. The
X-dimension has to be constant in UPC-A symbol. The width of each bar (dark bar)
and space (light bar) is determined by multiplying the X-dimension by the module
width of each dark bar or light bar (1,2,3, or 4).
The X-dimension for the UPC-A at the nominal size is 0.33 mm (0.013 in.).
UPC-A can be reduced or magnified in the range of 80% to 200%.
Nominal symbol height for UPC-A is 25.9 mm (1.0 in.). In UPC-A the dark bars
forming the left, centre, and right Guard Bar Patterns are extended downwards by
5 times X-dimension. This also applies to the bars of the first and the last
symbol characters of UPC-A symbol. See illustration.
Quiet Zone (Light Margin)
The minimum Quiet Zone width required by the UPC-A bar code symbol is 9 x
X-dimension on both the left and right sides. UPC-E requires 9 X-dimension units
on the left side and 7 on the right. (Source; UPC Symbol Specification
Manual).
Barcode Text
Exactly 12 digits must be printed below the UPC-A barcode.

History
Wallace Flint proposed an automated checkout system in 1932 using punch
cards. Bernard Silver and Norman Joseph Woodland developed a bull's-eye style
code, patented in 1952, and the first commercial use of barcodes was in
1966.
In 1970 Logicon Inc. created the Universal Grocery Products Identification
Code (UGPIC). In 1970 it was used by Monarch Marking in the United States and
Plessey Telecommunications in the United Kingdom.
A group of grocery industry trade associations formed the Uniform Grocery
Product Code Council which with consulting firm McKinsey & Company defined
the predecessor to the Uniform Product Code. In 1973 George J. Laurer developed
the Universal Product Code. See Development of the IBM UPC proposal below. The
original UPC appears in U.S. patent No. 3832686 to Ilhan Bilgutay. Bilgutay
created four bars of varying widths and put them into groups of two. Laurer
added space between the bars, thereby creating a symbol that occupies more space
than the Bilgutay original.
The first item ever scanned in a retail establishment (Marsh's supermarket in
Troy, Ohio) was at 8:01 a.m. on June 26, 1974, and was a 10-pack of Wrigley's
Juicy
Fruit chewing gum. The entire shopping cart also had barcoded items in it, but the gum was merely
the first one picked up by the cashier. This item is currently on display on the
Smithsonian Museum in
Washington, D.C.

Technical Notes
The EAN was
developed as a superset of UPC, adding an
extra digit to the beginning so that there would be plenty of numbers for the
entire world.
The prefix digit 0
has been reserved for UPC, and in fact the GS1 US mandated all retail systems in
the United States and Canada be able to recognize both UPC and EAN by January 1,
2005.
UPC usage notes:
- Currently all products marked with an EAN will be
accepted in North America in
addition to those products already marked with a UPC.
- Any product with an existing UPC does not have to be remarked with an EAN.
- In North America the EAN
adds 40% more codes mainly by adding 10 to 13 to the 00 to 09 (0 to 9 in UPC)
already in use. This is a powerful incentive to phase out the UPC.

See also

|
|