← Back to Blog
Case StudyPhantom StockReal Story

Case Study: How a Shopify Merchant Lost $2,000/Month to Phantom Stock (And Fixed It in 60 Days)

Sarah had 340 SKUs and $28k/month in revenue. She had no idea she was losing $2,000 every month to a problem she couldn't see. Here's exactly what happened — and how she fixed it.

March 18, 2026 9 min read

This is a fictional but representative case study, based on patterns commonly seen across Shopify stores. The numbers, causes, and fixes are realistic and drawn from real merchant scenarios.


Sarah runs a mid-sized Shopify store selling home decor and lifestyle products. At the start of last year, she had 340 SKUs, was doing about $28,000/month in revenue, and felt like things were running smoothly.

She was wrong — but she had no way of knowing it yet.

340SKUs in her catalog
$28kmonthly revenue
$2,000monthly phantom stock loss (7.1% of revenue)
4 monthshow long it went undetected

Chapter 1: The "Weird" Cancelled Orders

In February, Sarah started noticing something off. Her team was cancelling more orders than usual — 6 to 8 per week, up from the normal 1 to 2.

The pattern: products showing as in stock when customers ordered, then discovered unavailable when staff went to pick and pack.

Her first assumption was staff error. She sent a reminder email, ran a quick training session, and moved on.

The cancellations slowed down for two weeks. Then came back.

"I thought it was just a busy season thing. We were doing more volume, so more errors made sense to me. I didn't dig deeper."

She was looking at the symptom. She wasn't looking for the cause.


Chapter 2: The Numbers Nobody Was Tracking

Four months later, Sarah sat down to do her quarterly review. For the first time, she added up the cancellation numbers properly.

MonthCancelled OrdersAvg Order ValueDirect Revenue Loss
February24$58$1,392
March31$61$1,891
April28$55$1,540
May29$59$1,711
Total112$58$6,534

$6,534 in direct refunds over four months. But that was just what she could see.

When she factored in customer service time (averaging 20 minutes per incident), refund processing fees, and an estimate of lost repeat customers (based on her average customer LTV of $185), the true cost was closer to $8,000 over four months — roughly $2,000 per month.

Key Takeaway

$2,000/month is 7.1% of her $28k monthly revenue — effectively a silent tax that had been running for at least four months before she noticed it.


Chapter 3: The Investigation

Sarah picked the 10 products with the most cancellations and ran a physical count. She'd been dreading doing this for weeks. The results were worse than she expected.

ProductShopify CountPhysical CountDiscrepancyAt Risk
Ceramic Vase Set (3-piece)2411-13$754
Linen Throw Pillow (Sage)187-11$363
Wooden Candle Holder3119-12$228
Woven Storage Basket154-11$275
Glass Terrarium (Medium)2214-8$320
Macrame Wall Hanging125-7$245
Rattan Side Table83-5$325
Dried Flower Arrangement209-11$275
Marble Serving Board178-9$405
Beeswax Candle Set3521-14$210

On just 10 products: 101 phantom units, $3,400 in phantom stock value.

:::screenshot /blog/dashboard-overview-anomalies.png|This is what Sarah's dashboard would have looked like if she'd had CoreCaptain — 10 anomalies flagged, value at risk visible at a glance, root causes identified.|CoreCaptain dashboard with active anomalies :::quote "I remember staring at that spreadsheet for a long time. Some of these products were more than 50% phantom. I had no idea. The dashboard looked completely normal." :::


Chapter 4: Finding the Root Causes

Sarah dug into the history on each of the 10 products. Over two days of investigation, three root causes emerged.

Root Cause 1: Returns Restocked Without Inspection

Her virtual assistant logged all customer returns in Shopify and placed the items back on the shelf — quickly, efficiently, without any condition check.

For the Ceramic Vase Set alone, Sarah found 7 returned sets on the shelf. All 7 had either chipped vases or missing pieces. All 7 had been added back to available inventory. All 7 were generating false available stock.

The same pattern repeated across the Macrame Wall Hanging (fragile pieces), the Dried Flower Arrangement (wilted returns), and the Rattan Side Table (damage from shipping).

Phantom units created this way: ~45 across the 10 products

Root Cause 2: A Supplier Who Consistently Short-Shipped

Sarah's primary home goods supplier regularly sent 24–26 units on purchase orders for 30. Her receiving process: log "received" from the PO number, not from an actual count.

Over 18 months of ordering from this supplier, she conservatively estimated 15 short shipments averaging 5 units short each — 75 phantom units from a single supplier relationship.

When she called the supplier, they acknowledged the issue immediately and credited her account. The short shipments had been happening for over a year. Nobody had caught it because nobody was counting at receiving.

Root Cause 3: Discrepancy "Fixes" That Hid the Problem

When staff noticed products running lower than expected, they'd occasionally update the Shopify count to match reality. Well-intentioned. But it meant:

  • The root cause was never investigated
  • There was no record of why the adjustment was made
  • The same problem kept recurring invisibly
Watch Out

Manual inventory adjustments without documentation are one of the most common ways that inventory problems become invisible. The number looks correct now — but the underlying issue is still there, creating the same discrepancy again in 2–3 weeks.


Chapter 5: The Fix (Surprisingly Simple)

None of Sarah's fixes required new software or significant investment. They were all process changes.

Fix 1: Returns Workflow Overhaul

No return goes back to available inventory without: 1. Physical inspection by a named team member 2. Explicit categorisation: "restock" or "write off" 3. If write off: immediate Shopify inventory adjustment with reason noted

Time to implement: one afternoon to update the process doc and brief the team.

Fix 2: Receiving Verification

Every shipment is now physically counted before logging. Any discrepancy vs. the PO: 1. Logged immediately with photos 2. Supplier notified same day 3. Shopify updated to match actual received quantity (never the PO quantity)

Time to implement: 30 minutes to update the receiving checklist.

Fix 3: Required Notes on All Manual Adjustments

Every manual inventory adjustment now requires: 1. Reason (choose from a dropdown: damage, count correction, return write-off, other) 2. If "other": free text explanation 3. Operations lead reviews all manual adjustments weekly

Time to implement: 20 minutes to set up the process.


Chapter 6: The Results

Two months after implementing the changes, Sarah ran the numbers again.

MetricBeforeAfter (60 days)Change
Cancelled orders per week6–80–1-87%
Estimated monthly loss~$2,000~$150-92%
Inventory accuracy (top 20 SKUs)68%94%+26 points
Receiving discrepancies caught0/month3–4/monthNow catching them
Returns restocked incorrectly~12/month0Eliminated

"The frustrating thing is that none of this was technically complicated. I didn't need a new tool or a new system. I needed to actually look at what was happening and fix the process. I just wish I'd done it four months earlier."


What Would Have Changed With Earlier Detection

An automated anomaly detection system would have flagged phantom stock on those 10 products within days of it forming — not four months later in a quarterly review.

The signal was there in the data: inventory depleting faster than sales explained, returns not matching inventory increases, specific SKUs with unexplained count drops.

A human reviewing 340 SKUs manually every week would never catch those patterns. A system monitoring every product every day against its expected behaviour would catch them within 48–72 hours.

The difference: - 4-month problem → 1-week problem - $8,000 loss → ~$500 loss - 112 cancelled orders → ~8 cancelled orders


The Three Lessons

  1. Phantom stock doesn't look like a problem until it's already expensive. Your dashboard shows green. Everything looks fine. The signal is in the gap between what the system says and what reality is — and that gap is invisible unless you're specifically looking for it.
  1. The root causes are almost always process failures, not technology failures. Receiving without counting. Restocking returns without inspecting. Adjusting inventory without documenting. These are fixable in an afternoon.
  1. Detection speed is the variable that determines total cost. Sarah's $2,000/month problem existed for at least four months before she found it. The cost wasn't the rate of loss — it was the duration. Cutting detection time from months to days is the highest-leverage improvement any merchant can make.

See this in your own store

CoreCaptain detects phantom stock, sync errors, and inventory discrepancies automatically. 14-day free trial, no credit card required.

Start Free Trial