The UPC/EAN/JAN Family





UPC stands for the Universal Product Code. This symbology was initially adopted for use by the U.S. grocery industry, although its use has spread into other retail market places as well. The Uniform Code Council (UCC) controls the allocation of UPC codes.

EAN stands for the European Article Numbering system, which is used in Europe and is very similar to UPC.

JAN stands for the Japanese Article Numbering system, which is the Japanese version of UPC.

ClosedThe Character Set

The UPC/EAN/JAN family of barcodes is numeric only.

ClosedThe Density

With four available printing widths for the bars and spaces instead of just two, it takes about half the number of bars and spaces relative to Interleaved 2-of-5 to represent each character. However, the use of the wider bars and spaces nullifies this space savings. In fact, with a dot-matrix printer, Interleaved 2-of-5 codes pack data more densely than UPC/EAN/JAN.

ClosedThe Symbology Structure

While most barcode symbologies only print bars and spaces in two thicknesses, wide and narrow, with UPC/EAN/JAN, four different widths are used. This allows each numeric character to be represented using just two bars and two spaces, which is the fewest number of modules required per character of any symbology.

Although UPC/EAN/JAN barcodes come in a number of different message lengths, these lengths are not fully variable the way they are with the other barcode symbologies.

Here is a summary of the codes and their available message lengths:

ClosedThe Start and Stop Characters

The start and stop characters for the UPC family of codes are identical to each other. They are made up of three modules as follows:

narrow bar

narrow space

narrow bar

In addition, the UPC family also has a center character that is made up of five modules as follows:

narrow space

narrow bar

narrow space

narrow bar

narrow space

ClosedThe Guard Bars

You will notice that the start, stop, and middle characters are always printed somewhat longer than the other bars in the barcode message. The first and last UPC characters are usually elongated as well (although they are not for EAN). These longer bars are sometimes referred to as the "guard" or "security" bars.

ClosedThe UPC/EAN/JAN Check Digit

The last digit of a UPC/EAN/JAN barcode message is always a "check digit." It is not part of the identification number, but an extra number used to guarantee the data integrity of the barcode. Its value is automatically computed from the other digits in the code and then it is printed as the last digit.

Upon reading the code, the barcode reader repeats the same check digit computation that was performed when the barcode was printed. If the newly computed check digit value does not agree with the one previously encoded into the barcode, a read error is detected and the barcode reader does not transmit any part of the message. In the case of a good read, this digit may or may not be "stripped off" prior to transmission of the barcode to the host system. This depends on the configuration of your barcode reader. Although the convention is to strip off the UPC check digit, many EAN applications make use of the check digit.

ClosedThe UPC-A "Number System" Digit

The first digit of a UPC-A code is called the "number system digit." Like the check digit, it is often stripped off by your barcode reader, and therefore does not enter your computer or cash register. The first generation of UPC-A labeled products used a "0" almost exclusively as the number system digit. (The application automatically inserts a leading "0" if you provide a character string with only 10 characters.) However, as more and more products use UPC barcodes, number system digits other than "0" are becoming more prevalent.

To specify a UPC-A barcode with a number system digit other than "0", you need to specify 11 digits in the character string. If you want this first digit transmitted to your cash register or database software, your barcode reader must be configured to transmit it. This brings the effective length of a UPC-A barcode message up to eleven digits.

ClosedThe EAN "Thirteenth" Digit

The barcode symbol for EAN-13 and UPC-A are almost identical. The main difference is that with EAN-13, an extra (13th) character may be encoded into the barcode message. The convention is for this thirteenth digit to be displayed as the left-most digit in the barcode message.

Since both UPC-A and EAN-13 have the exact same number of bars and spaces, fitting in a thirteenth digit required a slight modification to the symbology. The thirteenth digit is encoded through use of the parity pattern of the left-hand half of the EAN symbol. A complete explanation of this parity pattern is beyond the scope of this text, but the result is that even though EAN-13 barcode have the same number of bars and spaces as a UPC-A barcode, the EAN-13 barcode message will actually contain 13 (instead of UPC's 12) characters. (Remember, even though this extra character is referred to as the "thirteenth" digit, it is actually transmitted first, in front of the rest of the barcode message.)

ClosedMixing UPC/EAN/JAN Barcodes With Other Symbologies

Since many purchased goods are conveniently pre-labeled with UPC/EAN/JAN barcodes, you will definitely want a barcode reader that can read these symbologies. However, these barcodes are usually produced photographically or with a laser printer and are not quite as easy to print using dot-matrix printers. However, since most barcode readers can automatically discriminate between the various barcode symbologies, it is very easy to mix different barcode symbologies in a given application environment. If you have a barcode reader with automatic discrimination, we recommend using either Interleaved 2-of-5 or Code 39 for your in-house printed barcodes. Since UPC is a numeric-only code, Interleaved 2-of-5 would be the preferred substitute, since it will do the job in about half the space of Code 39.

ClosedTwo and Five Digit Supplementals

When the UPC symbology is used on periodicals and paperback books, the UPC code is usually followed immediately by a shorter two or five digit supplemental code. This supplemental code is used to encode information that does not fit in the standard UPC code. For example, supplemental barcodes are often used to encode the issue dates of periodicals. With the exception of the start and stop characters, the character set and density of the supplemental codes are similar to the character set and density of the UPC codes.

ClosedThe Start and Stop Characters for Supplementals

The start characters for the supplemental codes are made up of three modules as follows:

single bar

single space

double bar

The supplemental codes do not have a stop character.