September 23, 2026

Most D2C brands set safety stock as a single flat number across their whole catalogue, then get caught out when a campaign performs better than expected. The fix is to size your buffer to the campaign, not just the product: a evergreen always-on ad needs a different stock cushion than a 48-hour flash sale, and treating them the same either ties up cash you didn't need to spend or leaves you stocked out at the exact moment your ad is working.
There's a particular kind of bad day that only happens to brands whose marketing is actually succeeding.
The ad works. Really works. CTR is up, CPA is down, and for about six hours everyone in the business is thrilled. Then the warehouse runs out of stock on the hero SKU, the ad keeps spending because nobody paused it in time, and you're now paying to acquire customers you can't fulfil.
This is, in a strange way, a self-inflicted wound. The demand was earned. The money was well spent. The failure was entirely on the fulfilment side: nobody had decided, in advance, how much stock a campaign like this one was allowed to draw down before something had to give.
Most brands' answer to "how much safety stock should we hold" is a single number, set once, applied to every product regardless of what's driving its sales that week. That's the wrong frame. The right question is: what kind of campaign is this, and does its risk profile match the buffer sitting behind it?
Safety stock exists to absorb the gap between expected and actual demand. The problem is that "expected demand" means something completely different depending on what's driving the order.
A product selling through organic search and repeat purchase has a fairly predictable demand curve — it moves in a fairly narrow band week to week, and a modest buffer covers the normal noise. A product that just got picked up by a viral TikTok, or is the hero image in a Black Friday campaign with real budget behind it, doesn't have a predictable curve at all. It has a curve that looks flat right up until the moment it doesn't.
Applying the same safety stock rule to both is how you end up in one of two bad places: too much capital tied up in buffer stock for your steady, predictable sellers, or not nearly enough cushion for the SKU that's about to be the centre of your biggest campaign of the quarter.
The fix isn't a bigger safety stock number across the board — that just moves the problem from "we ran out" to "we're sitting on too much working capital." The fix is calibrating the buffer to the campaign type.

This is your baseline advertising: consistent budget, stable targeting, demand that moves in a predictable range. Safety stock here can be genuinely lean, because the whole point of always-on spend is that it doesn't spike sharply. A buffer sized to cover normal week-to-week variance — not much more — is usually sufficient, and holding more than that is just tying up cash for no real protection.
This is the ad that's working better than the last one, and the budget is being increased in response. This is the most dangerous category precisely because the demand curve is actively changing shape while the campaign runs — which is the exact scenario in the introduction above. The buffer rule here needs to move in step with the ad budget: if spend is scaling 20% week over week, stock buffer on that SKU should be reviewed at the same cadence, not left at whatever level made sense before the scaling started.
A 48-hour flash sale or a single-day drop has a completely different risk shape from either of the above. Demand is concentrated into an extremely short window, which means a stockout doesn't just cost you a few orders — it can effectively end the campaign early, wasting whatever media spend was allocated to drive people to a product that's no longer there. Buffer sizing for time-boxed campaigns should be set against a worst-case scenario for that specific window, not an average, because there's no time for a restock to save you mid-campaign.
This is the hardest category, because you don't control the timing. A product gets picked up by a creator, a subreddit, a group chat, and orders spike with no advance notice and no ad spend to signal it's coming. You can't hold infinite buffer against every SKU in case this happens to it. What you can do is have a fast-response protocol — a way to identify a genuine organic spike quickly and either pull stock from lower-priority SKUs or trigger an expedited reorder — rather than relying on buffer stock alone to absorb something inherently unpredictable.
The useful output of this thinking isn't a spreadsheet of buffer percentages by SKU — it's a rule that tells your team (or your fulfilment partner) what to do automatically when a campaign's status changes.
A workable version looks something like this:
The specific thresholds will differ by brand and category, but the structure is the one thing every scaling D2C brand needs regardless of size: a rule that connects what marketing is doing to what fulfilment is holding, so the two teams aren't discovering each other's decisions after the fact.
The single biggest reason ad-linked buffer rules fail in practice isn't bad math — it's that marketing and fulfilment genuinely don't talk to each other on a regular cadence. Marketing scales a winning ad because that's their job and the numbers say to. Fulfilment finds out when the stockout alert fires, which is far too late to do anything but apologise to customers and pause the spend.
Fixing this doesn't require new software, necessarily. It requires marketing flagging planned spend increases and campaign calendars to whoever owns inventory, before the campaign goes live rather than after it starts working. Founders running lean teams often are both people, which makes this easier in theory and easier to forget in practice, precisely because there's no separate meeting forcing the conversation to happen.

There's no single correct number, because the right buffer depends entirely on what's driving demand for that SKU. Evergreen, always-on advertising needs only a modest cushion against normal variance. A scaling ad campaign, a time-boxed flash sale, or an unplanned organic spike each carry a different, higher risk profile and need a buffer calculated against that specific scenario rather than a flat percentage applied across the whole catalogue.
Beyond the lost sales themselves, an under-stocked campaign often keeps spending after the stockout, because nobody paused the ad in time — meaning you continue paying to acquire customers you cannot fulfil. For time-boxed campaigns like flash sales, a stockout can effectively end the promotion early and waste the media budget allocated to drive traffic to a product that's no longer available.
Start with a simple rule rather than complex software: define a spend-increase threshold that automatically triggers a buffer review on the affected SKU, and require any planned flash sale or time-boxed campaign to have its worst-case buffer sized and locked in before the campaign goes live, not adjusted reactively once it's running. The mechanism matters less than making sure marketing's plans and fulfilment's stock levels are reviewed on the same cadence.
No. A flat safety stock percentage applied to every SKU tends to over-buffer your steady, predictable sellers (tying up working capital unnecessarily) while under-buffering the SKU that happens to be the centre of your next big campaign. Calibrating buffer to campaign type and current ad spend, rather than treating every product identically, is a better use of the same total inventory investment.