Barcode

Message Forum

Symbology
Specifications

News

Links

Barcode Printers

Services

Contact Us

Legal Info

Privacy Policy

UPC SUPPLEMENTAL 2/5-DIGIT SYMBOLOGY

See Also:   UPC-A    EAN-13    EAN-8    Bookland    UPC 2-Digit Supplement    UPC 5-Digit Supplement    Symbology Index



Quick Links: Background    2-Digit Supplements    5-Digit Supplements    Encoding    2-Digit Parity    5-Digit Parity


UPC SUPPLEMENTAL BARCODE BACKGROUND INFORMATION

UPC-A, UPC-E, EAN-13, and EAN-8 may all include an additional bar code to the right of the main bar code. This second bar code, which is usually not as tall as the primary bar code, is used to encode additional information for newspapers, books, and other periodicals.

The supplemental bar code may either encoded 2 or 5 digits of information.

2-DIGIT SUPPLEMENTS

2-digit supplemental bar codes should only be used with magazines, newspapers and other such periodicals. The 2-digit supplement represent the issue number of the magazine. This is useful so that the product code itself (contained in the main bar code) is constant for the magazine such that each issue of the magazine doesn't have to have its own unique bar code. Nevertheless, the 2-digit supplement can be used to track which issue of the magazine is being sold, perhaps for sales analysis or restocking purposes.

In reality, this is sometimes an "internal" issue number. The 2-digit extension is not always the same as the "Issue Number" that is printed somewhere on the cover. Sometimes the encoded issue number just gets incremented with each issue. In other cases, the encoded issue number may just be the number of the month of the year, or the week number, depending on the frequency with which the periodical is published.

5-DIGIT SUPPLEMENTS

5-digit supplemental bar codes are used on books to indicate a suggested retail price.

The first digit of the supplement indicates the currency in which the price is expressed. A "0" represents a price expressed in British Pounds whereas a "5" represents a price expressed in U.S. dollars. The remaining 4 digits of the supplement indicate the price. For example "51195" indicates a suggested retail price of US$11.95 (US Dollars). I guess this means the people at UCC think no book is worth more than $99.99, and they're probably right-but they should let some of the publishers know that!

A supplementary code of "90000" means the book has no suggested retail price. In most stores, this does not mean you make take the book without paying .

A supplementary code of "99991" indicates a complimentary copy of the book. This normally means "free." A retailer that is charging you for a book marked "99991" merits suspicion, but we still don't advocate walking off with such a book without paying for it.

Supplementary codes of 90001 to 98999 are used by some publishers for internal purposes. As an external user it is not generally possible to get much useful information from such supplemental bar codes due to the very fact that they are encoding some information internal to the publisher.

The supplementary code "99990" is used by the National Association of College Stores to mark used books. Don't pay "new" prices for books marked with this supplementary code.

ENCODING

Encoding both 2-digit and 5-digit supplements follows the same underlying structure:

  1. Left-hand guard bars, encoded as 1011.
  2. First data character, encoded using the appropriate parity pattern (see below).
  3. Character seperator of 01.
  4. Additional characters, encoding using the appropriate parity pattern, with separators of 01.
There is no specific "end" or "stop" character. The bar code is assumed to end when a character separator (01) doesn't follow a valid character.

The component characters of the bar code are encoded using the "left-hand odd" and "left-hand even" encoding character sets from the EAN-13 encoding standard. Whether a character is encoded using odd or even parity varies depending on whether the bar code is a 2-digit or 5-digit supplement. Essentially, the parity of the characters constitutes a rather crude checksum which is used to validate the integrity of the bar code.

2-DIGIT PARITY PATTERN & ENCODING

If the supplemental bar code encodes 2 digits of data, the parity of the characters is calculated by taking the value of the 2-digit supplemental bar code, dividing by 4, then using the remainder as a lookup value in the following table:

    REMAINDER CHARACTER 1
    PARITY
    CHARACTER 2
    PARITY
    0 Odd Odd
    1 Odd Even
    2 Even Odd
    3 Even Even
That is to say, if the 2-digit value is "34", the value 34 is divided by 4. This results in the value 8 and a remainder of 2. Since the remainder is 2, the first character is encoded with even parity and the second character is encoded with odd parity. If, when the bar code is scanned, the parity doesn't match the parity that is expected for the value scanned, it is assumed a scanning error ocurred.

Thus, encoding the value "34" as a 2-digit UPC Supplemental bar code would be as follows:

  1. Left-guard bars, encoded as 1011.
  2. 1st Digit [3] encoded as even parity, 0100001.
  3. Inter-character separator, encoded as 01.
  4. 2nd Digit [4] encoded as odd parity, 0100011.
This results in the following bar code, with each "section" from the four steps just listed indicated in alternating colors so that each portion may be easily discerned:

5-DIGIT PARITY PATTERN & ENCODING

If the supplemental bar code encodes 5 digits of data, the checksum method is more complex and somewhat similar to that used in EAN-13.

First, a checksum value must be calculated for the bar code.

  1. Consider the right-most digit of the message to be in an "odd" position, and assign odd/even to each character moving from right to left.
  2. Sum the digits in all odd positions, and multiply the result by 3.
  3. Sum the digits in all even positions, and multiply the result by 9.
  4. Sum the totals calculated in steps 2 and 3.
  5. The check digit is the digit in the units position of the value calculated in step 5 (i.e., if the result in step 4 was 37, the check digit is 7).
The check digit calculated above is then used to look up the parity pattern in the following table:

    CHECK
    DIGIT
    PARITY PATTERN FOR EACH CHARACTER
    1 2 3 4 5
    0 Even Even Odd Odd Odd
    1 Even Odd Even Odd Odd
    2 Even Odd Odd Even Odd
    3 Even Odd Odd Odd Even
    4 Odd Even Even Odd Odd
    5 Odd Odd Even Even Odd
    6 Odd Odd Odd Even Even
    7 Odd Even Odd Even Odd
    8 Odd Even Odd Odd Even
    9 Odd Odd Even Odd Even
Using the value "51234" as an example, we first must calculate the check digit:

    Barcode 5 1 2 3 4
    Position O E O E O
    Weighting 3 9 3 9 3
    Calculation 5 * 3 1 * 9 2 * 3 3 * 9 4 * 3
    Weighted Sum 15 9 6 27 12
Adding the above weighted sums 15 + 9 + 6 + 27 + 12 = 69. Thus the checksum digit is 9 and thus, consulting the parity table above, the five characters must be coded using the parity pattern "Odd/Odd/Even/Odd/Even". Thus, encoding the value "51234" as a 5-digit UPC Supplemental bar code would be as follows:

  1. Left-guard bars, encoded as 1011.
  2. 1st Digit [5] encoded as odd parity, 0110001.
  3. Inter-character separator, encoded as 01.
  4. 2nd Digit [1] encoded as odd parity, 0011001.
  5. Inter-character separator, encoded as 01.
  6. 3rd Digit [2] encoded as even parity, 0011011.
  7. Inter-character separator, encoded as 01.
  8. 4th Digit [3] encoded as odd parity, 0111101.
  9. Inter-character separator, encoded as 01.
  10. 5th Digit [4] encoded as even parity, 0011101.
This results in the following bar code, with each "section" from the four steps just listed indicated in alternating colors so that each portion may be easily discerned:


© Copyright 2006 BarCodeIsland.com, Inc. All Rights Reserved.
Information provided "as-is" without warranty. Please
see details.
Contact us for usage and copy permission.