At 2:14 on a Tuesday morning, our night shift lead called me about a pick failure. The WCS showed twelve totes of a fast-moving SKU sitting in the shuttle system. The WMS showed zero available. The picker had already walked the aisle twice. By the time we figured out what happened — an exception divert the evening shift had cleared by hand without scanning — we'd burned forty minutes and missed the carrier cutoff for thirty orders.
That night cost us more than the entire reconciliation routine I'm about to describe would have cost for a year.
Two Systems, Two Definitions of "Here"
The first thing to internalize: the WCS and the WMS don't track the same kind of inventory. The WCS tracks carriers — which tote is on which conveyor segment, which shuttle is holding which pallet, what each AMR is carrying. It thinks in equipment positions. The WMS tracks locations — which slot on which rack holds how much stock. It thinks in ledger positions.
While product is riding on equipment, the WCS correctly says "it's with me" and the WMS correctly says "it hasn't hit my books." Neither side is wrong; they're speaking different dialects. Every reconciliation effort that skips this premise turns into two teams arguing past each other.
To feel the scale: one peak-season evening at 6 p.m., a 600-meter conveyor loop was carrying more than 400 totes at once — over 3,800 units in transit on the WCS side, nearly 4 percent below on the WMS books. None of it was lost. It was all dialect. But a reconciliation routine that doesn't understand the dialect cries wolf every day, and once the team learns to ignore the alerts, the real anomalies drown in the noise. A 4 percent gap that everyone understands beats a 0.5 percent gap that nobody can explain.
The Three Shapes of a Discrepancy
In-transit variance is the honest one. Product on conveyors, on shuttles, on AMRs — not in any storage location. During peak, a 600-meter conveyor loop can hold hundreds of totes at once, and in-transit stock can run 5 percent or more of total inventory. A gap of a few points between the two systems at any given moment is normal. The job isn't to eliminate it; it's to know the gap is in-transit rather than lost.
Exception pulls are the dangerous one. Equipment diverts a problem carton to the exception chute, or someone on the floor physically removes product. The WCS records the move; the WMS never gets the confirmation. The books diverge — and unlike in-transit stock, this product genuinely isn't where it should be.
Signal loss is the infuriating one. A barcode scanner misses a read. A PLC drops offline for three minutes. The physical move happened; the data never synced. The product is perfectly fine, sitting exactly where it belongs, and the two systems still can't agree on the count.
Of the three shapes, exception pulls are the most expensive. One failed pick costs a picker a wasted trip, a recount, a search — fifteen minutes gone. Dozens of times a day in peak season, and the rework labor and SLA damage add up fast. Mispicks caused by bad data cost even more in customer claims. Reconciliation isn't an IT chore. It's wired directly to money.
A Reconciliation Routine That Actually Holds
Real-time reconciliation is a fantasy. The WCS lives in a millisecond equipment world; the WMS lives in a transactional ledger world. Forcing the two tempos into lockstep will exhaust your team and still miss the point.
What works is two layers. First, an hourly variance snapshot — total quantities and key SKUs only, with alerts on abnormal swings. I use a threshold like five units on a single SKU; set it too tight and you get dozens of alerts a day, which everyone learns to ignore, which is the same as having no alerts. Second, a full end-of-day reconciliation before the shift closes, with every open variance assigned an owner. Unowned variances are how discrepancies become folklore.
When you pick up a variance, walk one chain. Start with the WCS event log: trace the LPN or tote ID backward in time to its last recorded action — which piece of equipment saw it last. Then pull the WMS transaction history for the same goods: what was the last book movement. If the timestamps don't line up, you probably lost interface messages. If the timestamps line up but the quantities don't, somebody touched the product without telling the system.

A case from a 2023 project still sticks with me. Variances clustered on the night shift; days were clean. The WCS log showed exception-chute product "disappearing" around 2 or 3 a.m. with no WMS record. It turned out the night lead was clearing exceptions by hand to keep the line moving — never scanned. Not a software problem. A people problem that the system should have been designed to prevent.
Which brings us to prevention, in order of impact. One: the exception chute requires a scan to release product — physically, if you can manage it, so nothing leaves without both systems recording it. Two: every manual intervention goes through a two-step exception flow on the handheld, so the WMS books move with the product. Keep it to two steps; longer flows don't get used. Three: put a message queue between WCS and WMS. Network blips are a fact of life; the question is whether messages get redelivered or silently dropped. Plenty of older integrations are direct-coupled, and that's where variances quietly accumulate, one dropped packet at a time.
Three questions for your next mismatch, in this order: Is the product on equipment or in a location right now? What did the WCS event log see last? What did the WMS transaction history record last? Eight times out of ten, the third answer ends the argument. Write the three answers down; the discipline of writing beats the confidence of remembering. The two systems will never fully agree — your job is to make the disagreement boring and explainable.










