Standards/standard-2-of-5
Standard 2 of 5
Overview
Standard 2 of 5, more commonly called Industrial 2 of 5 (also 2 of 5 Industrial, 2/5 Standard, Code 25), is one of the oldest and simplest 1D linear barcode symbologies — a variable-length, discrete, two-width, numeric-only code that encodes only the digits 0–9 [1, 2]. Its defining characteristic, which gives the whole "2 of 5" family its name, is that each digit is encoded as five bars, of which exactly two are wide and three are narrow [1, 5].
The crucial structural feature of Standard 2 of 5 — and what separates it from its denser descendant itf — is that all the data lives in the bars only; the spaces between bars are uniform and carry no information, serving merely as separators [1, 5]. This "data in bars only" design makes the symbology very simple but low density: an Industrial 2 of 5 symbol is roughly 50 % longer than the equivalent Interleaved 2 of 5 and about 172 % longer than code-128 [1].
History
Industrial 2 of 5 was invented in 1971 by Identicon Corp. and Computer Identics Corp. [1], making it one of the very first 1D barcodes — Computer Identics installed some of the earliest industrial barcode scanning systems of the era. One reference traces the basic concept back even further, describing it as a "low-density numeric symbology that has been with us since the 1960s" [4].
The "2 of 5" naming convention it established — five elements per character, exactly two of them wide — was inherited by an entire family of derived symbologies:
- iata-2-of-5 — a 1974 Computer Identics variant differing only in start/stop characters, adopted by the airline industry [1].
- matrix-2-of-5 — a denser cousin (developed by Nieaf Co., Netherlands) that also encodes data in the spaces [3].
- Interleaved 2 of 5 (itf) — David Allais's 1972 innovation that interleaves digit pairs across bars and spaces, roughly doubling density.
- Data Logic 2 of 5 — a further start/stop variant supported by some libraries [6].
Industrial 2 of 5 itself is described by Wikipedia as now having "only historical value," superseded by the denser interleaved form for nearly all applications [1].
Technical specification
Industrial / Standard 2 of 5 is a discrete, numeric-only, variable-length 1D symbology [1, 2, 5]:
| Parameter | Value |
|---|---|
| Symbology family | 1D linear, "2 of 5" family |
| Character set | Digits 0–9 only |
| Length | Variable |
| Encoding | Data in bars only — 5 bars per digit, 2 wide + 3 narrow; spaces are uniform separators carrying no data [1, 5] |
| Self-checking | No |
| Check digit | Optional, modulo 10 weighted (alternating 3 and 1) [1, 5] |
| Start pattern | WSWSN-style (e.g. wide-narrow-wide bars) [1] |
| Stop pattern | WSNSW-style (wide-narrow-narrow…wide) [1] |
| Quiet zone | 10 × narrow-element width each side [5] |
| Density | Low — ~50 % longer than itf, ~172 % longer than code-128 [1] |
The 2-of-5 rule [1, 5]: each numeric character is represented by five bars where two are wide and three are narrow. In the four data bars used to derive the value, the bars carry binary weights, with a fifth bar effectively acting as parity, guaranteeing the "two wide of five" property for every digit.
Data in bars only [1, 5]: This is the single most important fact about the symbology and the basis for every comparison in this entry. Standard 2 of 5 "only uses bar width to encode the data," and the inter-bar spaces are all the same width — pure separators [5]. This is what makes it half as dense as Interleaved 2 of 5, which packs a second digit into those same spaces.
Check digit [5]: the optional modulo-10 check digit is computed by weighting digit positions alternately by 3 and 1 from the right, summing, and taking (10 − (sum mod 10)) mod 10 — the same Mod-10 scheme used across the 2-of-5 family and by ean-13/upc-a.
Use cases
Standard / Industrial 2 of 5's historical deployments cluster around internal numeric tracking in industrial settings [1, 4]:
- Warehouse sorting systems — sequential item and bin numbering.
- Photo developing / photo-finishing envelopes — batch and order numbering through the develop-and-print workflow.
- Cardboard / corrugated box printing — the simple wide/narrow bar pattern prints reliably on rough cardboard.
- Physical-distribution and logistics management — case-level numeric IDs.
- Airline ticket sequential numbering — sequence numbers on tickets [4] (the closely related iata-2-of-5 formalised airline use).
Because the code is numeric-only, simple, and tolerant of low-quality printing, it filled the niche of "cheap internal numeric label" before higher-density numeric codes (itf) and full-ASCII codes (code-128) displaced it.
Implementations
Standard / Industrial 2 of 5 survives mainly as a legacy format in barcode-generation libraries and scanner SDKs rather than in new deployments [6]:
- C — zint/zint — ~771★, active 2026. Lists "Code 2 of 5 Industrial," "Code 2 of 5 IATA," "Code 2 of 5 Standard (Matrix)," and "Code 2 of 5 Data Logic" among supported symbologies.
- JavaScript —
bwip-js(BWIPP port) exposes theindustrial2of5/code2of5types. - Commercial SDKs — Neodynamic Barcode Professional (.NET/ASP.NET/WPF/Blazor) supports Industrial 2 of 5 [2]; Seagull/BarTender, Accusoft Barcode Xpress, and most industrial scanner firmware retain it for backward compatibility.
Comparison
vs. Interleaved 2 of 5 (itf) — the defining contrast. Both share the 2-of-5 rule (5 elements per digit, 2 wide). Industrial 2 of 5 encodes data in the bars only, leaving spaces as uniform separators; Interleaved 2 of 5 interleaves two digits — one in the bars, one in the spaces — so it packs the same data into roughly half the width [1, 5]. ITF won the market for numeric supply-chain codes precisely because of this density; Industrial 2 of 5 is the simpler, older, lower-density ancestor.
vs. iata-2-of-5 — identical encoding, identical "data in bars only" structure; the two differ only in start/stop patterns [1]. IATA 2 of 5 is, in effect, Standard 2 of 5 with airline-industry start/stop codes.
vs. matrix-2-of-5 — Matrix 2 of 5 also belongs to the family but, unlike Standard 2 of 5, encodes data in both bars and spaces, making it denser than Industrial 2 of 5 (though still less dense than Interleaved 2 of 5 because it remains a discrete symbology with inter-character gaps) [3].
vs. code-128 — Code 128 is full-ASCII and far denser; Industrial 2 of 5 is numeric-only and ~172 % longer for the same data [1]. Any modern numeric or alphanumeric requirement is served by ITF or Code 128 instead.
Fun facts
The whole "2 of 5" naming convention that names this entry — five bars per digit, exactly two wide — originated here and propagated to at least four descendant symbologies (itf, iata-2-of-5, matrix-2-of-5, Data Logic 2 of 5), each tweaking encoding or start/stop while keeping the same digit rule [1, 6].
Despite being "obsolete" with "only historical value" [1], Industrial 2 of 5 is still a checkbox in essentially every commercial barcode library shipping in 2026 — a 55-year-old symbology kept alive purely by backward-compatibility inertia [2, 6].
Status
Legacy / obsolete. Industrial 2 of 5 is no longer selected for new deployments — Wikipedia states it "now has only historical value" [1]. It remains supported by barcode-generation libraries (zint, bwip-js) and commercial scanner/print SDKs (Neodynamic, Seagull, Accusoft) for reading and re-printing legacy labels [2, 6]. For new numeric applications, itf (density) or code-128 (alphanumeric) are the standard replacements.
Sources
- Industrial 2 of 5 — Wikipedia
- Industrial 2 of 5 Barcode — Neodynamic
- Matrix 2 of 5 — Wikipedia
- Industrial 2 of 5 Barcode (history of use) — Neodynamic
- Code 25 Specification — Morovia
- zint/zint — GitHub
Deployments
No country reports mention this standard by name.
Regions / aggregations not mapped to a single country
- Universal