Standards/code-11
Code 11
Overview
Code 11, also designated USD-8, is a high-density, discrete, variable-length 1D barcode symbology used primarily for the labelling of telecommunications equipment [2][1]. It encodes the numeric digits 0–9 plus the dash/hyphen character (-) — eleven data characters in total, which is the origin of the name [1][2]. One or two optional check digits can be appended for integrity [1].
History
Code 11 was developed by Intermec in 1977 [1], invented by Intermec's David Allais [2]. It was designed to give high information density for the numeric serial and equipment-identification data typical of telecommunications labelling [2]. Telecommunications companies — including AT&T — adopted the symbology in the early 1980s for standardized wand/laser data entry, for example in plug-in inventory control and continuing-property-record systems for plug-in equipment and maintenance stock [1] (per the search summary of the Wikipedia/Grokipedia material).
Technical specification
- Character set: digits 0–9 and the dash
-— 11 data characters [1][2]. - Element structure: each character is encoded with three bars and two spaces (five elements); a single narrow space separates consecutive characters, making the code discrete [1].
- Element widths: uses two widths (narrow/wide). Three characters (
0,9, and-) have one wide element; all others have two wide elements [1]. - Start / stop: a twelfth pattern serves as the shared start/stop character, commonly rendered as
*; the first and last element of every character is a bar [1][2]. - Check digits ("C" and "K"): one or two check digits may be added. The rule is one check digit ("C") when the data is fewer than ten characters, and two ("C" then "K") for ten or more characters [1][2]. The C check digit uses a modulo-11 algorithm. Sources diverge on the K digit: Wikipedia describes both as modulo-11 check digits [1], whereas Seagull/Cognex documentation states the first uses modulo 11 and the second uses modulo 9 [2].
- Density: the average digit occupies about 7.8 modules, better than Codabar (~10) or Code 39 (~11) but slightly wider than Interleaved 2 of 5 (~7) [1].
Use cases
Code 11's defining application is telecommunications equipment labelling — serial numbers and inventory tags on telephone/network plug-in hardware [1][2]. Early-1980s adoption by carriers such as AT&T for inventory and property-record scanning established it in that vertical [1]. It saw little uptake outside telecom because it lacks alphabetic characters and a public check-digit standard guarantee comparable to retail codes.
Implementations
- zint — C, ~771 stars, active 2026. 50+ symbology encoder; lists Code 11 among supported types [6].
- bwip-js — JavaScript, ~2.4k stars, active 2026. BWIPP port supporting 100+ types including Code 11 [6].
(The python-barcode library does not implement Code 11 [3].)
Comparison
- Code 11 vs. Code 39: Code 11 is more compact — about 7.8 modules/digit versus roughly 11 for Code 39 — but it is restricted to digits and the dash, while Code 39 carries the full uppercase alphanumeric set. Code 39 is self-checking and widely standardized; Code 11 relies on appended C/K check digits and is confined largely to telecom [1].
- Code 11 vs. Interleaved 2 of 5: ITF is marginally denser (~7 modules/digit) and ubiquitous, so where pure-numeric density matters most ITF generally wins; Code 11's advantage is its dash character and check-digit flexibility [1].
- Code 11 vs. Codabar: Code 11 is denser than Codabar (~10 modules/digit) [1].
Status
Code 11 is a legacy, niche symbology. New deployments are rare and it never spread beyond telecommunications, but it remains supported by commercial scanner SDKs (Cognex, Dynamsoft, barKoder) and encoding libraries (zint, bwip-js) and is still encountered on legacy telecom equipment labels [1][2][6].
Sources
1 Code 11 — Wikipedia — Wikipedia, accessed 2026. 2 Code 11 (USD-8) — Seagull Scientific Barcode Guide, accessed 2026. 3 Supported Formats — python-barcode documentation, accessed 2026. 4 Code 11 — Dynamsoft Barcode Reader SDK, accessed 2026. 5 Code 11 — Cognex Mobile Barcode Scanner SDK, accessed 2026. 6 zint — A barcode encoding library — GitHub (zint/zint), accessed 2026.
Deployments
No country reports mention this standard by name.
Regions / aggregations not mapped to a single country
- Universal