AWRA OpsHub Search
Item master governance

The most expensive record in your system is the second one for the same thing.

Nobody creates a duplicate on purpose. Somebody searched for “gloves”, the existing record was called “Latex Gloves Box 100”, and thirty seconds later there were two. Six months later the stock count disagrees with itself, neither reorder point fires, and the margin report averages two half-truths. This page is about the moment that could have been stopped, and about the nine fields nobody should be able to change quietly afterwards.

What a duplicate costs

A duplicate item is not a tidiness problem. It is a slow-acting arithmetic problem.

This is why the control matters and why it is so hard to sell: a duplicate that gets prevented leaves no trace, and a duplicate that gets created does not hurt for months. Here is the timeline, which anybody who has run a stocktake will recognise.

Day 0

It looks like nothing at all.

Two records, one with 240 units and a reorder point, one with zero and no thresholds. Nobody notices, because the new one is not in anybody's way yet. The store staff who created it start using it, because it is the one they can find.

Week 3

The reorder point stops working.

Consumption is now split between two records. The one with the threshold is consuming slower than expected, so it does not trip. The one being used has no threshold at all. Neither fires, and the first anybody knows is an empty shelf.

Month 2

Purchasing buys against the wrong record.

A buyer raises a request from the record they searched. It is the one with no history, so there is no price trail, no preferred supplier and no consumption pattern to size the order against. The order is a guess dressed as a requisition.

Month 4

Valuation quietly diverges.

Two buying prices, two markups, two average costs. Inventory valuation adds both and gets a number that is arithmetically correct and operationally meaningless. Margin per item is now an average of two partial pictures.

Month 6

The count finds it, and cannot fix it.

The stocktake counts one shelf of gloves and finds two records claiming it. Merging them retrospectively means deciding which movements belonged to which record — and the movements are the evidence, so you cannot simply delete one. Both stay, and the mess becomes permanent.

Month 6, later

Every report built on that item is now caveated.

Turnover, ABC banding, dead-stock aging, sales by item: all of them treat the two as separate. The figures are not wrong exactly; they are describing a catalogue that does not match the warehouse, and nobody remembers why.

The only cheap moment in that whole sequence is the first one. Thirty seconds of a person's attention at the point of creation, against six months of compounding arithmetic. That is the trade this feature exists to make.

Three checks at creation

One refuses, one warns, one looks somewhere nobody thinks to look.

A single blunt duplicate check is worse than none, because it is either so strict that it blocks legitimate variants — two genuine pack sizes, two grades of the same material — or so loose that it never fires. So there are three, with different severities, and the strict one is deliberately narrow.

Refused

Exact name and category

The same name in the same category is not a variant of anything. It is the same item, typed twice, and it is blocked outright rather than warned about. This is the narrow, unarguable case, and keeping it narrow is what makes the block acceptable.

100% Identical name within the same category, refused at save
Warned

Near-duplicate, scored

Above eighty-six per cent similarity the candidate is surfaced beside the record it resembles, with that record's stock, barcode and thresholds shown. The person creating decides — because “box of 100” versus “box of 50” is a legitimate pair and no algorithm should be allowed to rule on it.

86% Similarity threshold, checked against up to 50 candidates
Collision

Barcodes, across items and assets

The check nobody expects and everybody needs. A barcode is checked against the item catalogue and the asset register together, because both are scanned by the same handset — and a code that resolves to two different things makes the scanner unusable at exactly the moment it matters.

2 registers Items and assets checked in one pass, not separately

Why the barcode one is the sleeper. Most systems keep item barcodes and asset tags in separate worlds, each unique within itself. Then somebody scans a code in the warehouse and the app has to guess which register the person meant. Checking both at creation is a small piece of validation that prevents an unfixable-feeling problem in the field, and it applies to categories too: a category can be told to require specific attributes before an item in it can be saved at all.

Nine fields, held for approval

Some edits change what an item is. Those are not ordinary edits.

Fixing a spelling mistake in a description is housekeeping. Changing an item's inventory account moves where its value lands in your accounts. Changing its tracking mode changes what the system will let you do with the stock you already hold. Nine fields are in the second category, and a change to any of them is held until somebody with the authority to approve it does.

Field
Why changing it is not housekeeping
Barcode / QR code

The physical link between the shelf and the record. Change it and every label already printed, every scan a handset makes and every reference on an existing document points at a code that no longer resolves. This is the field most often changed for an innocent reason with the widest consequences.

Category

Drives reporting groupings, ABC banding, required-attribute rules and often the duplicate check itself. Recategorising an item retrospectively changes what every historical report says about that group.

Inventory account

Where the item's value lands in your chart of accounts. Changing it changes your balance sheet, and doing so mid-period gives you two accounts each holding part of the truth.

Tax treatment

Decides how the item is taxed on a sale and what appears on a compliant invoice. In a jurisdiction with electronic invoicing, this field is the difference between a filing that matches and one that does not.

Tracking mode

Whether the item is tracked as individual units or as a quantity pool. Switching this on an item that already holds stock changes what the system can say about the stock it holds.

Lot tracking

Turning it on means every future movement needs a lot; turning it off means the lots you already recorded stop being enforced. Both are legitimate changes and neither should happen without a decision.

Serial tracking

Same shape as lots, one level finer. A serialised item that stops being serialised loses the ability to answer "where is unit 4417", which is usually the reason it was serialised.

Expiry tracking

Governs whether the batch-expiry report can see this item at all. Switching it off makes an item silently disappear from the report that was watching it — the worst kind of change, because nothing appears to break.

FEFO policy

Which batch gets picked first. Changing it changes what the system tells the picker to take, and therefore which stock ages on the shelf.

Everything else — the description, the reorder point, the buying price, the markup — is an ordinary edit and saves immediately. That distinction is the whole design: a governance control that held every edit would be switched off within a fortnight, and then none of the nine would be governed either.

What actually happens

The item does not change while the request is open. That is the point.

A pattern worth being explicit about, because some systems do it the other way and call it approval: the edit is not applied and then reviewed. The proposed values are held on the approval, the live record is untouched, and it is the act of approving that writes them. A rejected change leaves no trace on the item at all.

Somebody edits a critical field

A storekeeper corrects what they believe is a wrong barcode, or a buyer changes an item's category to match a new supplier grouping. They save as normal — there is no separate "request a change" screen to find.

The change is recognised as critical, and held

The system compares the submitted values against the record and identifies which of the nine fields actually moved. Only the real differences are held; a field submitted with the value it already had is not a change and does not create anything.

The approval carries a fingerprint of the exact change. Submitting the same edit twice joins the existing request instead of raising a second one, so an impatient user cannot flood the approval queue by pressing save again.

An approval request appears, with a two-day clock

It carries the item, the specific fields, the value before and the value after, who asked, and when. It lands in the approvals hub alongside every other decision waiting on somebody, and a notification goes out — deep-linked, so the mobile alert opens the approval rather than the app's home screen.

Somebody with the permission decides

Approving writes the held values onto the item and clears the item's caches so every screen reflects the change immediately. Rejecting closes the request and leaves the record exactly as it was. Either way a comment can be attached, and the decision is recorded with the person who made it.

The requester cannot approve their own change. That is enforced rather than advised, and it is the reason this is a control rather than a formality.

And the deliberate exception, stated plainly

If the person making the edit already holds the approving permission, the change applies immediately. This is on by default and it is the honest design: the control exists so that people who should not silently alter these fields cannot, not so that the person who is supposed to authorise them has to authorise themselves.

That bypass is configurable. Where your policy genuinely requires four eyes on every critical change, including from the item master owner, it can be switched off — and then nobody self-approves.

What is written down

Six months later, somebody will ask why this item's account changed.

That question has an answer, and it is not “the audit log says the record was updated”. The approval carries a pack: the item as it was, the specific fields that moved, the values on both sides, who proposed it, and the fingerprint that proves it is the change that was approved rather than a different one that arrived afterwards.

Item master change — approval pack

Held on the approval run, readable after the decision as well as before it

item.id / name
The item the change belongs to, and the name it had when the change was proposed — so a later rename does not make the record unrecognisable.
item.barcode / category
The identifying attributes as they stood. This is what makes the pack readable by somebody who was not there.
changes[]
Per field: the label a human reads, the value before, and the value after. Nine possible entries; only the ones that actually moved.
proposed_payload
The values that will be written if this is approved, derived from the changes rather than re-submitted — so what gets approved is what was proposed.
change_hash
A fingerprint of the change set. This is what makes a repeated identical edit join the existing request instead of creating a second one.
requested_by / at
Who proposed it and when, held on the pack as well as on the approval, so the pack stands alone.
policy.permission
The permission required to decide it, recorded on the request rather than resolved at decision time — so a later change to your role structure does not rewrite history.
policy.critical_fields
Which of the nine triggered the approval, so the reason it needed one is part of the record.
due_at
Two days from the request by default, so an unattended change is visible as overdue rather than sitting silently.

The straight answer

This is master data hygiene, not master data management.

Those are different products and the second one is a much bigger promise. Here is precisely what is here.

Item master governance — what is real

What AWRA OpsHub does today

  • Exact duplicates refused at creation — the same name within the same category is blocked rather than warned about, and the check is deliberately narrow so the block stays acceptable.
  • Near-duplicates scored and surfaced above 86 per cent similarity, against up to fifty candidates, with the resembling record's stock, barcode and thresholds shown beside the new one so the person decides with the facts in front of them.
  • Barcode collisions checked across items and assets together, because both registers are scanned by the same handset and a code resolving to two things makes the scanner unusable.
  • Category-level required attributes, so a category can insist on the fields an item in it must carry before it can be saved.
  • Nine critical fields held for approval: barcode, category, inventory account, tax treatment, tracking mode, lot tracking, serial tracking, expiry tracking and FEFO policy.
  • The record is untouched while a request is open — proposed values are held on the approval, and approving is what writes them, so a rejected change leaves no trace on the item.
  • Only real differences create a request; a field submitted with the value it already had is not a change.
  • A change fingerprint that de-duplicates requests, so re-saving the same edit joins the open request instead of raising a second one.
  • Requester-cannot-approve enforced, not advised, on the approvals that do route.
  • A two-day clock on each request, so an unattended critical change is visible as overdue rather than silent.
  • An audit pack per approval with the item as it stood, the fields that moved, both values, the requester, the permission required and the fingerprint — readable after the decision as well as before it.
  • Requests visible in the approvals hub and notified with a deep link, so a mobile alert opens the approval itself.
  • The same governance on the web and the API, gated by the same permission, so the rules cannot be walked around by a different surface.

More we can add to your workspace

  • A merge tool for duplicates that already exist, reassigning movements, stock and documents from one record onto another with a reviewable plan before it runs.
  • Multi-step and value-banded approval — a barcode change decided by a supervisor and an inventory-account change by finance, rather than one permission governing all nine fields.
  • A configurable critical-field list in the settings screen, so an organisation can add its own fields to the nine or remove ones it does not consider critical.
  • Fuzzy matching on barcodes and codes, catching a transposed digit as a probable collision rather than only an exact match.
  • Duplicate detection across an import file before the rows are created, rather than row by row at creation.
  • A scheduled catalogue health report — likely duplicates, items missing critical attributes, categories with inconsistent tax treatment — delivered rather than looked for.
  • Approval on supplier and customer master data, applying the same shape of control to the other records that are expensive to get wrong.
  • A governed rename path, where changing an item's name updates the labels and documents that referenced it rather than leaving them behind.

Where we point you to a specialist

  • We will not block a near-duplicate on the system's judgement. Ninety-one per cent similar is a strong signal and not a verdict: a box of 100 and a box of 50 are two legitimate records, and so are two grades of the same steel. The system shows the person what they are about to shadow, with its stock and its thresholds, and the person decides. A false block trains people to work around the control.
  • We will not silently apply a critical change while it is waiting for approval. Some systems apply the edit and review it afterwards, and call that approval. It is not: it is a change that happened, with a review attached. Here the live record does not move until somebody with the authority says so.
  • We will not hide the self-approval bypass. Somebody who already holds the approving permission has their change applied immediately, by default. That is the honest design — the control is aimed at people who should not silently alter these fields, not at making the authoriser authorise themselves — and where your policy needs four eyes regardless, the bypass can be switched off.
  • We will not decide your tax treatment for you. The field is governed so it cannot be changed quietly, and the change is recorded with a name against it. Whether a given item is standard-rated, exempt or zero-rated in your jurisdiction is your tax adviser's call, and a vendor answering that in a sales meeting is selling you a liability.

The merge tool for existing duplicates is the item in that middle column most organisations actually need on day one, because the catalogue arrives with duplicates already in it — and it is a scoping conversation about your movement history rather than a parser. Multi-step approval by field is the second. Tell us what your catalogue looks like today and we will come back with a written spec, a timeline and a price.

What changes

Your catalogue stops drifting away from your warehouse.

Which is a strange thing to sell, because success looks exactly like nothing happening. The measure is the stocktake eighteen months in: whether the count and the catalogue are still describing the same shelves.

The second record does not get created

An exact duplicate is refused; a near one is shown beside what it resembles, with the stock figures.

Reorder points keep working

Consumption stays on one record, so the threshold that was set actually trips.

Scanners stay trustworthy

A barcode is unique across items and assets together, not within each separately.

Nine fields stop moving quietly

Account, tax treatment, tracking mode and the rest need a decision with a name attached.

A rejected change leaves no mark

The record is untouched while a request is open, so nothing has to be undone.

"Why did this change?" has an answer

An audit pack with both values, the requester, the permission and the fingerprint.

Help Center

Need a quick answer while you read?

Run inventory, procurement, assets, sales, and field work with approved AWRA guidance for setup, migration, integrations, security, pricing, and support.

Search all approved AWRA public help articles.

Open Help Center