Most barcodes store data in the width of bars and spaces. Postal barcodes keep every bar the same width and the same distance apart, and change only the height. That makes them easy to print fast on envelopes and easy for sorting machines to read on a moving letter.
There are two families:
- 2-state codes: POSTNET and PLANET use tall and short bars. Each digit takes five bars, and a check digit closes the code.
- 4-state codes: each bar is a full bar, an ascender (top half), a descender (bottom half) or a short tracker in the middle. Four states pack more data into fewer bars, so these codes can carry letters, routing data and tracking numbers.
The USPS Intelligent Mail barcode (IMb) replaced POSTNET for automation prices in January 2013. Its 65 bars hold a 20-digit tracking code and a routing code of up to 11 digits: the ZIP Code, ZIP+4 or 11-digit delivery point. The tracking code holds a barcode ID, a service type ID, the mailer ID issued by USPS and a serial number.
Each format belongs to one postal operator, so a reader has to know which formats to expect. barKoder has a separate decoder for each of the seven formats it reads.