Why Do Barcodes Misread?
So much technology is involved with barcodes, from designing and printing to scanning and decoding. It is often overlooked that this is as much art as science. It can be difficult to understand why a barcode misreads. For example, in this sample, the right side human readables do not match the data encoded in the barcode.
Sometimes a misread is one small step from a non-read. Often, but not always, the cause is progressively deteriorating print quality during a print run. Actually a barcode non-read can be the best possible outcome. Consider the ramifications of a barcode misread: a barcode that scans and decodes perfectly—except that it is the wrong data. This does happen and it is a train wreck. In a retail situation the store neither knows what it sold nor what to replenish. In other environments there are equally disastrous results. A non-read is a better problem than a misread. Nevertheless, it is a problem.
A Non-Read is Better Than a Misread
Poor print quality is the common cause of a barcode problem. This does not always cause a non-read. Differences in scanner aggressiveness can cause scanners to substitute characters and misread; others may fail to read the symbol altogether.
Misreads in the form of a perfectly scanning but wrong barcode can be caused by scanner number substitution. The printed barcode image is wrongly decoded by the scanner. A poor quality printed barcode contributes to this, but barcode structure can be a factor. UPC is vulnerable to number substitution of 1 and 7, and 2 and 8 characters. This is because UPC is a modular symbology (learn more here) and the dimensional differences between the elements (bars or spaces) in these pairs is 1/13th of a module or .001” (at the nominal 100% magnification). The differences are even smaller in an 80% UPC. Usually (but not always) when a substitution error like this occurs, a check digit error also occurs, causing a decode failure.
Structural Problems Cause Non-Reads
This sample is a non-read which is the best possible problem to have. The cause: there is a bar missing on the right half of the symbol. There should be 30 bars in all, but here there are only 29. No scanner should decode this UPC.
Low ISO Decodability scores can contribute to barcode misreads, especially when they are caused by pixel rounding in the print process. This is most common in a thermal or thermal transfer printing but it can also occur in ink jet, DOD and other digital printing systems. Pixel rounding is caused by a resolution mismatch between the barcode design file and the printer: when the instructions being sent from the computer cannot be carried out by the printer, the printer relocates bars or spaces and/or modifies bar or space widths. This can confuse the scanner into misreading the modified pattern of bars and spaces.
Decodability due to pixel rounding might be the cause of this left-side mismatch. Each of encoded left side 3’s sit below their respective pattern of two bars and two spaces–but see how those two bar/space patterns are different. They should be identical.
Software Problems Can Cause Scanning Problems
Scanners can also misread otherwise acceptable barcodes. Most often the cause can be traced to damaged or dirty optics, but faulty decode algorithms area known cause, albeit a rare one. Older, high-mileage scanners such as lasers tend to be more prone to misreads than newer, more sophisticated digital area imager scanners.
Once a barcode misread has been detected, how can you isolate the cause? Here is another situation in which an ISO compliant verifier is an essential tool. Even in situations where a scanner misreads or fails to read a barcode, a verifier can often capture the data and analyze it. High quality verifiers can interpolate where decode takes place—they are not locked in to a single half-way point or global threshold reflectance level.
If a calibrated, ISO compliant verifier decodes and assigns an acceptable grade to a misreading barcode, one can be confident the cause lies with the scanner and not the barcode itself. This is yet another example of how a scanner cannot effectively serve as a verifier.