MishiSpark

WooCommerce Inventory: Avoiding Stockouts and Overstock

WooCommerce tracks stock levels but not stock intelligence. Learn to use sales data for reorder timing, dead stock identification, and inventory optimization.

Spark by MishiPay Team8 min read

WooCommerce can tell you that Product A has 12 units in stock. It cannot tell you whether that's too many, too few, or just right. It doesn't know that Product A sells 3 units per week, which means you have 4 weeks of supply. It doesn't know that your supplier takes 3 weeks to deliver, which means you should be reordering now.

This gap between stock tracking and stock intelligence is where WooCommerce merchants lose money. Stockouts mean lost sales. Overstock means tied-up capital. Both are avoidable with the right data.

WooCommerce inventory management basics

WooCommerce provides a simple inventory system built into the product editor. For each product (or variation), you can set:

  • Stock quantity — current units on hand
  • Stock status — in stock, out of stock, or on backorder
  • Backorders — whether to allow orders when stock is zero
  • Low stock threshold — a number that triggers a notification email

When an order is placed, WooCommerce decrements the stock quantity. When a refund is processed, it can optionally increment it back. That's the extent of the system.

There's no concept of reorder points, lead times, sales velocity, carrying costs, or inventory turnover. WooCommerce treats inventory as a counter, not a business metric.

What native inventory reports miss

WooCommerce Analytics includes a Stock report that shows products filtered by stock status: in stock, low stock, out of stock, or on backorder. This tells you the current state but nothing about the trajectory.

No sales velocity data. How fast is each product selling? A product with 50 units in stock is overstocked if it sells 2 per month but understocked if it sells 20 per week. Without velocity, stock quantity is meaningless.

No reorder timing. When should you place your next order? That depends on current stock, sales velocity, and supplier lead time. WooCommerce doesn't track lead times and doesn't calculate reorder points.

No dead stock identification. Which products haven't sold in 60, 90, or 180 days? WooCommerce won't tell you. You have to cross-reference stock levels with order history manually.

No cost of holding inventory. Every unit sitting in your warehouse costs money — storage, insurance, opportunity cost of capital. WooCommerce doesn't factor carrying costs into inventory decisions.

No seasonal adjustments. A product that sells 10 units per week in summer and 2 per week in winter needs different stock levels throughout the year. WooCommerce's stock system has no concept of seasonality.

Using sales velocity for reorder points

Sales velocity is the foundation of inventory optimization. It tells you how fast a product is selling, which determines how much stock you need and when to reorder.

Calculating sales velocity

Sales velocity = Units sold / Time period (in days)

For example, if Product B sold 84 units in the last 28 days, its sales velocity is 3 units per day.

Use a recent time window — 28 or 30 days is standard. Going further back dilutes the signal with old data that may not reflect current demand.

Setting reorder points

The reorder point is the stock level at which you should place a new order with your supplier. The formula:

Reorder point = (Sales velocity x Lead time) + Safety stock

Lead time is the number of days from placing an order to receiving it. If your supplier takes 14 days to deliver, that's your lead time.

Safety stock is a buffer for variability in demand or delivery delays. A common approach is:

Safety stock = Sales velocity x Safety days

Where safety days is the number of days of extra supply you want as a buffer (typically 3 to 7 days depending on how critical stockouts are for that product).

Example

InputValue
Sales velocity3 units/day
Supplier lead time14 days
Safety days5 days
Safety stock15 units
Reorder point57 units

When this product drops to 57 units, you place an order. By the time the shipment arrives in 14 days, you'll have roughly 15 units left (your safety stock), and the new inventory replenishes your supply.

WooCommerce's low stock threshold is a crude version of this — but most merchants set it as a fixed number (like 5) rather than calculating it from sales velocity and lead time. The result is either ordering too late (stockouts) or too early (overstock).

Identifying slow-moving and dead stock

Dead stock is inventory that isn't selling. It ties up cash, takes up warehouse space, and often ends up being sold at a deep discount or written off entirely.

How to find it

Cross-reference stock levels with recent sales. Pull your current stock quantities and compare them against units sold in the last 90 days. Products with high stock and zero or near-zero sales are dead stock candidates.

Calculate days of supply. For each product:

Days of supply = Current stock / Sales velocity

A product with 200 units in stock and a velocity of 1 unit per week has 1,400 days of supply — almost 4 years. That's dead stock in disguise.

Watch for velocity trends. A product selling 10 units per week that's now selling 2 per week is trending toward dead stock. Catching the decline early lets you run promotions, adjust pricing, or reduce reorder quantities before you're stuck with excess inventory.

What to do with slow-moving stock

  • Bundle it with faster-selling products to clear inventory without deep discounts
  • Markdown strategically — a 20% discount that moves the product is better than a 50% discount six months later
  • Stop reordering and let it sell down naturally
  • Use it as a gift-with-purchase for orders above a certain threshold
  • Liquidate through secondary channels if the product is unlikely to sell at any reasonable price

ABC inventory classification

ABC analysis sorts your products into three groups based on their contribution to revenue:

  • A items — Top 20% of products that generate ~80% of revenue. These are critical. Stock them aggressively, monitor them daily, and never let them stock out.
  • B items — Next 30% of products that generate ~15% of revenue. Important but not critical. Standard inventory management applies.
  • C items — Bottom 50% of products that generate ~5% of revenue. Low priority. Minimize stock investment. Consider whether some should be discontinued.

To run an ABC analysis on your WooCommerce store:

  1. Export product-level sales data for the last 6 to 12 months
  2. Sort products by total revenue (descending)
  3. Calculate cumulative revenue percentage
  4. Label products as A (up to 80% cumulative), B (80-95%), or C (95-100%)

This classification drives inventory policy. A items get tighter reorder points and higher safety stock. C items get minimal stock and longer reorder cycles. You stop treating every SKU the same way.

Seasonal inventory planning

Many WooCommerce stores have seasonal demand patterns. Swimwear peaks in spring. Holiday gifts spike in Q4. Outdoor furniture slows in winter.

WooCommerce provides no tools for seasonal planning. To do it manually:

Analyze monthly sales for each product over the past two to three years. Look for patterns: which months spike, which months dip?

Calculate seasonal indices. Divide each month's sales by the annual monthly average. A month with an index of 1.5 has 50% higher demand than average. A month with 0.6 has 40% lower demand.

Adjust reorder quantities by season. Before a peak season, increase your safety stock and order earlier. Before a slow season, reduce orders and let stock draw down.

Plan promotions to smooth demand. If you have excess inventory heading into a slow season, run promotions before the dip — not after, when everyone else is discounting too.

How Spark provides inventory intelligence for WooCommerce

Spark connects to your WooCommerce store and transforms raw stock data into inventory intelligence. It calculates sales velocity, days of supply, and reorder timing from your order history — without requiring you to build spreadsheets or install plugins.

Ask questions like:

"Which products will stock out in the next 14 days based on current sales velocity?"

"Show me products with more than 90 days of supply."

"What are my A, B, and C products by revenue contribution?"

"Which products have declining sales velocity compared to last quarter?"

Spark identifies dead stock, flags reorder urgency, and helps you allocate inventory budgets to the products that actually drive your business. It turns WooCommerce's simple stock counter into a decision-making tool.

The difference between stock tracking and inventory optimization is analysis. WooCommerce handles the tracking. The optimization requires connecting stock levels to sales velocity, margins, and demand trends — exactly the kind of cross-data analysis that shouldn't require a spreadsheet.

Stop guessing on inventory

Spark analyzes your WooCommerce sales velocity and stock levels to flag stockouts, dead stock, and reorder timing.

Ready to double your store sales?

Connect your store in 60 seconds. Get your first AI diagnostic free.