MaxiCode: Complete Guide to the UPS 2D Barcode
MaxiCode is the hexagonal 2D barcode UPS uses to sort packages at high speed. Learn its bullseye structure, data capacity, modes, and how scanners read it.
Most barcodes on a shipping label are designed to be read by a person standing still with a handheld scanner. MaxiCode was designed for the opposite situation: packages flying past on a conveyor belt at several feet per second, with no time to slow down and no room for a scanner to hunt for the right angle. That constraint shaped every part of its unusual, dot-covered appearance.
Try it yourself: Test how MaxiCode and other 2D barcode formats scan with our free online barcode scanner.
What Is a MaxiCode Barcode?
MaxiCode is a fixed-size, two-dimensional barcode symbology built around a bullseye finder pattern and a surrounding grid of hexagonal modules. United Parcel Service developed it in the late 1980s specifically to sort packages faster than existing barcode formats allowed, and it remains public domain and free to use.
The format started life under the working name "Dense Code" before UPS renamed it MaxiCode and rolled it out for production sorting in 1992. Unlike many proprietary industrial codes, UPS never restricted the symbology to its own equipment. It became an open standard, formalized as ISO/IEC 16023, which is why MaxiCode support now shows up in general-purpose barcode libraries and scanning software well beyond UPS's own network.
Visually, MaxiCode stands apart from other 2D formats immediately. Where Data Matrix and QR codes arrange data in square modules, MaxiCode packs 884 hexagonal dots into 33 rows around a central target of three concentric circles. That circular target, not a square finder pattern, is what a MaxiCode scanner looks for first.
Why Does UPS Use MaxiCode?
UPS uses MaxiCode because its fixed physical size and bullseye pattern let high-speed sorting equipment locate and decode the symbol almost instantly, even when packages are moving quickly along a conveyor. Encoding the destination ZIP code and service class directly in the barcode also lets a hub route a parcel without pausing to query a shipment database.
Every MaxiCode symbol measures the same 1.11 by 1.054 inches, quiet zone included, no matter what data it carries or what size label it sits on. That consistency matters more than it sounds. A scanner built to find a fixed-size, fixed-shape target does not need to guess at symbol dimensions the way it might with a variable-size barcode, which shaves crucial milliseconds off each read on a line handling thousands of packages an hour.
The bullseye itself does double duty as both a locator and an orientation guide. Because the three concentric circles look the same no matter which way the package is rotated, a scanner can identify the center of the symbol and calculate its orientation from a single glance, then read the surrounding hexagons accordingly. That omnidirectional quality removes the need for a human or a mechanical arm to present the label at a specific angle, which is exactly what a package tumbling through an automated sorting hub requires.
How Is a MaxiCode Structured?
A MaxiCode symbol is built from a central bullseye finder pattern surrounded by 33 alternating rows of hexagonal modules, for 884 hexagons total, with six additional orientation patterns positioned around the grid to help scanners confirm alignment. Not every hexagon carries data. Some are reserved for the finder pattern, orientation marks, and error correction.
The bullseye at the center consists of three solid concentric circles. Around it, each row contains either 29 or 30 hexagonal dots, alternating consistently across the full height of the symbol. Each hexagon is either filled (black) or empty (white), representing a single bit, and the software encoding the symbol maps the outgoing message into that hexagonal grid using a fixed layout defined by the ISO/IEC 16023 standard.
The hexagonal shape is not just a visual choice. Hexagons tile a plane more efficiently than the elongated diamonds or gaps a square grid would leave near a circular center, so MaxiCode can pack more modules tightly around its round finder pattern than a square-based layout would allow in the same footprint.
What Data Does a MaxiCode Store?
A single MaxiCode symbol holds up to roughly 93 alphanumeric characters, organized into a primary message and a secondary message, with the option to chain as many as eight linked symbols when a shipment needs more data than one symbol can carry. The primary message is reserved for the fields UPS's sorting equipment needs first, while the secondary message carries supporting details.
The exact structure depends on which of MaxiCode's several modes the symbol uses. Mode 2 is the structured carrier message format for domestic US shipments, encoding a postal code of up to nine digits, a three-digit country code, and a class-of-service value in its primary message. Mode 3 mirrors that structure for international shipments, where postal codes are alphanumeric rather than purely numeric. Modes 4 and 5 drop the shipping-specific primary message entirely and instead encode general-purpose data, with Mode 5 adding stronger error correction at the cost of some capacity. Mode 6 is reserved for testing and hardware calibration rather than carrying real shipment data.
Whichever mode is used, MaxiCode leans on Reed-Solomon error correction to protect the encoded data, with the primary message given heavier protection than the secondary message since it carries the routing information a hub cannot afford to misread. That redundancy lets a scanner recover the correct data even when part of the label is smudged, torn, or partially obscured by tape.
How Do You Scan a MaxiCode?
Reading a MaxiCode requires a two-dimensional imager or a scanner built specifically for the format, because its hexagonal dot pattern cannot be decoded by a standard single-line laser scanner designed for linear barcodes like UPC or Code 128. UPS sorting hubs historically used holographic laser scanners tuned to recognize the bullseye pattern from multiple angles at once, and modern camera-based 2D imagers handle the format as well.
For most everyday scanning needs, this means MaxiCode sits outside the barcodes an average retail or warehouse scanner is likely to encounter, since it appears almost exclusively on UPS shipping labels rather than consumer products. That said, MaxiCode decoding is included in many open 2D barcode libraries, so software built for general package tracking or logistics can add support for it alongside more common formats like PDF417 or QR codes.
How Does MaxiCode Compare to Other 2D Barcodes?
MaxiCode's biggest structural difference from other 2D barcodes is its fixed size and hexagonal grid, where formats like Data Matrix, QR codes, and PDF417 scale their dimensions to fit varying amounts of data. That fixed footprint is a deliberate tradeoff. MaxiCode sacrifices flexibility in exchange for the scanning speed and consistency that high-volume conveyor sorting demands.
Data Matrix and QR codes can pack far more information into a similarly sized symbol and read reliably at very small print sizes, which suits inventory tags and product packaging better than a shipping-only format like MaxiCode. PDF417, by contrast, favors large data capacity for documents like boarding passes and driver's licenses over MaxiCode's raw scanning speed. Each format optimizes for the environment it was built for, and shipping hubs remain the one environment where MaxiCode's design still wins.
Because MaxiCode is purpose-built for logistics and warehouse operations, it rarely shows up outside that world. Anyone building general-purpose barcode scanning for retail, inventory, or documents is better served by Data Matrix, QR, or PDF417, but anyone working with UPS shipping data will run into MaxiCode as an unavoidable part of the label.
Sources
- Wikipedia: MaxiCode - overview of MaxiCode's history, structure, and standardization.
- BarcodeFAQ.com: MaxiCode 2D Barcode Specification - technical detail on modes, hexagon grid, and error correction.
- Scandit: MaxiCode Barcode Symbology - scanner-vendor overview of MaxiCode's structure and use cases.
- Seagull Scientific Barcode Guide: MaxiCode - labeling-software reference on MaxiCode dimensions and data capacity.