Inventory

How a $25M denim brand stopped overselling during limited drops

How a $25M denim brand stopped overselling during limited drops
By Shubham Singh · Reviewed by Isabelle Feyerabend · · 10 min read

A denim brand doing about 25 million in revenue runs a limited drop on a Thursday at noon. Selvedge, 400 pairs, split roughly 60/40 between the DTC site and a wholesale allocation reserved for three specialty accounts who preordered at market. By 12:04 the Shopify store shows sold out. By 12:40 customer service has 38 tickets from people whose orders were confirmed and then cancelled. By 3 pm the ops lead discovers that the 3PL pick list and the wholesale commitment overlap on 62 pairs. Someone has to call the accounts. Someone has to refund the DTC customers. The drop that was supposed to be the quarter’s proof point becomes a two-week cleanup.

What does denim brand drop oversell prevention actually mean?

Denim brand drop oversell prevention is the set of inventory, order, and warehouse rules that guarantee a unit of stock is only promised to one channel, one order, one customer at any given moment, including the four-minute window when a limited drop is live. It is not the same as accurate stock counts. A brand can have a perfectly counted 400 pairs in the 3PL and still oversell if the DTC store, the wholesale portal, and the EDI feed are all reading against different views of that number.

The distinction matters because most brands try to fix oversells by tightening inventory counts. They cycle count more often. They pay the 3PL for a weekly reconciliation report. The oversells keep happening because the counts were never the problem. The arbitration between channels was the problem.

This is Breakpoint 3 of the 6 Breakpoints of Apparel Operations. Inventory truth gets weaker not because the warehouse is wrong, but because there is no single ledger that all channels are forced to read from and write to.

Why do drops break the inventory model that works the rest of the year?

Outside of a drop, the timing forgiveness of normal commerce hides a lot of architectural weakness. A DTC order at 2 am and a wholesale PO entered by an account manager at 10 am are separated by hours. Even a lazy sync between Shopify, the wholesale system, and the 3PL will usually settle before either order needs to be picked. Oversells are rare enough that they get written off as a warehouse miscount.

Drops collapse that timing forgiveness. Four hundred pairs move in under five minutes. Every system that touches inventory is trying to write at once. Shopify decrements against its cached view. The wholesale allocation was set the night before against a snapshot. The 3PL is still processing the last shipment that left the dock this morning. If any two of those views disagree by even ten units, the brand oversells by ten units, and every one of those units becomes a customer service problem or a chargeback.

From the fit calls I run with prospects each week, this is the moment brands realise their stack is not built for the way they actually sell. They bought Shopify because it was fast to launch DTC. They bought or built a wholesale tool because Shopify’s B2B was thin. They plugged in a 3PL because they outgrew the studio. Each of those decisions was correct in isolation. Stitched together at drop time, they produce the exact scene above.

What does the $25M denim brand’s stack look like before the fix?

The pattern is consistent enough that I can describe it without naming the brand. DTC on Shopify Plus. Wholesale on a mix of a B2B portal, one EDI trading partner for a department store account, and a shared Google Sheet the sales team updates manually for the three specialty accounts. Warehouse at a 3PL, syncing to Shopify via the 3PL’s native connector and to the wholesale system via a nightly CSV. Accounting on QuickBooks Online. An ops manager who spends what she estimates as a full day per week reconciling inventory between these systems.

For a brand at 15 million in revenue running wholesale, DTC, and a 3PL, that reconciliation load is typically 6 to 9 hours a week and the oversell rate at peak sits around 2 to 3 percent. At 25 million with limited drops layered on, the reconciliation load does not scale linearly. It scales with drop frequency. A brand that runs one drop a month is doing a week of cleanup a month. A brand that runs two drops a month is doing two.

The oversell rate at drop time is worse than the annual average, often materially worse, because the drop concentrates the failure mode. If 2 to 3 percent of units oversell across the year, a drop can push 5 to 8 percent for the specific SKUs involved, and those are the SKUs the brand’s reputation is being built on.

Where does the architecture actually break?

There are four specific failure points. Naming them matters because the fix for each is different.

First, channel-blind ATS. Shopify shows available-to-sell as on-hand minus DTC commitments. It does not know about the 62 pairs the sales team committed to a specialty account last Tuesday. Unless something upstream is holding those 62 pairs out of the Shopify pool before the drop opens, Shopify will happily sell them.

Second, wholesale commitments that live outside inventory. When wholesale allocations are tracked in a spreadsheet or in a B2B portal that only pushes commitments to the warehouse at pick time, they are invisible to DTC. The inventory system thinks those units are available because no order has yet been created against them.

Third, 3PL feed latency. A 3PL syncing to Shopify hourly is fine at normal cadence. At drop cadence, an hour is the entire drop. If the 3PL is the system of record for on-hand and Shopify is running against a cached number, the brand can sell the same unit twice in the four minutes between syncs.

Fourth, no pre-drop hold policy. Most brands do not have an explicit rule that says “before the drop opens, this many units are locked to wholesale, this many to VIP early access, this many to open DTC, and no channel can borrow from another.” Without that rule enforced in the inventory system, every channel assumes the total is available to it.

What does the fix look like operationally?

The architectural fix is one authoritative inventory ledger that every channel reads from and writes to in real time, with channel-aware available-to-sell logic and a hold mechanism that runs before drops.

In practice this means the inventory system, not Shopify and not the 3PL, is the source of truth for on-hand. The 3PL reports movements up to that ledger. Shopify’s storefront reads a channel-specific ATS number that already has wholesale commitments and pre-drop holds subtracted. The wholesale portal reads a different channel-specific ATS number that has DTC allocations subtracted. Both channels are reading from the same underlying ledger, but each sees only the portion of it they are allowed to sell against.

The hold policy runs the night before the drop. If 400 pairs are going live, the ops team locks the split explicitly: 240 to open DTC, 100 to wholesale commitments already promised, 40 to a VIP early access window, 20 held back for exchanges and quality replacements. Those numbers are written into the ledger as reserved. No channel can sell into another channel’s reservation without an explicit release.

Wholesale should not run through Shopify’s native flow, and this is one of the reasons why. Shopify’s B2B was not designed to arbitrate against a DTC drop happening on the same SKU at the same second. That arbitration has to happen upstream, in the system that owns inventory truth.

How does a unified operations platform handle drop arbitration?

This is where the category matters. A generic ERP has an inventory module but usually does not understand the concept of channel-aware ATS for a limited drop. A point solution for inventory can hold the ledger but does not own the wholesale order flow or the DTC integration. Spreadsheets cannot arbitrate in real time at all.

A unified apparel operations platform sits between those. It owns the inventory ledger, the wholesale order flow, the DTC connection, and the warehouse feed as native modules rather than integrations. When the drop opens, DTC checkout writes against the same ledger that the wholesale portal writes against, and the pre-drop hold policy is enforced in the ledger itself. The 3PL reports movements up to the ledger rather than being asked to be the source of truth.

For the $25M denim brand, this replaces three to five tools plus the reconciliation spreadsheet. The ops manager stops doing a full day a week of data plumbing. The oversell rate at drop time drops toward the annual average rather than spiking above it. Uphance is built for exactly this workflow, but the architectural point stands regardless of vendor: if your inventory ledger does not natively understand channels and holds, no amount of integration will fix drop oversells.

What does the operational sequence look like on drop day?

A drop that does not oversell has a specific sequence. It is worth walking through because most brands skip at least two steps.

  1. Forty-eight hours before drop, the drop plan is entered into the inventory system with an explicit channel split and a total unit count that matches the 3PL’s confirmed receipt.
  2. Twenty-four hours before drop, the hold policy is activated. Wholesale allocations are locked. VIP early access units are reserved. Open DTC pool is calculated as the remainder.
  3. Two hours before drop, the 3PL confirms physical availability against the ledger. Any discrepancy is resolved before the drop opens, not after.
  4. Drop opens. DTC checkout writes against the open DTC pool only. Wholesale portal writes against the wholesale allocation only.
  5. Within thirty minutes of sellout, orders are released to the 3PL as pick tasks. EDI 856 ASNs go out for wholesale within the retailer’s compliance window.
  6. Returns and cancellations post back to the ledger, not to Shopify directly, so the released units are visible to both channels.

What I see from prospects who have already shortlisted three vendors is that they often ask which tool has the fastest Shopify sync. That is the wrong question. The right question is which architecture arbitrates channels against a single ledger at drop time. A fast sync between two systems that do not share a ledger will still oversell.

What this means for an apparel operations team

If your brand runs limited drops and oversells more than 1 percent of drop units, the problem is almost certainly not the warehouse and not the count accuracy. It is the arbitration layer. Fixing it by tightening counts will not work because the counts were probably fine.

The practical move is to map, on paper, exactly which system is the source of truth for on-hand at the moment the drop opens, and which systems are reading a cached or delayed version. If more than one system thinks it owns the number, you have already found the oversell.

Breakpoint 3 shows up loudest at drop time, but the same weakness is degrading normal-cadence operations too. The 6 to 9 hours a week of reconciliation is not a separate problem. It is the same problem, priced in labour rather than in customer service tickets. Fixing the ledger fixes both.

Inventory Truth Scorecard

How accurate is your inventory really?

Nine questions estimate where your operation sits on the inventory-truth curve and how much revenue is at risk. Takes about three minutes.

Frequently asked questions

Where this fits in the Uphance platform

S
Written by
Shubham Singh
Solutions Consultant, Apparel Operations, Uphance

Shubham writes about evaluating ERP fit, assessing operational complexity, and how apparel brands can tell whether their current systems are helping or holding them back. As a Solutions Consultant at Uphance, he runs discovery conversations and fit assessments for apparel brands moving off patchwork stacks of PLM, PIM, inventory, and B2B tools. His articles cover ERP selection, vendor RFPs, comparison frameworks, and the operational signals that tell a brand it has outgrown spreadsheets and point solutions. He focuses on how mid-market apparel teams evaluate connected platforms against the cost of staying with what they have.

I
Reviewed by
Isabelle Feyerabend
Customer Success and Onboarding Manager, Uphance

Isabelle writes about onboarding, workflow enablement, and how apparel teams build confidence in connected operations during rollout and beyond. As a Customer Success and Onboarding Manager at Uphance, she partners with apparel brands through their first three weeks on the platform: configuration, training, and the tactical playbooks that get day-to-day workflows running. Her articles focus on how-to guidance for product, inventory, and order operations, written for the people who actually run the workflows. She covers when to use which configuration, how to write the training docs, and what the first thirty days inside a connected platform look like in practice.

More from the blog