An RFID reader does not measure inventory. It observes radio events. Between 10 and 200 times per second it reports that some tag was visible to some antenna, and it has no idea whether that tag is on a shelf, in a colleague's pocket, in the back of a van, or lying on the floor of the adjacent aisle.
The ERP, by contrast, needs assertions: this SKU, in this location, quantity plus one. The gap between observation and assertion is where inventory accuracy is won or lost, and no amount of reader tuning closes it. It has to be closed by deliberate data governance.
Why RFID data fails before the ERP ever sees it
Five mechanisms produce almost all bad data, and none of them are software bugs.
- Multiple reads: a tag in a read field is reported dozens of times per second. Without suppression, one garment becomes forty movements.
- Overlapping zones: two antennas cover the same doorway. The same carton is attributed to two locations.
- Missed reads: in dense pallets, 10–20 % of tags are invisible during a single pass. A missed read is indistinguishable from an absent item.
- Stale tags: a tag on a discarded box, a return bin, or a fitting-room floor keeps broadcasting a location that is no longer true.
- Human process: tags applied to the wrong SKU, at the wrong time, or reused across two items.
The four defect classes: duplicates, ghosts, misses and state errors
Classify defects before you try to fix them, because each one needs a different control.
- Duplicates: the same physical item generates more than one business event inside a window.
- Ghosts: an event refers to an item that is not physically in the location — stale tag, adjacent zone, or a tag left behind.
- Misses: an item is physically present but produced no event during the counting window.
- State errors: each individual event is valid, but the sequence is impossible — leaving before arriving, or two locations claiming the same item.
Duplicates and ghosts inflate stock. Misses deflate it. State errors corrupt history, which is worse because the error propagates into every future calculation.
Deduplication: rules that survive multi-reader overlap
Deduplicate at three levels, and keep the raw event log intact so you can always re-derive.
- Time window: the same EPC on the same reader within N seconds counts once. N is 3–10 seconds at a dock door, 30–60 seconds for a slow conveyor.
- Spatial group: antennas that cover the same physical zone belong to one reader group. A tag seen by three antennas in that group is one event, not three.
- Business window: the same EPC at the same location within a moving window (often 10–30 minutes) counts once, even across different readers.
Store the raw reads. Project the deduplicated events into a separate table, and treat that projection as recomputable. When a deduplication rule turns out to be wrong, you change the rule and replay — you do not hunt through the ERP for corrupted history.
Validation at the edge versus validation at the core
Split validation by what each layer can know cheaply.
- Edge validation: EPC format, checksum, company prefix, TID presence, reader and antenna identity, timestamp sanity. These reject malformed reads before they consume bandwidth.
- Core validation: does the SKU exist, is the location valid, is the quantity non-negative, is the transition legal for this operation type, is the user authorised.
- Never do core validation at the edge. The edge does not know the product catalogue, and the moment it tries, it caches stale master data.
A useful rule: the edge rejects physics errors, the core rejects business errors. Anything that is neither — a plausible read of a real tag at a real location — must be accepted or explicitly quarantined, never dropped.
Anomaly handling: quarantine, SLA and a human workflow
Exceptions do not disappear because nobody looks at them. Give them a home.
- Route every failed record into a quarantine table with the reason code, the raw payload and the timestamp.
- Publish a daily count per reason code. A reason code that grows for three days is a design problem, not an operator problem.
- Define a review state in the ERP: auto-accepted, needs review, rejected. Only the middle state requires human time.
- Set an SLA in hours, not days. An exception older than 48 hours has usually become a physical discrepancy.
- Every manual override must be logged with the user, the reason and the original value. Otherwise the governance system is the next source of bad data.
Metrics that tell you the pipeline is healthy
Six numbers, reviewed weekly, catch nearly everything before month-end does.
- Read rate per zone: successful reads divided by expected items in a controlled test. Below 95 % at a portal, fix the antenna before blaming the data layer.
- Duplicate ratio: raw reads divided by deduplicated events. A rising ratio means antenna overlap or a failing suppression rule.
- Unknown tag rate: EPCs with no matching SKU. This number is a direct measure of labelling discipline and of the company-prefix configuration.
- Latency p95 from read to ERP document. If p95 drifts, the queue is backing up and the backlog policy will start dropping events.
- Adjustment rate: manual inventory adjustments as a share of total movements. This is the honest measure of whether RFID is replacing human correction.
- Exception ageing: average hours an exception stays open. This one predicts month-end pain better than any other.
Operating model: who owns the data
Governance fails when it is nobody's job, and succeeds when it is one named person's job.
- A data steward owns the rules, the reason codes and the weekly review. Not the IT team, which owns the pipeline but not the semantics.
- Operations owns labelling quality and reader cleanliness. A dirty antenna window explains more missed reads than any software setting.
- Finance owns the adjustment policy and signs off the tolerance thresholds.
- The review meeting is 30 minutes, weekly, and looks at the same six metrics every time.
Bottom line
Readers produce events; ERP needs decisions. The layer in between is a product in its own right, and it deserves the same design effort as the antenna layout.
- Classify defects before fixing them.
- Deduplicate at time, space and business level, and keep the raw log.
- Validate physics at the edge and business rules at the core.
- Give every exception a home, an owner and an SLA.
- Review six metrics weekly, and treat a rising number as a design signal.
Do that, and inventory accuracy becomes a property of the system rather than a monthly argument.






