Wide-to-narrow ratio
How much fatter the wide elements are than the narrow ones, in a two-width symbology. Conventionally written 1:N - the safe default is 1:3.
What is the wide-to-narrow ratio?
A handful of older 1D symbologies - Code 39, LOGMARS, Codabar, the Interleaved 2 of 5 family including ITF-14 - encode data with only two element widths: a narrow element and a wide one. Every bar and every space is either one or the other. The wide-to-narrow ratio is the multiplier that says how much fatter the wide element is than the narrow.
The ratio is conventionally written 1:N where N is the wide-element multiplier. A 1:3 ratio means every wide bar or space is three times the width of a narrow one. So a symbol with a 10 mil X-dimension and a 1:3 ratio prints 10 mil narrow elements and 30 mil wide elements.
Why it matters
A scanner reading a two-width symbology doesn't measure absolute widths. It computes a running mean of the element widths it has seen so far in the symbol and classifies every subsequent element as "narrow" or "wide" depending on which side of the mean it falls. The decode succeeds when the population of narrow elements and the population of wide elements stay cleanly separated - i.e. there is a visible gap between the two clusters.
The bigger the ratio, the bigger that gap, and the more tolerance the scanner has for print growth, ribbon bleed, ink spread on porous media, and out-of-focus optics. A 1:2 symbol prints smaller but leaves much less margin; even mild ink gain can push a narrow element above the running mean and produce a misread. A 1:3 symbol takes about 25% more horizontal space but is dramatically more forgiving.
- Bigger gap between narrow and wide populations
- Tolerates ink spread, ribbon bleed, defocus
- Recommended default for industrial and warehouse use
- Costs ~25% more horizontal space than
1:2
- Compact - useful when label space is tight
- Smaller gap; mild print gain causes misreads
- Only permitted when X-dimension >= 20 mil (0.508 mm) per most specs
- Avoid for thermal-transfer ribbons that fan out
Permitted values
The ISO/IEC and GS1 specifications converge on the same allowable band: a ratio anywhere between 2.0 and 3.0 (i.e. 1:2.0 to 1:3.0) is conformant, with 3.0 as the safe default for scannability. Some narrower ratios are allowed only above a minimum X-dimension threshold, because they only stay readable when the elements are large enough that print imperfections can't close the gap.
| Symbology | Permitted range | Default / recommended | Spec |
|---|---|---|---|
| Code 39 | 1:2.0 - 1:3.0. 1:2.0-1:2.2 only when X >= 20 mil. | 1:3.0 | ISO/IEC 16388 |
| LOGMARS (Code 39) | 1:2.2 - 1:3.0 | 1:3.0 (mandated for military labels) | MIL-STD-1189B |
| Codabar | 1:2.25 - 1:3.0 when X < 20 mil; 1:2.0-1:3.0 when X >= 20 mil. | 1:3.0 | ANSI/AIM BC3 |
| Interleaved 2 of 5 | 1:2.0 - 1:3.0 | 1:3.0 | ISO/IEC 16390 |
| ITF-14 | 1:2.25 - 1:3.0 | 1:3.0 (GS1 specifies exactly 1:3 for ITF-14) | GS1 GenSpec §5.4.4.3 |
Code 128, EAN/UPC, GS1-128, GS1 DataBar, and every 2D symbology do not have a wide-to-narrow ratio - they use four or more element widths (a "many-width" symbology) where the concept doesn't apply. Setting the ratio in a printer command that targets those symbologies is either ignored or silently rejected.
How printer command languages set the ratio
Every printer command language exposes the wide-to-narrow ratio as a global setting that applies to the next two-width barcode rendered. The ZPL parameter is the most familiar:
| Language | Command | Parameter | Notes |
|---|---|---|---|
| ZPL | ^BY | r - the third field | Range 2.0 - 3.0, default 3.0. e.g. ^BY3,2.5,100. |
| SBPL | <ESC>BD (Code 39), <ESC>BG (ITF) | Ratio prefix in the bar-width field | Width values 02-05 encode 1:2 through 1:5. |
| TSPL | BARCODE | Bar-width pair (narrow,wide) | Sets narrow and wide in dots directly; ratio = wide / narrow. |
| DPL | Format header bar-ratio field | One of 1.0-3.0 in steps of 0.1 | Applies to every two-width barcode in the format until reset. |
When the ratio is set out of range, the printer firmware typically clamps to the nearest legal value rather than aborting the job - meaning the symbol still prints, but not the way the format author expected. Always set the ratio explicitly when targeting Code 39 / Codabar / I2of5.
Picking a ratio
- Use
1:3unless you have a reason not to. It is the spec default for every two-width symbology, the most forgiving across print methods, and it is what every quality verifier grades against by default. - Drop to
1:2.5only to fit a constrained label. Test print on the actual media at the production speed before committing - thermal-transfer ribbons on cardboard often gain enough width to misread at1:2.5. - Never go below
1:2.0. No conformant symbology permits it. A scanner that decodes the symbol anyway is doing so by luck. - ITF-14 is fixed at
1:3. GS1 specifies the exact ratio for ITF-14 on outer cases - it is not a knob to tune.