Standards/itf
ITF
Overview
Interleaved 2 of 5 (ITF) is a high-density numeric-only 1D linear barcode symbology invented by David Allais in 1972 1, 2. Standardised as ISO/IEC 16390:2007 3, it encodes pairs of digits by interleaving the bars and spaces — each character's bars carry one digit, the spaces between bars carry the next, giving roughly twice the density of numeric-only Code 39 1. The GS1-managed variant ITF-14 is the canonical shipping-carton barcode carrying 14-digit GTINs on outer corrugated packaging 4.
ITF is the prolific creation of David Allais — who also invented Code 39 (1974), Code 11, Code 93, Code 49, and contributed to Code 128 (1981) 2. ITF predates all of his other inventions and remains in active use 50+ years later on essentially every shipping carton in the global supply chain.
History
1972 — David Allais invents Interleaved 2 of 5 1, 2: Allais, then at Identicon Corp. (later folded into Intermec), designed ITF specifically for numeric-only high-density encoding on shipping cartons. The "2 of 5" naming refers to the symbology rule: each digit is encoded as 5 elements (bars or spaces) of which exactly 2 are wide.
The "Interleaved" innovation 1: Earlier "2 of 5" symbologies (Standard 2 of 5, IATA 2 of 5) encoded one digit per character, with bars carrying the data and inter-character spaces being non-data padding. Allais's insight: interleave the digits so the bars of one character and the spaces between encode two adjacent digits simultaneously. This packs two digits into the same horizontal space previously holding one — roughly doubling density.
Early 1980s — UCC adoption for shipping cartons 1, 5: The Uniform Code Council (now [gs1-databar-ref]'s parent GS1) formally adopted ITF for shipping container labels in the grocery industry. The variant ITF-14 (14-digit fixed length) became the canonical GTIN-14 carrier for outer shipping cartons.
ITF-14 specification 4: GS1's only authorised use of Interleaved 2 of 5. Encodes a 14-digit GTIN (Global Trade Item Number — the umbrella identifier covering UPC-A, EAN-13, and supply-chain-level codes). Printed directly on cardboard packaging or applied as a label.
2007 — ISO/IEC 16390:2007 3: Formal international standardisation. Defines bar / space patterns, encoding rules, dimensions, decoding algorithms, application parameters.
Variants with check-digit additions 1: Identcode and Leitcode are German Deutsche-Post-specific variants of ITF with mandatory check digits — used for postal-sorting barcoding in Germany.
Technical specification
ITF is a continuous, numeric-only, even-number-of-digits 1D linear symbology 1, 3:
| Parameter | Value |
|---|---|
| Symbology family | 1D linear |
| Character set | Digits 0–9 only |
| Length | Variable, must be EVEN (always pairs of digits) |
| Elements per pair | 5 bars + 5 spaces (10 elements total) |
| Wide elements per pair | 2 wide of 5 bars + 2 wide of 5 spaces |
| Bidirectional reading | Yes |
| Quiet zone | 10 × narrow-element width on each side |
| Check digit | Optional in general ITF; mandatory in ITF-14 (modulo-10) |
| Encoding method | Interleaved — bars carry one digit, intervening spaces carry the next |
Interleaving structure 1:
Digit pair "47":
Bars (4) → narrow, wide, narrow, narrow, wide = encodes "4"
Spaces (7) → narrow, narrow, wide, wide, narrow = encodes "7"
The two digits are encoded simultaneously across the 5 bars and 5 spaces — neither digit can be decoded without the other. This is structural to ITF's name and to its density advantage over Code 39.
ITF-14 specifically 4:
- Fixed 14 digits (the GS1 GTIN-14 format)
- Check digit at position 14 (modulo-10 weighted by 3, 1, 3, 1, …)
- Bearer bars required — heavy black bars above and below the symbol to protect against printing imperfections at edges
- Quiet zone larger than general ITF (to accommodate carton-print conditions)
Density advantage 1: For numeric-only encoding, ITF is ~2x denser than Code 39 and ~30 % denser than EAN-13/UPC-A at the same module width. This makes ITF ideal for shipping cartons where space is at a premium and the data is always numeric (GTINs, weights, batch numbers).
Disadvantage: Numeric-only restriction means ITF cannot encode alphabetic characters at all — for alphanumeric supply-chain data (e.g., serial numbers with letters), Code 128 / GS1-128 is the standard alternative.
Use cases
ITF's primary use case is shipping-carton barcoding for outer corrugated packaging 1, 4, 5:
- ITF-14 on shipping cartons — the most prolific deployment. Every commercial pallet's outer carton with a GTIN-14 carries ITF-14. Used by retailers, manufacturers, distributors globally for case-level identification.
- Outer packaging in the grocery, pharmaceutical, and consumer-goods supply chains — the case-level identifier above retail-pack-level EAN-13/UPC-A.
- Postal sorting (Germany — Identcode and Leitcode) — Deutsche Post variants of ITF for mail piece tracking and routing.
- Container shipping labels — alongside Code 128 for additional structured data.
- Air cargo — IATA-related logistics carry ITF on freight labels.
- Automotive parts cartons — outer-pack identification for parts shipped from suppliers to assembly plants.
- Library back-of-book inventory — older library systems use ITF for accession-number encoding.
- Photo processing — film canisters and order envelopes historically used ITF for batch tracking.
Why ITF dominates outer-carton labelling 1, 4:
- Highest 1D density for numeric data — fits longer GTINs in less printable width than alternatives.
- Easy to print directly on corrugated cardboard — the simple bar-and-space pattern survives printing on rough carton surfaces.
- Universal scanner support — every commercial scanner reads ITF.
- GS1-mandated for case-level GTIN-14 encoding (ITF-14 variant).
- Public domain — no licensing fees.
Implementations
ITF has universal scanner and library support — older than nearly every other actively-used symbology 6:
- Java + many ports — zxing/zxing — 34 000★, active 2025. Decodes ITF alongside Code 128, UPC, EAN, QR, Aztec, Data Matrix.
- C / C++ —
libzint(Zint barcode generator);zbar(decoder). - Python —
python-barcode,treepoem,pyzbar. - PHP —
picqer/php-barcode-generator. - JavaScript —
JsBarcode,bwip-js. - C# / .NET —
ZXing.Net,Aspose.BarCode,Dynamsoft Barcode Reader(commercial). - OS-level mobile — iOS AVFoundation, Android CameraX / ML Kit all decode ITF natively.
- Industrial / supply-chain scanners — every commercial 1D scanner reads ITF (NCR, Datalogic, Honeywell, Symbol/Zebra, Cognex, Diebold). Universal hardware support.
- Mobile SDKs — Scanbot, Scandit, Anyline, Dynamsoft.
- Thermal printer firmware — Zebra, Honeywell, SATO, TSC, Brother all support ITF / ITF-14 directly from their command languages (ZPL, EPL, etc.) — especially important for warehouse case-label printing.
- ISO/IEC 16390:2007 — formal symbology specification.
- GS1 ITF-14 standard — defines the GTIN-14 application of ITF for shipping cartons.
Comparison
vs. Code 39 — Both 1D symbologies invented in the early 1970s by David Allais. Code 39 is alphanumeric (43-character set), ITF is numeric-only. ITF is ~2x denser than Code 39 for numeric data. Where the data is numeric only (GTINs, weights, batch IDs), ITF wins on density; where letters are needed, Code 39 wins on capability. Both Allais inventions; complementary niches [code-39-ref].
vs. Code 128 (and GS1-128) — Both encode supply-chain data. Code 128 is alphanumeric (full ASCII) and ~5.5 modules/character vs ITF's ~7 modules/digit-pair. For numeric-only data, ITF is slightly denser; for any alphanumeric data, Code 128 wins. GS1-128's Application Identifier framework lets one symbol carry GTIN + batch + expiry + weight; ITF-14 carries only the GTIN-14 (other AIs go in adjacent Code 128 symbols). The two are deployed alongside each other on most shipping carton labels [code-128-ref].
vs. EAN-13 / UPC-A — Both numeric retail barcodes, but different deployment levels. EAN-13 / UPC-A are item-level (one symbol per retail product); ITF-14 is case-level / pallet-level (one symbol per shipping carton, encoding the GTIN-14 that contains the case-level GTIN). The GS1 GTIN hierarchy stacks: item = GTIN-12/13, case = GTIN-14 [ean-13-ref, upc-a-ref].
vs. GS1 DataBar — GS1 DataBar is the modern multi-AI-capable 1D linear alternative GS1 has been promoting since 2011 for retail and supply chain. DataBar can carry GTIN + variable measure + batch in a single symbol; ITF-14 carries only the GTIN-14. DataBar adoption has been slow in the case-level segment where ITF-14's installed-base scanner support is total [gs1-databar-ref].
vs. Data Matrix (specifically GS1 DataMatrix) — 2D alternative carrying same GS1 application identifiers as GS1-128. GS1 DataMatrix is encroaching on the GS1-128 + ITF-14 traditional split for some case-level applications, particularly in pharmaceutical packaging where serialisation requires GTIN + serial + lot + expiry in a single small symbol [data-matrix-ref].
Fun facts
David Allais invented Interleaved 2 of 5 in 1972, two years before he invented Code 39 in 1974 2 — making ITF his first major barcode contribution. Allais's career spans almost every major 1D symbology of the 1970s–80s: ITF (1972), Code 39 (1974), Code 11 (1977), Code 93 (1982), Code 49 (1987), plus contributions to Code 128 (1981). The "AIDC Founders" recognition lists Allais alongside the very small number of individuals whose technical decisions shaped the entire global barcode infrastructure.
ITF-14 is on essentially every shipping carton in the global commercial supply chain 4 — billions of cartons annually, each with at least one ITF-14 symbol. Compared with EAN-13's "most-printed barcode" claim at item level, ITF-14's claim is "most-printed barcode at case level" — different supply-chain segments, comparable scale.
The even-number-of-digits requirement 1 is one of ITF's structural quirks. Because each character encoding interleaves two digits across 5 bars + 5 spaces, you can't encode 1 digit alone — only pairs. ITF symbols always carry an even count of digits. For odd-count payloads, a leading zero is prepended.
The Deutsche Post variants Identcode and Leitcode 1 are interesting national specialisations — Germany's national postal service standardised on ITF-with-required-check-digit variants for mail-piece tracking and sorting. Most other national postal services adopted Code 128 / PDF417 / or proprietary alternatives; Germany stuck with ITF heritage. The structural reason: Deutsche Post's automated sortation equipment was built around ITF scanners in the 1980s, and migration cost has prevented replacement.
Photo processing labs in the 1990s–2000s 1 were one of ITF's quirky deployments — film canisters and processing-order envelopes carried ITF for batch tracking through the developing-and-printing workflow. As digital photography displaced film, this use case shrank to near-zero, but the example illustrates how a foundational symbology finds applications in unexpected sectors that follow its early adopters.
Status
Active, foundational, slowly being displaced in some niches 1, 3:
- ISO/IEC 16390:2007 is the current spec — stable for ~20 years
- GS1 ITF-14 continues as the canonical shipping-carton GTIN-14 encoding
- Universal scanner support continues across all commercial scanners
- Public domain — no licensing fees
Strategic context:
- Code 128 / GS1-128 is preferred for new supply-chain applications requiring alphanumeric data or multiple GS1 Application Identifiers in one symbol.
- GS1 DataBar is GS1's modern multi-AI 1D linear alternative; adoption has been slow at case level.
- Data Matrix (GS1 DataMatrix) is encroaching on pharmaceutical case-level marking for serialisation requirements.
- For pure GTIN-14 encoding on outer corrugated packaging, ITF-14 remains the canonical default because of its density-on-cardboard advantage and total installed-base support.
- No deprecation planned; ISO continues to maintain the standard.
Sources
- Interleaved 2 of 5 — Wikipedia
- David Allais — Wikipedia
- ISO/IEC 16390:2007 — Interleaved 2 of 5 specification
- ITF-14 — GS1 standards
- Interleaved 2 of 5 (ITF-14) Barcode FAQ — BarcodeFAQ
- zxing/zxing — GitHub
- What is Interleaved 2 of 5 — Cognex
- Interleaved 2 of 5 (ITF) — Scandit
Deployments
No country reports mention this standard by name.
Regions / aggregations not mapped to a single country
- Universal