UPC-E
UPC-E is a compressed, 6-digit form of UPC-A designed for small packages, created by removing extra zeros through a defined conversion algorithm.
The UPC-E barcode is the short-form representation of the barcode format UPC-A.
It reduces the data length from 12 digits to 6 digits by compressing out extra zeros. It is suited for identifying products in small packages.
A UPC-E barcode has 6 digits with an implied number system of 0. The first 5 digits are calculated based on a conversion algorithm described below.
The last digit is the check digit of the original UPC-A symbol.
UPC-E uses a rather convoluted, but quite effective, method of compressing out unnecessary zeros. Keep in mind that in UPC-A there are five characters for the manufacturer code and five characters for the product code. The trick is to reduce all 10 characters into just 6 characters.
- If the manufacturer code ends in 000, 100, or 200, the UPC-E code consists of the first two characters of the manufacturer code, the last three characters of the product code, followed by the third character of the manufacturer code. The product code must be 00000 to 00999.
- If the manufacturer code ends in 00 but does not qualify for #1 above, the UPC-E code consists of the first three characters of the manufacturer code, the last two characters of the product code, followed by the digit "3". The product code must be 00000 to 00099.
- If the manufacturer code ends in 0 but does not qualify for #1 or #2 above, the UPC-E code consists of the first four characters of the manufacturer code, the last character of the product code, followed by the digit "4". The product code must be 00000 to 00009.
- If the manufacturer code does not end in zero, the UPC-E code consists of the entire manufacturer code and the last digit of the product code. Note that the last digit of the product code must be in the range 5 through 9. The product code must be 00005 to 00009.
The UPC-E check digit has the same value as the check digit on the equivalent UPC-A number.
UPC-E uses the "left-hand odd" and "left-hand even" encoding character sets from the EAN-13 encoding standard.
UPC-E doesn't encode a check digit explicitly; rather the check digit is encoded in the parity of the other six characters. The check digit that is encoded is the check digit from the original UPC-A barcode.
Additionally, UPC-E may only be used if the number system is 0 or 1. The characters are encoded with odd and even parity from the left-hand columns of the EAN-13 character formats shown in the table referenced previously. The parity used for each character depends on the number system (0 or 1) and the check digit from the original UPC-A barcode.
A UPC-E symbol has the following structure:
- Start guard bars, always with a pattern bar+space+bar
- Left half, five digits calculated from the equivalent UPC number
- Check digit
- Stop guard bars, always with a pattern bar+space+bar