Guides · updated 23 September 2026
Barcode print quality: why scans fail and how ISO 15416 grades work
The short answer: a barcode is not simply “good” or “bad” — it is graded. An ISO/IEC 15416 verifier reads a linear barcode along ten lines, grades each from 4 to 0 on the weakest of seven parameters, and averages them. GS1 asks an EAN-13 for at least 1.5 (C). Most failures are decided before the press starts: red bars, kraft or metallic stock, gloss over the code, a quiet zone eaten by a frame, a symbol shrunk below 80 % or wrapped round a narrow bottle.
In 30 seconds
The 30-second answer: a barcode is measured, not just scanned
A barcode that scans on your desk can still be rejected by a retailer: print quality is measured with a verifier against ISO/IEC 15416 (linear codes) or ISO/IEC 15415 (QR and DataMatrix), and the result is a grade. Six facts:
- Seven parameters, one weakest link. Each scan takes the lowest of its seven parameter grades.
- Ten scans, one average. The overall grade is the mean of at least ten scan grades taken across the height, to one decimal place.
- 4 to 0 equals A to F. 3.5 to 4.0 is A, 2.5 to 3.4 B, 1.5 to 2.4 C, 0.5 to 1.4 D, below 0.5 F.
- GS1 minimum for an EAN-13: 1.5/06/660. Grade 1.5 (C), 6-mil aperture (0.150 mm), 660 nm light.
- Size and margins are rules. X-dimension 0.264 to 0.660 mm, bars never cut below the minimum height, quiet zones of 11 modules left and 7 right.
- Most failures are design choices. Red bars, brown or metallic grounds, clear film without a white underlay, gloss over the code, trimmed margins and tight curves.
Barcode verification grades
ISO/IEC 15416 grades each scan on its weakest parameter, then averages at least ten scans
An ISO/IEC 15416 verifier records a scan reflectance profile — the light reflected along one line across the symbol — and grades seven parameters from it. The scan receives the lowest of the seven grades; the symbol receives the average of at least ten scans, taken in ten equal steps over the height of the bars (GS1 1D verification guideline, section 4.5.1.1). The thresholds below are the ISO values published by GS1 (GS1 Bar Code Verification for Linear Symbols, Annex A).
| Parameter | What it measures | 4 (A) | 3 (B) | 2 (C) | 1 (D) | 0 (F) |
|---|---|---|---|---|---|---|
| Decode | The reference algorithm finds the right number of bars and spaces and decodes them, check digit included | pass | — | — | — | fail |
| Symbol contrast (SC) | Rmax − Rmin: lightest space against darkest bar | ≥ 70 % | ≥ 55 % | ≥ 40 % | ≥ 20 % | < 20 % |
| Minimum reflectance | At least one bar no lighter than half the lightest space | Rmin ≤ 0.5 Rmax | — | — | — | Rmin > 0.5 Rmax |
| Minimum edge contrast | The weakest bar-to-space transition | ≥ 15 % | — | — | — | < 15 % |
| Modulation (MOD) | Minimum edge contrast divided by symbol contrast | ≥ 0.70 | ≥ 0.60 | ≥ 0.50 | ≥ 0.40 | < 0.40 |
| Defects | Spots in spaces, voids in bars: worst ripple divided by symbol contrast | ≤ 0.15 | ≤ 0.20 | ≤ 0.25 | ≤ 0.30 | > 0.30 |
| Decodability | Margin left in bar and space widths before a decoding error | ≥ 0.62 | ≥ 0.50 | ≥ 0.37 | ≥ 0.25 | < 0.25 |
For EAN/UPC, GS1-128 and ITF-14, GS1 adds the quiet zone as a pass-or-fail check: a scan whose measured margin is too narrow is graded 0 (GS1 General Specifications, section 5.12.5.1.2).
Reading the overall grade
One bad line does not sink a barcode; a recurring fault does. Nine scans graded 2 and one that crosses an ink spot and grades 0 give (9 × 2 + 0) ÷ 10 = 1.8, a C: pass. A smear covering a third of the bar height catches three scans: (7 × 2) ÷ 10 = 1.4, a D: fail.
Letters come from the older ANSI method, with identical thresholds. A grade means nothing without the aperture and wavelength written next to it.
| Letter | Overall grade | Meaning in practice |
|---|---|---|
| A | 3.5 to 4.0 | Target for every barcode |
| B | 2.5 to 3.4 | Comfortable margin |
| C | 1.5 to 2.4 | GS1 minimum for EAN/UPC at retail |
| D | 0.5 to 1.4 | Accepted only for ITF-14 on brown board (0.5) |
| F | below 0.5 | Fail |
Source: GS1 Australia, ISO verification fact sheet, table 9.
The retail rule
GS1 asks an EAN-13 for grade 1.5 at 6 mil and 660 nm, between 80 and 200 % of nominal size
For trade items scanned at retail point of sale, GS1 symbol specification table 1 sets the EAN-13 at an X-dimension of 0.264 mm minimum, 0.330 mm target and 0.660 mm maximum, quiet zones of 11X on the left and 7X on the right, and a minimum quality of 1.5/06/660 (GS1 General Specifications, release 26.0, table 5-44). Read the notation left to right: grade 1.5, aperture reference 06 (a 0.150 mm spot), light at 660 nm ± 10 nm. Older reports show 670 nm; the current specification says 660.
The X-dimension is the width of the narrowest bar or space, the module, and everything scales with it. An EAN-13 is 95 modules of bars plus 18 of quiet zone — 113 X, so 37.29 mm wide at 0.330 mm, with bars 22.85 mm high. The 37.29 × 25.93 mm often quoted (GS1 UK) includes the digits; the General Specifications now count bar height only.
| Size | X-dimension | Width, quiet zones included | Minimum bar height | Left quiet zone (11X) | Right quiet zone (7X) |
|---|---|---|---|---|---|
| 80 % — minimum | 0.264 mm | 29.83 mm | 18.28 mm | 2.90 mm | 1.85 mm |
| 100 % — nominal | 0.330 mm | 37.29 mm | 22.85 mm | 3.63 mm | 2.31 mm |
| 150 % | 0.495 mm | 55.94 mm | 34.28 mm | 5.45 mm | 3.47 mm |
| 200 % — maximum | 0.660 mm | 74.58 mm | 45.70 mm | 7.26 mm | 4.62 mm |
Three details decide real jobs. The bar height SHALL NOT be truncated below the minimum. A verifier fails any scan whose measured quiet zone is under 10X left or 6.2X right of an EAN-13 (table 5-63). And on-demand thermal or laser printers may go down to 75 % (0.250 mm), because an exact 80 % is not printable at 203 or 300 dpi — an allowance no other process gets (section 5.12.6).
2D codes
QR codes and DataMatrix are graded under ISO/IEC 15415, on parameters that suit a grid
A matrix code is read as an image, so ISO/IEC 15415 (third edition, 2024) grades what a camera needs: symbol contrast, modulation, fixed pattern damage (finder and timing patterns), axial and grid non-uniformity (module spacing) and unused error correction (redundancy left). Print growth is reported but not graded. Each image takes its lowest parameter grade (GS1 2D verification guideline, section 7).
| Grade | Symbol contrast | Axial non-uniformity | Grid non-uniformity | Modulation | Unused error correction |
|---|---|---|---|---|---|
| 4 (A) | ≥ 0.70 | ≤ 0.06 | ≤ 0.38 | ≥ 0.50 | ≥ 0.62 |
| 3 (B) | ≥ 0.55 | ≤ 0.08 | ≤ 0.50 | ≥ 0.40 | ≥ 0.50 |
| 2 (C) | ≥ 0.40 | ≤ 0.10 | ≤ 0.63 | ≥ 0.30 | ≥ 0.37 |
| 1 (D) | ≥ 0.20 | ≤ 0.12 | ≤ 0.75 | ≥ 0.20 | ≥ 0.25 |
| 0 (F) | < 0.20 | > 0.12 | > 0.75 | < 0.20 | < 0.25 |
The 2D grade is written grade/aperture/light/angle; an asterisk after it flags extreme reflectance around the symbol — a foil edge, a glossy border — which GS1 says should normally count as a fail (General Specifications, 5.12.5.10.7). GS1 sets 1.5 as the minimum for GS1 DataMatrix and GS1 QR Code. Module sizes and quiet zones for a QR read at the till are in GS1 Digital Link and QR codes on labels.
Proof of quality
A scanner answers yes or no; a verifier says how close the code is to failing
A scanner is built to decode a poor barcode; a verifier is built to measure it, with a fixed aperture, a fixed wavelength and a calibrated reflectance scale, so that another verifier reproduces the grade. Verifiers are tested against ISO/IEC 15426-1 (linear) and 15426-2 (2D) and checked with calibrated conformance test cards (GS1 General Specifications, 5.12.5). A phone app that reads the code proves the data is right, nothing more.
GS1 is as clear about what a verifier does not tell you: most do not measure bar height, none checks that the digits underneath match the bars or that the number is the right product, and a perfect code at the press can still be scratched, frozen or soaked on the way to the shelf.
Verify in the final configuration — laminated, on the pack, contents behind it. On a transparent material, verify on a dark backing and on a light one and keep the poorer result (section 5.12.5.2). And use the specified aperture: too small exaggerates defects, too large hides them and lowers modulation.
- Scanner
- decodes or not
- Verifier
- grades 4 to 0
- Linear standard
- ISO/IEC 15416:2016
- 2D standard
- ISO/IEC 15415:2024
- Verifier conformance
- ISO/IEC 15426-1 and -2
- EAN-13 setting
- 0.150 mm · 660 nm
- Does not measure
- bar height, digits, data
Why a barcode won’t scan · 1
Why a barcode won’t scan, part one: contrast — red bars, kraft, metal, clear film and gloss
Most scan failures are contrast failures, and they follow from one fact: scanners and verifiers light the code with red light around 660 nm, so anything that reflects red reads as white. GS1 says red, orange and yellow codes will be difficult to decode and that black on white is the best combination (GS1 retail 2D guideline, 4.6.5). Black, dark blue and dark green bars absorb red and read dark; dark bars on a red or yellow ground can work, because the ground reads light — verify rather than trust the screen.
White paper reflects over 75 % of the light and black ink 3 to 8 %, so black on white reaches grade 4 for symbol contrast almost automatically. Brown board reflects 27 to 40 %: even with the blackest ink, symbol contrast cannot beat grade 1, so the symbol cannot beat 1.0 — below the 1.5 an EAN-13 needs (GS1 General Specifications, 5.12.5.11). A pale brown ink on white fails on minimum reflectance instead: in GS1’s example the lightest space reflected 83 %, so the bars had to be 41.5 % or darker; they measured 43 %.
| Situation | Parameter that fails | Why | Fix |
|---|---|---|---|
| Red, orange or yellow bars | Symbol contrast, decode | They reflect red light like the ground | Black or dark blue bars |
| Kraft or recycled brown paper | Symbol contrast, defects | Low, uneven reflectance; fibres read as spots | White panel under the code, or the code on a white coated label |
| Metallic or mirror film | Symbol contrast, modulation | Mirror metal sends light away from the sensor: reads dark | Opaque white panel under the code |
| Clear film | Symbol contrast, modulation | The contents show through the spaces | White underlay; verify on dark and light backing |
| Gloss lamination or varnish | Symbol contrast, reading at the till | Gloss can read darker than expected and glare at imagers | Matt lamination over the code |
| Reversed code, light bars on dark | Decode | Linear codes expect dark bars on light | Dark on light, always |
On our range: plan a white panel on silver and metallic labels (always laminated, gloss or matt) and a white underlay on clear polyester; over a code, choose matt lamination. Variable barcodes are not offered online on creative or eco-friendly papers, for the reasons in this table — see variable data, explained.
Why a barcode won’t scan · 2
Why a barcode won’t scan, part two: bar gain, print direction, height, quiet zones and curves
When the contrast is right and the grade is still low, the cause is almost always dimensional, and each fault shows up in a specific parameter.
Bar gain and bar width reduction
Ink spreads: bars print wider than the master and spaces narrower — GS1’s example is a 0.9 mm master bar printing at 1.0 mm. EAN decoding measures edge to similar edge, so uniform gain is largely tolerated, except in the digits 1, 2, 7 and 8, where decodability falls first. The cure is bar width reduction built into the master for the press. Two faults undo it: rescaling a barcode unevenly in layout software, and pasting it as a low-resolution image.
Print direction: picket fence or ladder
Some processes give much better results when the bars run in the direction of print, along the web (GS1, section 6.2.3.1); on flexography a stretched plate distorts bars that cross it. Thermal printers show it clearly. With bars along the feed — “picket fence” as the label leaves the printer — each bar is drawn by the same heating dots. In “ladder”, every bar is a row of dots switched on and off, heat lingers and bars fatten, so rotated codes must print more slowly.
The dot pitch sets the sizes available: at 203 dpi a module is 0.250 mm (75.8 %) or 0.375 mm (113.6 %); at 300 dpi, 0.333 mm (GS1 table 5-60). Printer and ribbon pairings are in direct thermal vs thermal transfer.
Height truncation
A barcode cut in height to fit a narrow label is the classic code that verifies well and fails at the checkout: most verifiers do not measure height, but an omnidirectional till needs it to catch the code at an angle. GS1 allows truncation only if there is absolutely no possibility of printing a full-size code, never below the table height. Reduce the X-dimension evenly towards 80 %, enlarge the label, or check whether an EAN-8 is authorised for the pack.
Quiet zones
GS1 calls quiet zones a frequent source of scanning problems: a frame drawn round the code, text pushed against it, a symbol so close to the die-cut edge that register variation eats the margin. Draw the quiet zone as a keep-out box — 3.63 and 2.31 mm at nominal size — inside the safety area described in preparing print-ready files.
Curved packs
On a bottle or a jar, a barcode with upright bars wraps round the curve and its ends disappear. GS1’s rule: the angle between the tangents at the centre of the code and at its outer guard bar must stay under 30°; beyond that, turn the code to ladder, bars horizontal, so the curve only shortens the bars (section 6.2.3.2).
| Container diameter | Largest X, EAN-13 upright | What it means |
|---|---|---|
| 45 mm or less | not allowed | Turn the code to ladder, bars horizontal |
| 50 mm | 0.274 mm | Permitted, not recommended on curves |
| 60 mm | 0.330 mm | Nominal size fits |
| 70 mm | 0.386 mm | About 117 % |
| 90 mm | 0.495 mm | 150 % |
| 120 mm or more | 0.660 mm | Any size up to 200 % |
Which label sizes leave room for a barcode on common bottles and jars: bottle and jar label sizes.
Checklist
Checklist: ten points to check before you approve the proof
- The right number. GTIN from your GS1 allocation, check digit recalculated, digits under the bars identical to the data.
- The right symbology. EAN-13 or UPC-A for a retail till; ITF-14 is not for point of sale.
- Size. X-dimension between 0.264 and 0.660 mm; 0.330 mm unless space forbids.
- Height. Bars at least the minimum for the chosen X — 22.85 mm at nominal size — never truncated.
- Quiet zones. 11X left and 7X right, clear of text, frames and the die-cut edge.
- Colour. Black or dark blue bars on a white or pale ground; no red, orange or yellow bars; never reversed.
- Substrate. White panel under the code on kraft, metallic, dark designs and clear film.
- Finish. Matt over the code, not gloss.
- Placement. Inside the safety area, on the flattest face, bars horizontal on narrow bottles.
- Proof. Code checked at final size on the proof; a verification report arranged at quote stage if the retailer asks for one.
FAQ
Barcode print quality — what customers ask us
What is the minimum barcode grade for retail?
For an EAN-13 or UPC-A scanned at a retail till, GS1 sets a minimum overall grade of 1.5 (C), measured with a 6-mil (0.150 mm) aperture under 660 nm light, written 1.5/06/660. The target is grade 4 (A), and some retailers set a higher minimum, so check theirs before the run.
Why does my barcode scan with a phone but fail verification?
A phone is designed to decode a poor barcode; a verifier measures how far the code is from failing. A symbol can decode perfectly and still grade D because of low contrast, spots in the spaces, bar gain or a narrow quiet zone — faults that older or faster till scanners do not forgive.
What do the grades A, B, C, D and F mean on a verification report?
They are letter equivalents of the ISO numeric scale: 3.5 to 4.0 is A, 2.5 to 3.4 B, 1.5 to 2.4 C, 0.5 to 1.4 D and below 0.5 F. The overall grade is the average of at least ten scan grades, each scan taking the lowest of its seven parameters.
Can a barcode be printed in colour?
Within limits. Scanners use red light around 660 nm, so red, orange and yellow bars disappear. Black, dark blue and dark green bars on a white or pale ground scan well; dark bars on a red or yellow ground can work but should be verified. Never print light bars on a dark ground.
How small can an EAN-13 barcode be printed?
At 80 % of nominal size: an X-dimension of 0.264 mm, 29.83 mm wide including quiet zones, bars 18.28 mm high. Only on-demand thermal and laser printers may go down to 75 %. Cutting the bars below the minimum height is not allowed.
Why does a barcode fail on a bottle or a jar?
The ends of an upright barcode disappear round the curve. GS1 limits the angle between the centre and the edge of the code to 30°: for an upright EAN-13, a container of 45 mm diameter or less requires horizontal bars, and at 60 mm the nominal 0.330 mm size is the largest allowed upright.
Do you supply an ISO barcode verification report?
We print to GS1 specifications and show every static barcode at final size on the proof. If your retailer requires a verification report, tell us at quote stage through the custom request form, with the minimum grade they ask for.
Official texts: GS1 General Specifications, release 26.0 (January 2026), sections 5.12 and 6.2 · GS1 Bar Code Verification for Linear Symbols, version 4.3, Annex A · GS1 1D Barcode Verification Process Implementation Guideline, 2015 · GS1 2D Barcode Verification Process Implementation Guideline, 2015 · GS1 Australia, ISO verification fact sheet, 2019 · ISO/IEC 15416:2016 — linear symbols · ISO/IEC 15415:2024 — two-dimensional symbols
Still unsure?
Ask the person who makes them
The guide covers the general case — your label lives on a real product. Describe it in two lines and a label specialist (not a bot) answers within 2 working hours.
All guides
Everything else we have written down
- Choosing your label material
- Choosing your label adhesive
- Bottle and jar label sizes
- EU food labelling — the INCO rules
- EU wine label rules
- Environmental claims and sorting labels
- Preparing print-ready files
- Variable data, explained
- Label material comparison chart
- EU vs UK labelling requirements
- What drives the price of a label
- Label glossary
- Direct thermal vs thermal transfer
- GS1 Digital Link and QR codes
- Barcode print quality and ISO 15416 grades — you are here
Barcodes that scan at the till, printed from 100 labels.
EAN-13, Code 128 and GS1 codes. Static codes included; numbering from + £96 per run.