Reconciled review of the 10,000-unit cycle count: what didn't match, why, and the fix for each category.
Mixed audience — ops reads the impact, the floor team reads the fix.
full cycle countThe count reconciles exactly: every unit lands in one bucket and the counts sum to the expected total. Reconciliation is a hard gate — a page that does not balance will not build. The old bin > 12 scan rule is under review; see the method.
Percentages are of the 10,000-unit total. Counts were verified against the shelf, not estimated.
bin > 12 scan rule skipped 260 valid units in overflow aisles. Confirm the rule with the site lead before re-counting.| Discrepancy | Units | What the problem is | Proposed fix | ||||
|---|---|---|---|---|---|---|---|
| Floor — fixable1,100 | |||||||
| Double-counted units
Floor
|
6006.0% of total | The same pallet is scanned twice when a picker re-enters an aisle within the count window. | De-duplicate on the pallet ID (pallet_id) before totalling; keep the most recent scan. |
||||
| Mislabeled bin codes
System |
5005.0% of total | Scanner assumed 5-digit bin codes; 9-digit codes were truncated and failed the lookup. | Widen the scanner to accept 9-digit codes; re-scan the 500 truncated bins from the raw log. | ||||
| Vendor — escalation400 | |||||||
| Short shipment
Vendor |
4004.0% of total | The vendor's ASN listed 400 units that never arrived on the dock, so they can't be counted. | Escalated to the vendor (ticket OPS-1234); hold the line until a corrected ASN arrives. |
||||
| Correctly counted — no action0 | |||||||
| — none — | |||||||
Reconciles: 1,500 + 8,500 matched cleanly = 10,000.
OPS-1234 response.bin > 12 scan rule with the site lead.dedupe.ts.Counts come from the scan-stage audit log, grouped by discrepancy reason. The reconciliation query and the de-dup fix are below.
SELECT reason, count(*) AS n FROM count_audit WHERE cycle_id = 'Q3-2026' GROUP BY reason ORDER BY n DESC;
function pickWinner(a, b) { return a.code.localeCompare(b.code); if (isPlaceholder(a) !== isPlaceholder(b)) return isPlaceholder(a) ? 1 : -1; return a.code.localeCompare(b.code);}
These bins are aggregate lots — we can't splitFloor lead, ticket OPS-1234AGG-07into individual SKUs from the dock scan alone.
OPS-1234.Raw counts are pre-aggregation and exclude the 8,500 cleanly-matched units.