Fact-checked by Grok 2 weeks ago

Codabar

Codabar (also known as Ames Code, NW-7, Monarch, or Code 2 of 7) is a linear, one-dimensional symbology developed in 1972 by Corporation, designed primarily for encoding serial numbers in applications such as blood banks, libraries, and inventory tracking. It supports a character set of 16 data symbols, including the digits 0–9 and six special characters ( '-', '', colon ':', forward slash '/', period '.', and plus sign '+'), with four additional distinct patterns for the start/stop characters A, B, C, and D; each character is represented by seven elements (four bars and three spaces), with the number and position of wide elements varying by character type: the basic 12 characters (0–9, -, ) use one wide bar and one wide space, the four special characters use three wide bars and no wide spaces, and the start/stop characters use one wide bar and two wide spaces. Codabar is a discrete and self-checking symbology, meaning it includes inherent error-detection mechanisms and does not require variable intercharacter gaps between symbols, allowing it to be printed reliably on low-resolution devices like dot-matrix printers for multi-part forms. The structure of a Codabar symbol begins and ends with one of four designated start/stop characters (A, B, C, or D), which frame the data to ensure accurate scanning but are not included in the decoded output. Variable-length encoding is supported, with no fixed maximum length, though practical limits depend on print quality and capabilities; the minimum bar width (X dimension) is 7.5 mils, and the ratio of wide to narrow elements must range from 2.0 to 3.0. While not mandatory, some implementations incorporate a modulo-16 for added verification. Codabar gained prominence in the and for its simplicity and readability in specialized sectors, including U.S. blood collection and processing (where it was adopted by the American Blood Commission), cataloging, photo laboratories for film processing, and for shipping documentation. Its adoption was facilitated by the lack of a mandatory and compatibility with early readers, though it has since been largely supplanted by more efficient symbologies like or ISBT 128 in modern healthcare and systems. The symbology is formally defined in the AIM Symbology Specification BC3-2000, ensuring consistent implementation across devices and software.

History

Origins and Development

Codabar was invented in 1972 by the Corporation as a linear barcode symbology primarily designed for encoding serial numbers in applications such as blood banks, libraries, and inventory tracking. The symbology emerged during a period of rapid advancement in automatic identification technologies, addressing the need for a reliable, printable code suitable for early and mailing systems used by companies like in postage and shipping operations. The initial design emphasized simplicity and robustness, supporting variable-length strings of numeric digits (0-9) along with a limited set of symbols (+, -, /, :, $, .) and four alphanumeric start/stop characters (A, B, C, D), which served dual purposes as delimiters and built-in error detection mechanisms. Unlike more complex contemporaries, Codabar employed a two-width —consisting of narrow and wide elements—that allowed for high tolerance in , particularly on dot-matrix printers at the time, while incorporating a self-checking structure to minimize reading errors without requiring a mandatory or . This focus on ease of encoding and decoding made it ideal for environments demanding quick, low-error data capture in variable formats. Technical specifications for Codabar were formalized and released in the mid-1970s, building on its core self-checking properties and start/stop characters to enhance reliability in practical deployments. The first commercial implementations appeared shortly after its invention, around 1972-1974, in retail merchandise labeling and early systems for tracking shipments, marking a key milestone in its transition from concept to widespread industrial tool. By the post-1980s era, its simplicity facilitated broader adoption in libraries for book tracking and healthcare for specimen identification.

Adoption and Evolution

Codabar experienced rapid adoption in the late 1970s, particularly in libraries where the variant—marketed by Monarch Marking Systems—was implemented for book labeling and circulation systems to streamline check-out and inventory processes. This variant's reliability on dot-matrix printers facilitated its integration into library automation, enabling efficient tracking of materials in academic and public institutions. By the , Codabar expanded into blood banks and photo labs, driven by its robustness in low-contrast printing environments such as multi-part forms. The American Blood Commission () standardized ABC Codabar in the late , with widespread implementation by over 16 blood centers starting in 1976 for donor identification and unit tracking, enhancing accuracy in transfusion services. In photo labs, it supported order processing and film tracking, capitalizing on the symbology's self-checking properties for high-volume, error-prone workflows. During the 1990s, Codabar integrated into point-of-sale (POS) systems and inventory management, particularly in sectors requiring serial numbering, though it faced competition from UPC and EAN codes in retail. Minor updates occurred through the Automatic Identification Manufacturers (AIM) Uniform Symbology Specification for Codabar (USS-Codabar) in 2000, which refined intercharacter spacing tolerances to improve readability across devices. Post-2000, new implementations of Codabar declined as 2D barcodes like QR codes and gained prominence for their higher data capacity and error correction, rendering linear symbologies in most applications. In the blood banking sector, many facilities transitioned to the ISBT 128 standard starting in the late , with ongoing phase-outs; for example, in , 2D DataMatrix implementation began in November 2025, with full Codabar removal planned for March 2029. However, it persists in niche areas such as aviation-related shipping manifests, including airbills, where compatibility remains essential. No major revisions have occurred since the 2000 specification, solidifying its status as a stable but outdated standard.

Symbology Specifications

Character Set

Codabar supports a character set limited to the ten digits 0 through 9 and six special symbols: the hyphen (-), dollar sign ($), colon (:), forward slash (/), period (.), and plus sign (+). This set totals 16 characters and excludes lowercase letters, uppercase letters other than those reserved for start and stop functions, and any extended ASCII characters. Within this set, the digits form the core of encoded data, representing numerical values in applications such as inventory tracking. The special symbols function primarily as separators for non-numeric elements; for instance, the forward slash (/) is commonly employed in date representations like month/day (e.g., 12/25) or to delineate components in identification codes. The characters A, B, C, and D, while encodable within the symbology, are reserved exclusively for use as start and stop characters to delimit the barcode message. Codabar messages are of variable length, with no fixed maximum length, though practical limits depend on print quality and scanner capabilities; typical usage constrains them to shorter formats—such as 3 to 16 characters for labeling or specimen identification—to maintain readability and printing efficiency. The symbology includes no built-in data compression, relying instead on direct character mapping for simplicity.

Barcode Structure

A Codabar consists of a leading quiet zone, a start character, one or more data characters, a stop character, and a trailing quiet zone. The quiet zones on both sides must be at least 10 times the width of the narrow bar (10X) to ensure reliable scanning by distinguishing the from surrounding elements. This linear symbology has no fixed length, allowing variable numbers of data characters to be encoded, typically representing digits 0-9 along with symbols such as -, $, :, /, ., and +. Each character in the is formed by seven : four and three spaces, which alternate starting with a , featuring exactly one wide and one wide space. These have widths of either narrow (1X) or wide (2X), with the wide-to-narrow ratio ranging from 2:1 to 3:1 to accommodate variations and maintain readability. The minimum narrow width (X ) is 7.5 mils (0.0075 inches or 0.19 ), and the 's minimum is 0.25 inches (6.4 ) or 15% of the symbol length (excluding quiet zones), whichever is greater, to support scanner performance across different densities. tolerances in allow for slight deviations in widths, provided the overall remains distinguishable. An optional human-readable (HRI) may be printed below the bars, displaying the encoded digits and symbols for . Codabar employs pattern redundancy for error detection, making it a self-checking symbology that reduces reading errors without relying on a full check or mandatory , though some implementations add optional checksums.

Encoding

Start and Stop Characters

Codabar employs four distinct start and stop characters—A, B, C, and D—to demarcate the boundaries of the . These characters are mandatory at both the beginning and end of the symbol, with the start and stop characters each chosen independently from this set. This design ensures proper recognition by the and maintains symbology integrity. The characters are selected interchangeably across different barcodes, but they cannot appear in the data payload itself. The primary purpose of the start and stop characters is to signal the scanner's reading direction and provide a built-in self-checking . Their unique patterns allow the to synchronize timing, distinguish forward from reverse scans, and verify that the begins and ends correctly, reducing errors in variable-length messages. Unlike data characters, these boundary markers do not contribute any information to the encoded ; they exclusively frame the sequence of numeric and symbolic data. This design enhances reliability in applications like and labeling, where accurate boundary detection is critical. Each start and stop character is encoded using a seven-element consisting of four s and three intervening spaces, beginning with a . The elements are either narrow ( 0) or wide ( 1), with exactly three wide elements per to maintain the symbology's self-checking properties (one wide and two wide spaces). The specific representations are as follows:
Character Pattern (bar-space-bar-space-bar-space-bar)
A0011010
B0101001
C0001011
D0001110
These patterns are asymmetric, aiding directional decoding. In the overall structure, the start character follows the left quiet zone, and the stop character precedes the right quiet zone, ensuring clear separation from surrounding for optimal scan performance.

Data Representation

In Codabar, each data character is represented by a sequence of seven consisting of four bars and three spaces alternating as bar-space-bar-space-bar-space-bar. Each is either narrow, corresponding to 1 of width, or wide, with the wide-to-narrow ratio between 2:1 and 3:1. Characters with two wide (one wide bar and one wide space; used for 0-9, -, $) have a total width of 9-11 , while those with three wide (three wide bars; used for :, /, ., +) have 10-13 , depending on the ratio. This structure allows for reliable optical recognition while maintaining a compact form suitable for applications like labeling and inventory tracking. The width of each is assigned using a 7-bit , where 0 denotes a narrow element and 1 denotes a wide element, ensuring each character's is unique to avoid during decoding. The for characters are designed such that the basic set (digits 0–9 and symbols -, $) use exactly two wide elements, while the extended symbols (:, /, ., +) use three wide elements, all wide bars with no wide spaces. For example, the incorporate this to balance density and readability. An intercharacter gap of a single narrow space (1 unit wide, though up to 3 units in some implementations) separates adjacent characters, providing clear delineation without adding unnecessary length to the symbol. This gap is not encoded as part of any character pattern but is essential for preventing overlap during scanning. The element patterns for data characters are designed to support bidirectional scanning, facilitated by the symmetry of the start and stop characters that frame the and allow decoders to orient the read regardless of direction.

Check Digit

Calculation Method

Codabar does not require a as part of its core specification (AIM Uniform Symbology Specification - Codabar, BC3-2000), but an optional modulo-16 is commonly used in certain applications for added error detection, such as some and systems. The is placed after the data characters and before the stop character. Each character is mapped to a reference value: digits 0–9 retain their values, special symbols are assigned - = 10, = 11, : = 12, / = 13, . = 14, + = 15, and start/stop characters A = 16, B = 17, C = 18, D = 19.[20] To compute the [check digit](/page/Check_digit), sum the reference values of the start character, all data characters, and the intended stop character. Let S be this sum. The check digit value c (0–15) is then c = (16 - (S mod 16)) mod 16, ensuring the total sum including c is divisible by 16 (i.e., (S + c) mod 16 = 0). The check digit is encoded using the symbol corresponding to c (0–9 as digits, 10–15 as - : / . +). Start and stop characters are included in the sum but not interpreted as data. This method provides verification against substitution or transposition errors while preserving Codabar's self-checking properties for printing defects. Note that other check digit algorithms, such as modulo-10 variants, are used in specific sectors like libraries.

Implementation Examples

A common implementation of the Codabar [modulo-16 check digit](/page/modulo-16 check digit) involves summing the reference values of the start, , and stop characters, then selecting the check value to make the total divisible by . For example, with start A, "1234", and stop B: reference values A=16, 1=1, 2=2, 3=3, 4=4, B=17; S = 16 + 1 + 2 + 3 + 4 + 17 = 43. Then, 43 mod 16 = 11, so c = 16 - 11 = 5. The is A12345B, with total 16+1+2+3+4+5+17 = 48 (divisible by ). Another example includes a special symbol: start A, data "12/34" (/=13), stop B: S = 16 + 1 + 2 + 13 + 3 + 4 + 17 = 56. 56 mod 16 = 8, c = 16 - 8 = 8. The is A12/348B, total sum 56 + 8 = 64 (divisible by 16). This shows integration of non-numeric symbols using reference values. Visual representations of Codabar with a append the for the check character before the stop , increasing length by about 7 modules (narrow / width) while following the 2:1 to 3:1 wide-to-narrow . Without a , A0123B encodes sequentially; with check (e.g., A01235B for "0123", stop B: S=16+0+1+2+3+17=39, 39 mod 16=7, c=9, wait—recalc: actually for "0123" S=16+0+1+2+3+17=39, 39-32=7, 16-7=9, A01239B). Common errors include omitting the check in verification-enabled scanners, causing rejection, or mismatched start/stop pairs invalidating the symbology.

Applications

Industry Uses

Codabar finds primary application in libraries, where the "" variant is employed for encoding short numeric identifiers on shelf labels, patron cards, and systems, enabling efficient tracking and circulation . In healthcare, particularly blood banks, Codabar has served as a standard since the for labeling specimen tubes, donor records, and blood bags, supporting date formats with symbols like the forward slash for MM/DD representations to facilitate accurate transfusion tracking. Logistics applications originated with Codabar's use in shipping manifests during the , and it persists as a legacy format for internal warehouse inventory and , including on airbills for air freight documentation. Additional sectors include labs, where Codabar encodes and order numbers for . As of 2025, Codabar remains a legacy symbology compliant with the ANSI X3.182-1990 bar code print quality guidelines for in these sectors, though it is being phased out in areas like blood bank labeling by late 2025 in favor of ISBT 128 DataMatrix formats.

Advantages and Limitations

Codabar barcodes are advantageous in their simplicity of printing, as their with relatively wide bars and spaces tolerates lower print quality, enabling reliable production using standard printers without specialized equipment. This robustness stems from the symbology's use of seven elements per character—four bars and three spaces—with specific width patterns that provide inherent for detection. Additionally, Codabar supports bidirectional scanning, allowing readers to decode the symbol from either left-to-right or right-to-left directions, which enhances flexibility in application. For short numeric sequences, the symbology achieves a compact of approximately 10-11 characters per inch, making it efficient for space-constrained labels. In ideal conditions, Codabar exhibits high scan success rates, with first read rates exceeding 85% and second pass read rates of 95% or higher, attributed to its self-checking patterns that minimize decoding errors without requiring additional verification mechanisms. However, as a one-dimensional , it remains vulnerable to obstructions like dirt, smudges, or damage, which can interrupt the linear scan path and reduce readability compared to two-dimensional alternatives. Despite these strengths, Codabar has notable limitations aligned with its original numeric-focused design. Its character set is restricted to digits 0-9 and a few symbols (-, $, /, . , +), excluding letters beyond start/stop characters A-D, which limits versatility for alphanumeric data. The standard does not mandate a , potentially increasing error susceptibility in implementations that omit custom validation, unlike symbologies with built-in checksums. Furthermore, Codabar offers lower data density than , encoding fewer characters per unit length due to its fixed seven-element structure. It has become obsolete for high-volume retail environments, where UPC provides standardized, higher-throughput scanning for product identification. Codabar is best suited for niche systems, such as certain inventory or identification applications, where outweighs the benefits of modern symbologies like QR codes that offer greater capacity and error correction.

References

  1. [1]
    [PDF] Codabar Specification
    Codabar is used in US blood banks, photo labs, and Fedex airbills. The minimum value of X is 7.5 mils. The wide-to-narrow (N) ratio shall be between 2.0 and 3.0 ...Missing: AIM BC3
  2. [2]
    Codabar Barcodes - Symbologies - Cognex
    Specifications: A Codabar barcode consists of up to 16 different numeric characters, plus an optional 4 more letter characters (generally A, B, C, and D), ...
  3. [3]
    Codabar Barcode Symbology - Scandit
    Codabar barcodes are linear 1D barcodes that identify and track items requiring a serial number. They are self-scanning and easily produced on many printers, ...
  4. [4]
    Codabar (NW-7) - Barcode Guide
    Symbol characters: Each Codabar character is represented by seven elements: four bars and three spaces. Of the seven elements, either two or three elements are ...
  5. [5]
    CODE 39 and Codabar | Basics of Barcodes - Keyence
    It is widely used for applications that require serial numbers, such as management of blood banks, slips for door-todoor delivery services and member cards.
  6. [6]
    Codabar Barcode. History and Purpose. - ByteScout
    The Codabar barcode can encode numeric digits from 0-9 and five characters including Plus (+), Minus (-), Forward slash (/), Colon (:), Dollar symbol ($) and ...Missing: specification | Show results with:specification<|control11|><|separator|>
  7. [7]
    Search the collection - Library Technology Guides
    Dec 8, 1981 · The Codabar labels are read with a lightpen scanner which determines the ratios of the transversing times of adjacent spaces. The width of the ...
  8. [8]
    An evaluation of the CODABAR symbol in blood-banking automation
    The CODABAR system has been used in blood banking automation since 1976 when it was introduced by 16 blood centers and transfusion services throughout the ...Missing: barcode | Show results with:barcode
  9. [9]
    Codabar Barcode - Neodynamic
    It is a discrete, self-checking symbology that may encode 16 different characters, plus an additional four start/stop characters.
  10. [10]
    [PDF] Guidelines for the Uniform Labeling of Blood and Blood Components
    Manufacturers <AIM> Technical Symbology Committee. Should AIM membership approve currently proposed USS-Codabar specifications, this.guidel1ne will be ...
  11. [11]
    The Comprehensive Guide to 1D and 2D Barcodes | Dynamsoft Blog
    Feb 2, 2020 · In this article, we give you a comprehensive guide to 1D and 2D barcodes, covering 18 major barcodes types. Collectively, they cover the bulk of application ...
  12. [12]
    About CodaBar Barcodes - TAL Technologies
    CodaBar is a variable-length symbology that can encode up to 20 characters: 0123456789-$:/.+ABCD. It is widely used in libraries, blood banks and air parcel ...
  13. [13]
    Bar Code Overview Linear 1D Barcode Symbologies (2/2) - TEC-IT
    In 1977 the American Blood Commission defined "Codabar 2" as standard for blood conserves (=ABC Codabar). ... [0..9], 9 digits, none;, Flattermarken are lines ...
  14. [14]
    Codabar - Labeljoy
    Codabar is a linear barcode symbology developed in 1972 by Pitney Bowes Corp. It is also known as Codeabar, Ames Code, NW-7, Monarch, Code 2 of 7.
  15. [15]
    1D barcode: Codabar | Barcode Symbologies - DataSymbol.com
    The Codabar format is composed of 7 elements for each character: 4 bars and 3 spaces, with each element being either narrow or wide. The width ratio between ...
  16. [16]
    PDFsharp & MigraDoc Forum • View topic - Codabar
    ' "0010101", // '+' "0011010", // 'A' "0101001", // 'B' "0001011", // 'C' "0001110", // 'D' }; /// <summary> /// Calculates the thick and thin line widths ...
  17. [17]
    Appendix 3: Barcode Symbologies - Logi Analytics
    Codabar. A start character from 4 choices: A, B, C and D. A stop character from 4 choices: A, B, C and D.Missing: binary | Show results with:binary
  18. [18]
    Encoding of the Codabar barcode
    1.Start Character: One of the characters A, B, C, or D. · 2.Data Characters: A sequence of numeric digits and/or special characters. · 3.Stop Character: One of ...
  19. [19]
    ESE:Codabar - Embedded Engineering Group
    Unlike other barcode symbologies, Codabar has four different start/stop codes, represented by the characters (A B C D). Any one of these can be used as a start ...
  20. [20]
    Intercharacter Gap Size - Zebra Technologies
    The Code 39 and Codabar symbologies have an intercharacter gap that is typically quite small. Due to various barcode printing technologies, this gap can grow ...
  21. [21]
    What are the one-dimensional barcodes and their main ...
    Feb 23, 2022 · Codabar barcode has bidirectional readability. When reading Codabar barcode symbol, the determination of scanning direction is realized by ...
  22. [22]
    Check digit calculation of Modulo 16 - ActiveBarcode
    Modulo 16 is used by Codabar. Calculate by dividing the sum of reference numbers by 16, then taking the difference of 16 minus the remainder.Missing: specification | Show results with:specification
  23. [23]
    Codabar - Wikipedia
    The basic 12 symbols (digits 0–9, dash, and $) are encoded using all possible combinations of one wide bar and one wide space. · An additional 4 symbols (:/. · 4 ...
  24. [24]
    [PDF] Bar Code Object Content Architecture Reference - afp consortium
    This is a two-dimensional stacked bar code symbology as defined in the AIM Uniform Symbology Specification. – PDF417. X'00'. Present a full PDF417 bar code ...
  25. [25]
    Barcode Symbologies - Scandit Developer Documentation
    Oct 17, 2025 · Some standards that use Codabar will define a check digit, but there is no agreed-upon standard checksum algorithm. The width ratio between ...
  26. [26]
    How is the Codabar check digit calculated?.
    Codabar standard doesn't define a checksum, but Modulo 16 is often used. Honeywell scanners support Modulo 16 check digit computation.Missing: specification | Show results with:specification
  27. [27]
    Codabar barcode symbology description & information
    Codabar is a linear, symbology barcode that represents data using a series of bars and spaces of varying widths. It was developed in 1972 and is commonly used ...
  28. [28]
    Barcodes in brief - Library Technology Guides
    Discrete and self-checking, Codabar codes consist of four bars with three spaces. The complete barcode symbol consists of a stop/start character, the data ...Missing: specifications | Show results with:specifications
  29. [29]
  30. [30]
  31. [31]
    Application examples of the Codabar barcode
    Codabar barcodes have been extensively used in libraries for the cataloging and tracking of books and other library materials.<|control11|><|separator|>
  32. [32]
    Codabar | Shipping Term Glossary - FreightAmigo
    Codabar is a discrete, self-checking barcode symbology that was first developed in 1972.
  33. [33]
    Codabar - Dynamsoft Barcode Reader SDK
    Codabar barcodes are used by logistics and healthcare professionals, including U.S. blood bank forms, FedEx packages and air bills, photo labs, libraries, ...
  34. [34]
    Introduction of ISBT 128 2D DataMatrix and removal of transition ...
    Dec 11, 2023 · The removal of the Codabar barcodes (bottom section) will mean the physical label will reduce in size to 100mm x 100mm [refer to figure 1]. The ...
  35. [35]
    Blood product labelling | National Blood Authority
    Mar 27, 2024 · The 2D ISBT 128 DataMatrix will be implemented on 30 November 2025. The transition label with the Codabar barcodes will be removed on 31 March ...
  36. [36]
    [PDF] TEC-IT Barcode Software Reference
    Feb 21, 2025 · For a full specification, please refer to the document Health Industry Bar Code: Provider Applications Standard ANSI/HIBC. 1.3 – 2010. It may ...
  37. [37]
    Types of Barcodes: Choosing the Right Barcode - Scandit
    Advantages of Codabar barcodes include ease of scanning and self-checking, which reduces errors when entering the code. However, Codabar codes are being phased ...Codabar · Two-Dimensional (2d) Barcode... · FaqsMissing: disadvantages | Show results with:disadvantages
  38. [38]
    Understanding Codabar Barcodes: A Comprehensive Guide
    May 16, 2023 · A Codabar barcode can encode numeric digits ranging from 0-9 and five special characters, including Plus (+), Minus (-), Forward Slash (/), Colon (:), Dollar ...
  39. [39]
    Barcode Tips
    The MINIMUM bar height should be .24 inches or 15% of the bar code length, whichever is greater for Code 39 and 128. For optimum scanning, it is recommended ...<|control11|><|separator|>
  40. [40]
    Overcoming the limitations of barcode technology
    After achieving scanning rates of 99.4 % we have observed error rates with some operators, when they attempt manual entry, from 75 to 100 %.Missing: Codabar | Show results with:Codabar
  41. [41]
    What is Codabar and How to Generate It? - Online Tool Center
    Apr 7, 2024 · Codabar codes are used to label blood bags that contain donated blood units. These barcodes provide critical information and other pertinent ...<|control11|><|separator|>
  42. [42]
    Barcode and QR Code Technology and Application
    As industries such as retail and logistics have shifted to more modern barcode symbologies, Codabar has become increasingly obsolete. These industries now favor ...