// 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 the date goes wrong | Where it starts | Caught by OCV against the expected date? | What else is needed |
|---|---|---|---|
| Date not moved on at the day or shift change | A manual coder message, or a coder clock set wrong | Yes, if the expected date comes from the order, not from the coder | A written rule for which date a night shift prints |
| Wrong shelf life after a changeover | Recipe or SKU mix-up: the new product runs with the old offset | Yes, if the expected date follows the product actually running | Recipe check at changeover; line clearance |
| Typing error in the message | Operator edits the coder text by hand | Yes | Fewer manual edits; messages selected from the recipe |
| Code missing or partial | Coder out of ink, blocked nozzle, worn print head, no trigger | Yes: missing or incomplete characters fail | Coder maintenance; alarm on repeated failures |
| Smudged or broken characters | Wet ink touched by guides, condensation on chilled packs | Yes, within print limits set on your samples | Guide and drying layout; tested on real chilled packs |
| Wrong format or wording | Month and day swapped, wrong prefix such as “use by” for “best before” | Yes, if the expected string includes the format and prefix | Approved format per product, held in the recipe |
| Wrong shelf life in the product master | Product data, before the line | No: print and expected value agree | Shelf-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 comes from | What it catches | What it misses |
|---|---|---|
| Typed into the camera at each changeover | Print faults, if the operator typed it right | The same typing or rollover mistake made at the coder: two entries, one person, one error |
| Read back from the coder | Missing, partial and smudged print | A wrong message the coder holds: the camera checks the coder against itself |
| Sent by the PLC from the recipe of the product running | Wrong date, wrong product offset, print faults | A wrong shelf life in the recipe itself |
| Calculated by the MES from the order: production date plus approved shelf life | Wrong date, wrong offset, print faults, rollover errors | A 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?
Can OCR inspection check that the expiry date is correct, not just readable?
How often should a date code inspection station be challenge tested?
Does expiry date inspection work on chilled or wet packs?
Does South African law require a camera to check expiry dates?
Frank Guo is addaScan’s technical lead and writes the technical articles on this site. More about the team → LinkedIn
Sources
- Regulations relating to the labelling and advertising of foodstuffs (R146, 2010), regulations 11 and 12 (gazette copy, read 2026-09-25)
- Draft labelling regulations R3337 (21 April 2023), regulations 8 and 77 – draft, not in force (Department of Health, read 2026-09-25)
- Regulations governing general hygiene requirements for food premises (R638, 2018), regulation 10 (gazette, read 2026-09-25)
- dtic / National Consumer Commission: product recall presentation (recall notification content) (read 2026-09-25)
- National Consumer Commission: product recalls (NCC recall listing, read 2026-09-25, status checked 2026-10-03)