You are here: Home | POSTNET Symbology Introduction

POSTNET Symbology Introduction
   PostNet was developed by the United States Postal Service (USPS) to allow faster sorting and routing of mail. Postnet is the familiar, funny-looking bar codes often printed on envelopes and business return mail. A typical PostNet bar code is:  
Unlike most other bar codes in which data is encoded in the width of the bars and spaces, PostNet actually encodes data in the height of the bars. That is why when you look at the bar code all the bars are essentially the same width but vary only in height.

The bar code itself can encode either a standard 5-digit Zip Code, a Zip+4 code, or a full 11-point delivery point code.

The 5-Digit zip code and Zip+4 code are familiar to virtually anyone who lives in the United States. All addresses include, at a minimum, a 5-digit zip code (example 80122). If all you have to work with is this 5-digit code, it may be encoded in PostNet symbology. If you have the full Zip+4 code (example 80122-1905), the entire 9-digit code may also be encoded in Postnet.

A lesser known coding mechanism is a "Delivery Point Code" which is used to identify all 125 million delivery points in the United States. The Delivery Point Code is a normal Zip+4 code plus an additional 2 digits of information. The two additional digits are normally made up of the last two digits of the street address or PO Box. For example, if your zip code is "80122-2014" and your street address is "3801 E. Arapahoe Road", your Delivery Point Code would be 80122-2014-01. The final "01" is taken from the last two digits of the 3801 street address.

PostNet bar codes, thus, encode either 5, 9, or 11 digits of information. Any other number of digits is invalid. 
   PostNet bar codes always include a modulo 10 check digit.

Before a PostNet symbol may be encoded, a checksum digit must be calculated to be subsequently appended to the end of the bar code. The checksum digit is a simple modulo 10 calculation of the sum of the all the digits that are being coded.

The steps for calculating the check digit are as follows:

1. Sum the total of all individual digits being encoded. For example, 80122-1905 would be calculated as 8 + 0 + 1 + 2 + 2 + 1 + 9 + 0 + 5 = 28.
2. Determine the value that, when added to the sum, produces a value evenly divisible by 10. For example, 28 + 2 = 30, so the value is 2.
3. The check digit is the value calculated in step 2. In this case the check digit is 2. 
   PostNet bar codes are made up of full and half bars. Each bar represents a binary value (0 or 1), and 5 bars together form a single character. In the following text, we will discuss the encoding of the bar code by considering that the number "1" represents a "tall" bar, whereas a "0" represents a "half" bar. The the numbers "10010" would represent a full bar followed by two half bars followed by a full bar and a final half bar. This would be printed in the bar code as: 
A PostNet bar code has the following structure:

1. Frame bar, encoded as a single 1.
2. 5, 9, or 11 data characters properly encoded (see encoding table below).
3. Check digit, encoded using encoding table below.
4. Final frame bar, encoded as a single 1.  
   This table indicates how to encode each digit of a PostNet bar code. Note that the encoding is expressed as "0" (half bar) or "1" (full bar). 
0 11000
1 00011
2 00101
3 00110
4 01001
5 01010
6 01100
7 10001
8 10010
9 10100
    We will now code the Zip+4 code used in the checksum example (80122-1905) using PostNet. Now we need to encode each digit using the encoding table above.

1. The START Frame bar: 1.
2. The digit "8": enocded as 10010.
3. The digit "0": enocded as 11000.
4. The digit "1": enocded as 00011.
5. The digit "2": enocded as 00101.
6. The digit "2": enocded as 00101.
7. The digit "1": enocded as 00011.
8. The digit "9": enocded as 10100.
9. The digit "0": enocded as 11000.
10. The digit "5": enocded as 01010.
11. The check digit "2": encoded as 00101.
12. The STOP Frame bar: 1. 

This is shown in the following graphical representation where the bar code has been sectioned-off into areas that reflect each of the 12 components just mentioned.