Standards/gs1-databar-stacked
GS1 DataBar Stacked
Overview
GS1 DataBar Stacked Omnidirectional is the two-row, full-height member of the gs1-databar family. It takes a single-row DataBar Omnidirectional symbol and splits it into a top and bottom row joined by a separator pattern, producing a near-square footprint that is small enough for a produce PLU sticker yet still readable by omnidirectional point-of-sale scanners [1, 2]. It is the DataBar variant of choice for loose fresh produce.
For family history, RSS lineage, and positioning against ean-13 / upc-a, see the base entry gs1-databar. This page focuses on what makes the Stacked Omnidirectional form distinct: the two-row geometry and its POS-omnidirectional capability. (Note: a separate shorter "DataBar Stacked" exists that is not omnidirectional and not POS-approved — see Comparison.)
History
The variant began as RSS-14 Stacked Omnidirectional under AIM's original Reduced Space Symbology specification, renamed when GS1 adopted and rebranded the DataBar family in 2007 [3]. It is standardised in ISO/IEC 24724 (current edition 2011) [4]. Its principal driver was fresh-produce labelling: individual fruits and vegetables need an item-level GS1 identifier on a sticker too small for ean-13 / upc-a, yet the symbol still has to clear the high-throughput omnidirectional slot scanners at supermarket checkout [2].
Technical specification
Two-row split structure [1]:
- The symbol is a full-height DataBar Omnidirectional split into two rows with a separator pattern between them. The top row carries the left half of the underlying single-row symbol; the bottom row carries the right half.
- Row height: each row at least 33 modules (33X) high; separator pattern at least 3 modules (3X) high — these minimums are what preserve omnidirectional readability [1].
- Error detection uses check digits embedded in the finder patterns via a modulo 79 algorithm [1].
- A 14-digit numeric data stream — i.e. a GTIN. It accepts GTIN-8, GTIN-12, GTIN-13, and GTIN-14, left-padded with leading zeros to 14 digits, and also supports the Global Coupon Number (GCN).
- No Application Identifiers beyond the GTIN/GCN itself — for weight, expiry, lot, or coupon attributes you need gs1-databar-expanded.
- Character set is numeric digits 0–9 only [1].
POS omnidirectional capability [1, 2]:
- Unlike the compact non-omni variants, Stacked Omnidirectional is designed for and approved for retail POS and is readable at any orientation by slot/bioptic scanners — the practical requirement for grocery checkout, where the cashier cannot align a produce sticker.
Use cases
- Loose fresh produce — the headline use: bananas, apples, citrus and other items too small for upc-a get a PLU sticker carrying a Stacked Omnidirectional symbol plus the human-readable 4-/5-digit PLU code [2].
- Small retail packages that still pass through omnidirectional POS but lack room for ean-13 / upc-a [1, 2].
- Cosmetics, small consumer goods, and small healthcare items where the product face is too small for a full-size linear GTIN symbol and front-of-store omnidirectional scanning is still required (general DataBar produce/small-item niche — see gs1-databar).
Implementations
- C / C++ — zint/zint — ~771★, active 2026.
libzintgenerates the GS1 DataBar Stacked variants (public-domain symbology) [5]. - Java + ports — zxing/zxing — ~34 000★, active 2025. Decodes the DataBar family.
- Label software — Seagull BarTender, Neodynamic, Cognex/Scandit symbology stacks document and generate Stacked Omnidirectional, including CC-A / CC-B composite forms [1].
- POS hardware — every post-~2010 omnidirectional slot/bioptic scanner (NCR, Datalogic, Honeywell, Zebra) reads it natively (see gs1-databar).
Comparison
vs. DataBar Omnidirectional (single row) — identical data (14-digit GTIN) and both POS-omnidirectional; Stacked Omnidirectional trades width for a two-row, near-square footprint for small/round items like produce [1, 2].
vs. the non-omni "DataBar Stacked" / Truncated — confusingly, a shorter DataBar Stacked (and DataBar Truncated) also exists; those are NOT omnidirectional and NOT approved for POS — only Stacked Omnidirectional clears retail checkout [6]. The distinguishing feature here is the full-height rows (33X) that the truncated forms drop.
vs. gs1-databar-limited — Limited is a single-row compact GTIN symbol restricted to indicator digit 0/1 and is not omnidirectional / not POS-approved (handheld use). Stacked Omnidirectional has no indicator-digit restriction and is POS-omnidirectional [6].
vs. gs1-databar-expanded — Expanded carries the full GS1 Application Identifier chain (weight, expiry, coupon data); Stacked Omnidirectional is GTIN-only. Choose Expanded when attributes are needed [2].
vs. ean-13 / upc-a — Stacked Omnidirectional fits where EAN-13/UPC-A physically cannot (produce stickers) while remaining POS-omnidirectional; EAN/UPC keep the general-packaging base.
Fun facts
Billions of produce PLU stickers print every year, and the omnidirectional two-row DataBar is what lets a banana sticker ring up correctly at a slot scanner without the cashier ever orienting it — the variant's entire reason for being is that geometry constraint [2].
The "stacked" name is overloaded: only Stacked Omnidirectional is POS-grade. The plain "DataBar Stacked" sharing the name is a shorter, non-POS cousin — a frequent source of integration confusion [6].
Status
Active. Standardised in ISO/IEC 24724:2011, public domain, supported by all post-2012 omnidirectional POS scanners [4]. The dominant fresh-produce item-level symbol; continues to grow as produce-labeller equipment ships with DataBar generation by default. GS1's wider 2D migration roadmap (see gs1-databar) is the only long-term headwind; no deprecation is planned [2].
Sources
- GS1 DataBar Stacked Omnidirectional — Seagull Scientific Barcode Guide
- What is a GS1 DataBar? — GS1 US
- GS1 DataBar — Wikipedia
- ISO/IEC 24724:2011 — GS1 DataBar symbology specification — ISO
- zint/zint — GitHub
- GS1 DataBar Barcode FAQ & Tutorial — BarcodeFAQ.com
Deployments
No country reports mention this standard by name.
Regions / aggregations not mapped to a single country
- Universal