Storage & Inventory Services
Inventory accuracy is the closest thing fulfillment has to a leading indicator. Get it right and every other metric in the building gets easier. We run cycle counting on a published cadence, sync stock to every channel in real time through your OMS, and publish the formulas behind safety stock and reorder points so you can audit them with us.
TL;DR
The annual full count is a holdover from a time when warehouses shut down between Christmas and New Year and the auditor wanted a single date-stamped tie-out. In operations that ship every day, the annual count is operationally expensive (you usually stop shipping for a day or three) and statistically useless: by the time you reconcile variances, the inventory has moved hundreds of times.
Cycle counting replaces the single-day event with a perpetual rhythm. Small subsets of inventory get counted on a regular cadence, variances get investigated while they are still fresh, and inventory record accuracy (IRA) climbs and stays high. A perpetual count is also more accurate per labor hour than an annual count, because counters develop SKU-level fluency and catch slot-and-bin issues that a Saturday team of temporary labor never will.[1]
Cycle count cadence by ABC class
| Class | % of SKUs (typical) | % of revenue (typical) | Count cadence |
|---|---|---|---|
| A | ~20% | ~80% | Weekly or monthly |
| B | ~30% | ~15% | Quarterly |
| C | ~50% | ~5% | Annually or semi-annually |
The Pareto split is the foundation. Roughly 20 percent of the SKUs in a typical operation account for 80 percent of the value, and counting those high-value items frequently is where most of the IRA gains come from.[1] Class B and C items count less often because the cost of a small variance on a slow mover is, by definition, small.
A common mistake in 3PL contracts is treating 90 percent IRA as the goal. That number is a sign of a problem, not a target. Industry guidance consistently points at near-100-percent accuracy as the operational standard for any warehouse running ecommerce or retail replenishment.[2] The practical floor we run to is 99.5 percent location-level accuracy, with anything below 99 triggering a root-cause investigation that quarter.
The three formulas every inventory operation should be able to recite are ABC classification, Economic Order Quantity (EOQ), and safety stock. They have been in the textbooks for decades, but the brands that actually run them tend to have meaningfully better gross margin than the brands that wing it.
Sort every SKU by trailing-12-month revenue or unit movement. The top ~20 percent that drive ~80 percent of the value are A items. The next ~30 percent that drive the next ~15 percent are B items. The remaining ~50 percent that drive the bottom ~5 percent are C items.[1] Classification gets refreshed quarterly so SKUs migrate as their velocity changes.
EOQ is the order quantity that minimizes the sum of ordering cost and holding cost across a year of demand. The closed-form answer is one of the most useful results in operations research.[4]
EOQ formula
EOQ is most useful for staple SKUs with steady demand. For an A item moving 10,000 units a year with a $200 PO cost and a $4 per-unit annual holding cost, EOQ comes out to roughly 1,000 units per order, which translates to 10 POs a year. Compare that against ordering monthly (833 units, 12 POs) and you can see where the optimization comes from: more frequent orders cost more in PO setup than they save in carrying cost at this volume.
The basic safety-stock formula (Z-score times standard deviation of demand during lead time) only works if demand is the only thing that varies. In practice, both demand and supplier lead time are uncertain, which is why the ecommerce-grade formula folds both into the same calculation.[5]
Safety stock (demand and lead-time variability)
Pick a service level deliberately. A 95 percent service level (Z = 1.65) means you accept being out of stock on roughly 1 in 20 reorder cycles. For an A item in a competitive category, that is too low. For a long-tail C item with low margin and substitutes available, 90 percent (Z = 1.28) is often the right trade-off. The mistake we see most often is applying the same service level to every SKU regardless of margin, velocity, or competitive intensity.
In 2026, brands routinely sell across Shopify, Amazon, TikTok Shop, Faire, Walmart Marketplace, and direct retail EDI accounts. Each of those channels has its own buffer logic, oversell tolerance, and inventory-feed mechanics. Without a real-time sync layer, the result is chronic over-promising on at least one channel and chronic under-allocation on another.
The architecture that holds up at scale puts the OMS in the middle as the single source of truth for available-to-promise (ATP) inventory.[6] The WMS publishes on-hand quantities and allocations into the OMS as they change. The OMS subtracts safety buffers per channel and pushes available inventory to each storefront on a schedule (or via webhook for the fastest channels). Orders flow back through the OMS into the WMS, which decrements as it picks and ships.
Where each system fits
| System | Source of truth for | Talks to |
|---|---|---|
| WMS | Physical inventory, slot, location, allocation | Scanners, conveyors, OMS, ERP |
| OMS | Available-to-promise, channel routing, returns | Storefronts, marketplaces, WMS, ERP |
| ERP | Purchase orders, COGS, GL, vendor master | OMS, WMS, finance, AP/AR |
| Storefront | Customer-facing PDP inventory display | OMS via API or feed |
Even with real-time sync, fast channels (TikTok Shop, an Amazon flash deal) can outrun the feed. Standard practice is to hold a per-channel safety buffer in the OMS, often a fixed-unit reserve on A items and a percentage reserve on B and C. The buffer trades a small amount of unsold inventory against the operational and CX cost of an oversell.
Shrinkage is the gap between what your inventory records say you should have and what is actually on the shelf. It captures theft (internal and external), damage, miscounts, vendor errors, and process losses. The NRF estimates total US retail shrinkage in 2026 at roughly $112 billion across all channels.[3]
The NRF discontinued its 32-year annual National Retail Security Survey shrink report in 2024 due to methodology concerns, but its successor (the “Impact of Theft & Violence” study, last updated August 2025) continues to track the trends.[7] The 2025 report shows shoplifting incidents up 18 percent year over year, threats or acts of violence during shoplifting up 17 percent, and organized retail crime now active across more than two-thirds of US retailers surveyed.[7]
In a fulfillment warehouse, shrinkage shows up in five places: inbound receipts (vendor short-shipments not flagged), put-away (units misslotted and never found), pick (the wrong unit pulled and shipped), pack (damage during boxing), and outbound short-ships (units never made the trailer). Each has a different control. We attack receipt shrink with mandatory blind counts on inbound POs, put-away and pick shrink with scan-verify at every move, and outbound shrink with pick-pack reconciliation before the manifest closes.
Every cycle-count variance is logged with quantity, location, and root cause (when known). The monthly inventory report includes shrink as a percent of units shipped, broken down by SKU class and by source. Brands that hit a sustained shrink rate above 0.5 percent of units shipped get a dedicated session each quarter to walk back through the controls and identify what the data is pointing at.
The integration questions worth asking before signing with any 3PL or OMS vendor are not the ones on the marketing site. They are the ones below.
Push (WMS publishes to OMS on every change) is faster and more accurate. Pull (OMS polls the WMS on a schedule) is easier to build but adds latency. Real-time channels need push.
Returned units that pass QA should re-enter ATP automatically with a timestamp the OMS can route on. Returns held for inspection should sit in a quarantine bucket that is visible but not sellable.
Idempotent retries, dead-letter queues, alerting on failures, and a manual re-sync that is fast enough to use during a peak Friday. If the answer is “our team manually fixes it Monday,” that is the answer that matters.
One place, ideally the OMS. Multiple sources of truth always drift, and the drift always shows up as either oversells or phantom out-of-stocks at the worst moment.
Cost-to-serve, carbon, capacity, and on-time-delivery are all valid routing criteria. The OMS should let you weight them and review the routing decision after the fact, not just trust a black box.
Talk to Warpspeed
Send us your last 90 days of cycle-count results and channel feed logs. We will map your IRA by SKU class, flag the channels with the highest oversell risk, and send back a one-page playbook for the next quarter. No NDA gymnastics, no sales pretense.
References
Cycle-counting and ABC methodology references draw from operations textbooks and industry guidance. EOQ and safety-stock formulas are textbook standard. Shrinkage figures are the latest NRF data with industry-aggregate estimates flagged as such.