addaScan home
Assessment
Insights

Why wrong expiry dates still leave the line, and how to stop them

By Frank GuoPublished Updated 10 min read

// In short

Most wrong expiry dates are not printing faults. The coder prints exactly what it holds, and nobody changed what it holds at the day or shift change, or the wrong recipe was loaded. A camera stops those packs only if it knows the date that should be printed. This article covers how dates go wrong, where the expected date must come from, how to prove the station works, and what it cannot prove.

// Key takeaways

  • Most wrong dates start in the process, not the printer: a date not moved on at the day or shift change, the wrong recipe or SKU, or a hand-typed message.
  • OCR reads what is printed; OCV compares it with the date expected for the run, and only that comparison catches a clean, legible, wrong date.
  • The expected date has to come from the order data (PLC, MES or recipe), not be typed into the camera, or the station repeats the operator’s mistake.
  • Challenge packs at start-up and after changes prove the station still rejects; OCR does not prove print grade or that the shelf life was right in the first place.

How do wrong expiry dates get onto packs?

Coders are reliable at printing the message they hold. Most wrong dates come from the message, not the print. The table lists the common ways a date goes wrong and whether an expiry date inspection station catches each one.

How wrong expiry dates reach packs, and what catches them
How the date goes wrongWhere it startsCaught by OCV against the expected date?What else is needed
Date not moved on at the day or shift changeA manual coder message, or a coder clock set wrongYes, if the expected date comes from the order, not from the coderA written rule for which date a night shift prints
Wrong shelf life after a changeoverRecipe or SKU mix-up: the new product runs with the old offsetYes, if the expected date follows the product actually runningRecipe check at changeover; line clearance
Typing error in the messageOperator edits the coder text by handYesFewer manual edits; messages selected from the recipe
Code missing or partialCoder out of ink, blocked nozzle, worn print head, no triggerYes: missing or incomplete characters failCoder maintenance; alarm on repeated failures
Smudged or broken charactersWet ink touched by guides, condensation on chilled packsYes, within print limits set on your samplesGuide and drying layout; tested on real chilled packs
Wrong format or wordingMonth and day swapped, wrong prefix such as “use by” for “best before”Yes, if the expected string includes the format and prefixApproved format per product, held in the recipe
Wrong shelf life in the product masterProduct data, before the lineNo: print and expected value agreeShelf-life approval and data review

Two of these produce a code that is perfectly printed and wrong. A person glancing at the pack sees a sharp, legible date and moves on. That is why date code inspection has to compare the print with something, not just read it.

Why do manual checks and the coder itself not catch them?

Manual checks happen at intervals: at start-up, at changeover and at set times in between. A date that goes wrong just after a check runs until the next one, and every pack in between has to be found again. A camera checks every pack, so a wrong date is caught on the first one.

Manual checks also tend to test the wrong thing. The question on the sheet is often “is the code present and legible?”, and a wrong date passes it. The useful question is “is this the date for this product, today?”, and that needs the order in front of the person checking. The label and date code check sheet is set out that way.

The coder cannot catch its own mistake. If it holds yesterday’s date, it prints yesterday’s date perfectly.

What does OCR check, and what does OCV check?

In short: OCR reads the characters and reports what is printed; OCV starts from the text that should be printed and checks that it is there, complete and legible. For expiry dates, OCV is the check that stops a wrong date, because the line already knows what the date should be. Print quality limits catch faint, broken and smeared characters.

How the camera, lighting and reject are arranged, and what a pass and a reject look like, is explained on OCR/OCV inspection of date codes, batch codes and barcodes. The rest of this article is about the part that decides whether the station catches wrong dates at all: the expected value.

Where must the expected date come from?

OCV is only as good as the value it compares against. There are four common choices, and they catch different faults.

Where the expected date for OCV can come from, and what each choice catches
Where the expected date comes fromWhat it catchesWhat it misses
Typed into the camera at each changeoverPrint faults, if the operator typed it rightThe same typing or rollover mistake made at the coder: two entries, one person, one error
Read back from the coderMissing, partial and smudged printA wrong message the coder holds: the camera checks the coder against itself
Sent by the PLC from the recipe of the product runningWrong date, wrong product offset, print faultsA wrong shelf life in the recipe itself
Calculated by the MES from the order: production date plus approved shelf lifeWrong date, wrong offset, print faults, rollover errorsA wrong shelf life in the product master

The first two are common because they are easy, and they are the reason some stations pass wrong dates. If the operator types the date into the coder and again into the camera, a rollover mistake is made twice. If the camera reads its expected value back from the coder, it checks the coder against itself.

The better choices take the expected date from the order: the PLC sends the date for the recipe actually running, or the MES calculates it from the production date and the approved shelf life. Then a wrong message at the coder and a wrong product at changeover both fail. The station should also report its active recipe, so the PLC can compare it with the product on the line, as the PLC and reject integration guide describes.

One rule has to be written down before any of this works: which production date a shift that runs past midnight prints, and when the expected date moves on. If the rule lives only in people’s heads, the camera and the coder will disagree at the worst moment.

How should an expiry date checking station be set up?

An expiry date checking machine is usually not a separate machine. It is a camera, a light, a trigger and a reject placed after the coder, linked to the line PLC. These choices decide whether it stops wrong dates:

  • Position. After the coder and before the packs are cased, so a failed pack can still be removed on its own.
  • Expected value. From the PLC, MES or recipe, as above, including the format and the wording before the date.
  • Reject and confirmation. Every failed pack is removed, and a confirmation sensor proves it left the line.
  • Repeated failures. Several failures in a row raise an alarm or stop the line, because they usually mean an empty coder or a wrong message, not one bad pack.
  • Locked limits and recipes. Only authorised staff change print limits or expected-date rules, and changes are logged.
  • Records per batch. Results and reject images are kept against the batch code, so you can show what was checked if a question comes later.

The same pattern appears in our line solutions: yoghurt cups, bread bag closures, can ends and pouches, each built on HIKROBOT hardware.

How do you prove the station still catches wrong dates?

A station that has rejected nothing for a week is either working or broken, and the reject count alone cannot tell you which. A challenge test answers that: known faulty packs are passed through at production speed, and each one must be rejected and confirmed.

  • What to include. A pack with yesterday’s date, one with another product’s date, one with the day and month swapped, one with no code and one with a smudged code.
  • When. At start-up, after every changeover, after coder maintenance, and after any change to the station, as your risk assessment sets.
  • The rollover. Test what happens when the expected date moves on: run a pack with the old date just after the change.
  • The record. Who ran it, when, which packs, and the result. The challenge test record template covers this.

What does OCR inspection not prove?

A pass at the camera means the expected date was printed and legible at that point. It does not mean:

  • That the shelf life is right. If the product master holds the wrong shelf life, the expected date and the print agree, and the pack passes.
  • A print grade. Print limits are set on your samples; they are not a formal grade. For barcodes, formal grading needs a verifier, as the barcode verification guide explains.
  • That the code survives distribution. Rubbing in the case or in transit happens after the station; that needs a rub test on the packaging.
  • That the outer case matches. The case label is checked at a carton station; see carton and pallet verification.

What do South African rules say about date marking?

The rules set what must be on the pack, not how it is checked; none of them requires a camera. A date code inspection station is one way to confirm, on every pack, that the required date is there, correct and legible.

  • R146, regulation 12: the date marking must be clearly indicated, preceded by “best before”, “use by” or “sell by” (the only abbreviation allowed is “BB”), may not be removed or altered, and numeric dates are written day, month, year (R146).
  • R146, regulation 11: every container must carry a batch number so the batch is identifiable and traceable; a batch is at most 24 hours of production under the same conditions (R146).
  • Draft R3337 (April 2023): a draft replacement for R146, not in force. It proposes date formats with keys such as (DD/MM/YYYY), dates permanently printed rather than applied as stickers, and the date rules taking effect six months after a final version is published (draft R3337). If it is finalised, recipes and expected-date formats may need to change quickly.
  • R638, regulation 10: food premises need a traceability system and a recall procedure (R638).
  • Recalls: the recall notification the National Consumer Commission asks for includes product tracking information such as batch numbers (dtic/NCC recall presentation), and the NCC publishes recall notices (NCC product recalls). Product recalls in South Africa explains how a legible, correct code limits a recall to the affected batches.

Frequently asked questions

What is an expiry date checking machine?
Usually a camera station rather than a separate machine: a camera, light, trigger and reject after the coder, linked to the line PLC. It reads the date on every pack, compares it with the date expected for the run and rejects packs whose date is wrong, missing or illegible.
Can OCR inspection check that the expiry date is correct, not just readable?
Only if the station is given the date that should be printed. Reading alone (OCR) reports what is there. Comparing with the expected date (OCV) is what rejects a clear but wrong date, and the expected date should come from the PLC, MES or recipe rather than be typed in.
How often should a date code inspection station be challenge tested?
As your risk assessment sets. Common points are start-up, every changeover, after coder maintenance and after any change to the station. Include a pack with the previous day’s date and test the moment the expected date moves on.
Does expiry date inspection work on chilled or wet packs?
Often, but condensation can blur both the print and the image, so it is tested on real chilled samples at the sample test. Lighting is chosen for wet or shiny film, and the station sits where the code is in view and stable.
Does South African law require a camera to check expiry dates?
No. R146 requires the date marking to be clearly indicated and not altered; it does not say how a producer checks it. A camera station is one way to confirm the outcome on every pack, alongside manual checks and records.
// About the author

Frank Guo is addaScan’s technical lead and writes the technical articles on this site. More about the team → LinkedIn

// Next step

Are wrong dates getting past your coder?

Tell us which coder you run, where the correct date is held, and send a few coded packs, including faulty ones. We will tell you how a station would get the expected date and what it can check.