The coder's screen shows a green tick. The line log says "printed". The batch report says every pack was coded. So is every code on the market readable, correct and good enough for a retailer's scanner? Not necessarily — and the gap between those statements is where many serialization problems hide.
This guide separates four facts that are often blurred together, and explains what each one can and cannot tell you.
Four different facts
Think of sending a parcel. "I handed it to the courier" is not the same as "the courier says it was delivered", which is not the same as "my customer opened it and it was intact", which is not the same as "an inspector checked the contents against the order". Each statement is true at a different level.
On a packaging line, the equivalent levels are:
| Level | What it means | Who reports it |
|---|---|---|
| 1. Command sent | Line software sent this code to the coder | Line software |
| 2. Printer acknowledged | The coder reports it received, buffered or printed the message | Coder |
| 3. Decoded and matched | A camera read a code on the pack and it carried the expected data | Inline camera or reader |
| 4. Graded | The printed symbol was measured against ISO/IEC 15415 or 15416 and given a quality grade | Barcode verifier |
Each level answers a different question, and each one can be true while the next is false.
Level 1 and 2: what the printer knows
When line software sends a code to a coder, the coder normally acknowledges it — "received", "queued", "printed", depending on the model. These messages keep the software and printer in step.
But the coder can only report on itself. It does not see the pack. Common situations where the coder says "printed" and the pack disagrees:
- a partially blocked nozzle drops a column of dots;
- the pack was skewed or missing, and the ink landed on the conveyor;
- the ink smudged before it dried;
- the print landed over a seam, fold or varnish patch;
- the message printed, but it was the wrong message because the queue shifted by one.
In every one of those cases, the printer's log is honest — and the code is still unusable.
Level 3: what a camera decode proves
An inline camera after the coder images the pack and decodes the code. Line software compares the result with what it expected. If the 2D barcode decodes and the data matches the serial sent for that pack, you have strong evidence that a readable code with the right identity is on this pack.
That is a big step up, and on a serialized line it should happen for every single pack. Packs that do not decode, or decode to the wrong value, are rejected. We explain how in how cameras and barcode readers verify product identity.
What a camera decode does not tell you is how good the print is. A code can decode on a well-tuned camera, with controlled lighting and a fixed distance, yet be marginal for a handheld warehouse scanner or a shop's checkout imager.
Level 4: what a print-quality grade proves
Formal barcode verification means measuring a printed symbol with a verifier — a calibrated instrument — and grading it against an ISO standard: ISO/IEC 15415 for 2D symbols and ISO/IEC 15416 for linear barcodes. The GS1 General Specifications reference these standards.
A grade looks at qualities such as contrast, how cleanly the modules are formed, damage to the finder patterns and whether the quiet zone is clear. It produces a result that means the same thing in any plant, with any verifier calibrated to the standard.
For general retail, GS1 sets a minimum print-quality grade of 1.5 (C). In GS1's notation this is written with the measuring aperture and light wavelength — for example "1.5/06/660" for EAN/UPC barcodes and "1.5/12/660" for retail 2D codes such as GS1 DataMatrix or a QR code carrying a GS1 Digital Link. GS1 also sets size ranges for retail 2D symbols and quiet-zone rules. A code that decodes but falls below the required grade may still cause no-reads at a retailer's POS.
Why the words get mixed up
Part of the confusion is vocabulary. People use "verified" for at least three things:
- verified print — the camera matched the expected code (level 3);
- barcode verification — a quality grade from a verifier (level 4);
- product verification — checking a product's identity or status with the brand, often by a consumer scan.
None of these is the same as authenticity. A perfectly graded code proves the print is good, not that the product is genuine. That distinction is covered in product verification vs authentication.
In your own specifications, say which level you mean. "100% verified" in a supplier contract should state whether it means every pack decoded and matched inline, or every pack graded — the second is far rarer and more expensive.
A worked example
Maison Ardent, a fictional perfume house, runs Line 3 at 120 boxes a minute.
- Every pack: the coder acknowledges each serial; the inline camera decodes and matches every box; mismatches and no-reads are rejected, and the reject is confirmed by a chute sensor.
- Every run start and changeover: the quality team takes sample boxes to an offline verifier and records the ISO/IEC 15415 grade.
- During the run: further samples are graded at set intervals. If grades trend down — say, a nozzle wearing — maintenance acts before the camera starts rejecting.
When a retailer later asks "are your 2D codes printed to specification?", Maison Ardent can show graded samples. When the quality team asks "did any unreadable box ship?", it can show 100% inline decode and confirmed rejects. Different questions, different evidence.
What this means for system design
Line software should record each level separately rather than collapsing them into one "printed" flag. That lets you decide, deliberately, which level triggers which action:
- acknowledgement keeps the coder sequence in step;
- camera match decides whether a pack can be packed into a carton;
- grades drive quality decisions and customer evidence.
A useful rule of thumb: never let a lower level of evidence be recorded as a higher one. The full chain of evidence on a line is set out in the journey of a serialized product through a packaging line, and the printer side in what an industrial coder does.