Field guide · The audit

WMS audit:
what a warehouse system data audit actually examines

A WMS audit is a data investigation, not a count. It works from exports, reconstructs what the system was told, and separates the differences that close themselves from the ones that never will.

  • Updated
  • Written by WMSAudit
  • A Ravenspire LLC company
  • 10 min read

Short answer

A WMS audit is a structured examination of a warehouse management system's data — item master, receipts, transaction history, location inventory, adjustments and interface logs — to identify where recorded inventory diverges from physical reality and why. It is a data investigation rather than a physical count: it works from exports, reconstructs what the system was told, and traces each discrepancy to the process that produced it.

What a WMS audit is

A WMS audit is a structured examination of the data a warehouse management system holds and the transactions that produced it. Its object is the record, not the rack. It asks what the system was told, whether the system did the right arithmetic with it, and whether the resulting balance can be trusted to direct physical work.

That is a narrower scope than the phrase sometimes implies, and the narrowness is the point. A WMS audit is not a software evaluation, not an implementation review, not a process-improvement consultancy and not a physical inventory. It is a data investigation, and it is valuable precisely because it can be done from exports — without system access, without interrupting operations, and without asking anyone to stop picking.

The output is not a corrected balance. It is a list of named defects, each supported by transaction evidence, each classified by mechanism, each counted across the population, and each carrying a quantified exposure. The method is root cause analysis applied to an entire dataset at once rather than to one variance at a time.

What it examines

Seven areas, in the order they tend to produce findings.

  • Receiving variances. Ordered versus received versus posted, in three separate quantities and units. Over-receipts against short shipments, duplicate receipts from ASN and manual entry overlapping, receipts against the wrong PO line, tolerance settings that auto-close lines that never fully arrived. See warehouse receiving errors.
  • Item master and pack/UOM integrity. Conversion chains, stale case packs, missing inner packs, items whose ordering UOM and stocking UOM were defined independently, and the change log that dates every one of them — the subject of unit-of-measure errors. The largest single source of phantom inventory.
  • Location mapping and putaway logic. Planned destination versus confirmed destination, mixed-item locations, capacity settings that force overflow, and whether the system permits a confirmation to a location that was never scanned.
  • Replenishment behaviour. Minimums and maximums against actual consumption, tasks confirmed short or abandoned, and unpaired legs between reserve and forward locations — the defect class that nets to zero and therefore never appears in a summary.
  • Adjustment history. Volume, direction, timing, reason-code distribution, and paired adjustments across related locations. The adjustment log is usually the most informative single export and the least examined; reading it as evidence is a discipline of its own.
  • Transaction history integrity. Unpaired legs, duplicates, retro-dated posts, and the gap between transaction time and posting time.
  • WMS-to-ERP synchronisation. Which period-end differences closed on the next interface run and which never closed at all — the core of inventory reconciliation. The first kind is timing; the second kind is permanent and is often invisible in both systems.

A worked example: the period-end difference that closed, and the one that didn't

A WMS posts inventory transactions continuously. The ERP receives them in batches — say a run at 23:30 and another at 00:15. A receipt posted at 23:47 on the last day of a period therefore lands in one period in the WMS and the next period in the ERP.

Take a receipt of 30 cases at a case pack of 24: 720 eaches, at a standard cost of $3.10.

Period-end reconciliation · one item Illustrative arithmetic
WMS and ERP on-hand quantities across a period boundary
Moment WMS on hand ERP on hand Difference Reading
30 Jun 23:2912,48012,4800Both systems agree before the batch window.
30 Jun 23:47 — receipt posts13,20012,48072030 CS × 24 EA, in the WMS only.
30 Jun 23:59 — period closes13,20012,480720The snapshot everyone argues about the next morning.
01 Jul 00:15 — interface runs13,20013,2000Timing difference. It closed itself.
Apparent period-end discrepancy 720 EA · $2,232 · actual unreconciled difference after the next run → $0

Nothing is wrong here. The systems are eventually consistent and they became consistent 28 minutes later. A site that treats every period-end difference as an error will burn a great deal of effort on differences like this one.

The audit question is therefore not "do WMS and ERP agree at period end" — they frequently will not, for entirely ordinary reasons. It is: which of the period-end differences closed on the next interface run, and which are still open?

A difference that never closes is a different animal entirely. The message errored and was never requeued, or it was consumed and rejected silently, or it was replayed and double-posted. That difference is permanent, it does not appear in either system as an exception, and it compounds: every subsequent period inherits it, so by the time anyone investigates, the gap is the sum of an unknown number of unrelated failures. Separating the two requires the interface log, the batch window boundaries and both systems' balances at matched timestamps — which is why interface logs belong in an audit's export request even though they are rarely thought of as inventory data.

When an audit is warranted

  • Cycle count accuracy that recovers after each count and decays at a consistent rate. A constant decay slope means a constant generator that counting is servicing rather than fixing.
  • WMS and ERP balances that disagree at period end and stay disagreed. Timing differences close. These are not timing differences.
  • Adjustment volume growing faster than throughput. The correction rate is rising against flat volume, which the accuracy percentage will not show.
  • Repeated short picks on items the system shows as stocked. Particularly at the same locations, on a rhythm.
  • An adjustment log dominated by one generic reason code. The site has been closing findings without recording them for long enough that the history no longer supports investigation.
  • Nobody can explain a specific number. The most honest trigger there is. If a balance cannot be reconstructed from its transactions by anyone in the building, the record is not auditable by the people who depend on it daily.
  • A count, system change or acquisition coming up. Data defects are much cheaper to identify before a wall-to-wall count, a WMS upgrade or a migration than after one — a migration copies defects forward and makes their origin permanently unrecoverable.

What an audit typically finds

Findings group into the same five categories used in root cause analysis, because it is the same method applied at population scale.

Master data that stopped matching the world
Case packs superseded by a vendor packaging change, conversions defined once and never revisited, TI and HI that no longer describe the pallet. Dated by the item master change log, and quantified by every receipt posted since.
Receiving process gaps
ASN and manual receipt paths that can both fire on one delivery; tolerance settings that permit full receipt of a short shipment; receipts posted against the wrong line of a multi-line PO.
Transaction legs that never paired
Replenishments and putaways where one side posted. These net to zero at site level and are therefore invisible to every aggregate report, which is why they can run for years.
Confirmation without verification
Where the WMS accepts a keyed location instead of a scanned one, the system records the plan and the building holds the reality. Quantities stay right while placement drifts — the exact pattern that keeps piece accuracy healthy while location accuracy falls.
Adjustment practice that erases evidence
A reason-code distribution with no diagnostic content. Usually the first finding reported, because it is the one that has been preventing every other finding from being discovered internally.
Interface differences that never closed
Dropped or replayed messages between WMS and ERP, separated from ordinary timing differences by checking which differences survived the next batch run.

How an audit runs

Step 01

Scope and export request

Agree the date range, the sites and the item population, then request the exports listed below. The export request is the most consequential part of the engagement: a missing change log or a "received quantity" column that has already collapsed entered and posted quantities into one field will silently remove whole categories of finding.

Step 02

Reconcile the data to itself

Before looking for defects, confirm the export is internally consistent: do the transactions sum to the snapshot balances, do the date ranges line up, are there items in the inventory file that do not exist in the item master. Inconsistencies here are frequently the first finding rather than an export problem.

Step 03

Profile the population

Adjustment volume and direction over time, reason-code distribution, variance concentration by vendor, item class, zone, UOM, receiver and shift. This is where the candidate list comes from, and it is cheap: it is arithmetic over the whole dataset before any individual item is opened.

Step 04

Replay the candidates

For each candidate, rebuild the running balance between two trusted endpoints, recomputing conversions independently, and find the first divergence. Record the evidence statement before forming any view about what it means.

Step 05

Classify and build signatures

Assign each confirmed event to a category, reduce it to queryable attributes, and run the signature across the full dataset to establish how many times it has occurred and over what period.

Step 06

Quantify

Per defect: quantity affected, extended value at standard cost, occurrence count, date range, and the operational consequences that the data actually evidences. Inventory value and operational cost stay separate — a combined headline figure is easier to dispute and harder to act on.

Step 07

Report with evidence attached

Each finding carries its transaction evidence, its inference stated as an inference, the test that would confirm or eliminate it, and the recommended change. Findings that could not be resolved from the data are reported as open questions rather than quietly dropped.

Step 08

Re-run the signatures afterwards

The only honest verification that a fix worked. Occurrence counts for each signature in the following period, against the same queries. A defect is closed when it stops appearing, not when a change is deployed.

The exports an audit needs

All of these are standard WMS extracts. None requires access to a production system, and flat files are entirely sufficient.

  • Item master, with base UOM, full conversion table, case pack, TI, HI, ABC class, status, standard cost — plus the change log with effective dates.
  • Location master — type, zone, capacity, mixing rules, LPN enforcement, replenishment minimum and maximum, forward-to-reserve relationships.
  • Open POs and ASNs — ordered UOM and quantity, expected pack, ASN detail, receipt tolerance configuration.
  • Receipt history — quantity as entered, UOM as entered, converted base quantity as separate fields, PO line, ASN reference, source message ID, receiver, device, timestamp.
  • Full transaction history for the date range — all types, with from/to locations and LPNs, user, device, task ID, reference document, and transaction and posting timestamps kept separate.
  • Location inventory snapshot — item, location, LPN, quantity, UOM, status, allocated quantity, last count date, last movement date, captured at a stated instant.
  • Adjustment history — quantity, direction, reason code, note, user, approver, timestamp, source.
  • Cycle count history — count and post timestamps, system quantity at count time, counted quantity, blind flag, recount sequence, tolerance applied, counter.
  • Short-pick and exception logs — the independent evidence that validates everything else.
  • Interface and error logs — message ID, direction, document type, status, error text, retry count, batch window boundaries.

What an audit cannot tell you

Stating the limits is part of the method, because a finding is only as good as the boundary around it.

It cannot detect theft directly. A data audit can eliminate transaction-origin explanations for a variance and report what remains unexplained, which narrows the field considerably. It cannot demonstrate that stock was taken, by whom, or when, and any report claiming otherwise from exports alone is overreaching.

It cannot confirm physical condition. Damage, spoilage, mis-slotting and mixed locations are visible in the data only through their traces — a disposition code, an adjustment, a status change. Absent a trace, they are invisible.

It cannot prove intent. An override, a forced confirmation and a keyed location all look identical whether they were expedient, mistaken or instructed. The evidence supports a mechanism; it does not support a motive.

It is bounded by the export. Anything not in the extract cannot be examined. This is why the export request matters so much, and why gaps in it are reported as limitations rather than quietly worked around.

It describes a period, not a permanent state. Findings are true for the window audited. A defect fixed the week after the extract will still appear; a defect introduced the week after will not.

None of this makes the exercise weaker. It makes it defensible — a report whose limits are stated can be relied on inside the limits, which is more than can be said for one that claims everything.

WMS audit vs. physical inventory count

These are complementary and are routinely treated as alternatives.

A physical count establishes present truth. It tells you what is in the building today, at considerable cost, and it produces adjustments that make the records correct as of that moment. What it does not do is explain how the records became wrong, which is why accuracy begins decaying the day after a wall-to-wall count at whatever rate the underlying defects dictate.

A WMS audit establishes causation. It cannot tell you what is on the rack right now — it has no physical observation in it at all. It tells you which mechanisms have been producing errors, how often, and at what cost, which is the one thing a count structurally cannot deliver.

The sequence matters. Auditing before a major count means the count corrects balances that will stay corrected, because the generators have been identified and can be shut off first. Counting first and auditing later means paying for the count twice: once to do it, and again when the same defects have rebuilt the same variances. The audit also makes the count cheaper to interpret, because variances that match a known signature need no separate investigation.

One further distinction worth drawing: a WMS audit in this sense is not a WMS implementation or software audit. That is a review of configuration, master data setup, workflow design and system fit, usually performed against a vendor's reference model. It is a legitimate exercise and a different one — it asks whether the system is set up well, whereas a data audit asks what the system has actually been recording and whether the resulting numbers are true.

The operational takeaway

A WMS balance is the sum of its transactions, which means it is auditable. Almost every inventory number a distribution business relies on can be reconstructed from the data that produced it, and where it cannot be reconstructed, that is itself the finding.

The value is not in the corrected balances. It is in the named defects, their occurrence counts and their quantified exposure — because a defect that has run for eighteen months will keep running for another eighteen unless something is changed, and the occurrence count is what makes the case for changing it.

The supporting methods: tracing a single discrepancy, identifying phantom stock, proving a root cause rather than an instance, and measuring accuracy honestly enough to tell whether any of it worked.