Inventory Forecasting Basics for DTC Ecommerce Stores

Inventory Forecasting Basics for DTC Ecommerce Stores

Forecasting isn't predicting the future. It's deciding, on a schedule and with a measured buffer, when to send your supplier money — which is a much easier problem.


The email arrives in week three of your best month ever: "Hey — trying to order the 20oz in Sage and it says sold out. When is it back?" You check. It's not just Sage. Your best seller is gone in four of six variants, your supplier's lead time is 35 days, and the purchase order you meant to place two weeks ago is still a draft. Meanwhile, in the corner of the garage, a pallet of the colorway that seemed like a sure thing in January hasn't moved since March.

You've been here before. Last time, you swore you'd get serious about inventory forecasting — and then the ecommerce inventory forecasting content you found talked about demand-sensing algorithms, machine learning, probabilistic models. You have 40 SKUs and a spreadsheet. So you closed the tab and went back to ordering by feel.

Here's the reframe this post is built on: the reason you keep stocking out has nothing to do with missing algorithms. It's that reordering happens when you notice, instead of when a number says so. Fixing that takes five inputs you already have and arithmetic you can do on paper.

The Lie That Keeps Stores Ordering by Feel

The belief that stalls most DTC operators: "Real forecasting needs data science, and my demand is too unpredictable for it anyway."

Both halves are wrong. The data-science version of forecasting exists for businesses with tens of thousands of SKUs, where a 1% accuracy gain is worth millions. At 40 or 400 SKUs, the sophisticated model and the simple one produce nearly the same purchase orders — because at your scale, the errors that hurt you aren't modeling errors. They're process errors: nobody looked at velocity this month, nobody wrote down that the supplier slipped two weeks last time.

And "too unpredictable" mistakes what a forecast is for. You're not trying to predict that you'll sell exactly 187 units in March. You're answering one operational question: when do I reorder, and how much, so I don't run out before the next shipment lands — without burying my cash in stock I don't need? That question tolerates a lot of unpredictability, because the buffer for unpredictability is part of the math.

The Five Inputs an Ecommerce Inventory Forecast Actually Needs

Everything in a working DTC forecast comes from five numbers per SKU — all of them available from a sales report and your last few purchase orders.

1. Trailing sales velocity, by SKU. Units sold per day, averaged over a trailing window — 30 days for fast movers, 90 for slower ones so a single good week doesn't distort the average. This is the engine of the forecast, and it must be per SKU, not per product. "The tumbler sells 12 a day" is useless if Sage sells 6 and Mustard sells 1.

2. A seasonality multiplier. Divide each month's sales by your average month: November might be 1.8, February 0.7. Apply the multiplier to the period the inventory will actually sell in, not the period you're ordering in — an October PO for stock landing in November gets November's number.

3. Supplier lead time — and its variability. Not the number on the quote. The actual days from PO sent to stock sellable, from your last several orders: 32, 29, 41, 35. The average drives the reorder point. The spread — that 41 — drives your safety stock.

4. MOQ and order constraints. Minimum order quantities, case-pack sizes, and price breaks don't change when you reorder, but they set the floor on how much — which matters enormously for cash, as we'll get to.

5. Planned promotions. A sale is demand you're scheduling on purpose. If the Black Friday bundle did 3× normal velocity last year, that spike goes into the forecast as an explicit line — and gets removed from trailing velocity afterward (a trap with its own section below).

That's the complete list. The skill isn't mathematical — it's keeping these five numbers current instead of guessing them each time.

The Reorder-Point Math, Walked Through

Here's the arithmetic, using fictional round numbers: your bestselling tumbler in Sage.

  • Trailing 90-day velocity: 6 units/day
  • Busiest recent 30-day stretch: 8 units/day
  • Supplier lead time: 30 days average, 40 days at worst
  • MOQ: 500 units

Step one: lead-time demand. You need enough stock to survive the wait for the next shipment: 6 units/day × 30 days = 180 units. That's the bare-minimum reorder point in a world where nothing varies.

Step two: safety stock. Nothing about that world is real, so you add a buffer. A simple, defensible formula: worst-case demand over worst-case lead time, minus the average case.

(8 units/day × 40 days) − (6 units/day × 30 days) = 320 − 180 = 140 units of safety stock

Step three: the reorder point. 180 + 140 = 320 units. When Sage's on-hand-plus-on-order count drops to 320, you send the PO. Not when it feels low — at 320.

Two things about safety stock, the most misunderstood number in the calculation. First, be precise about what it hedges: the two ways the average lies to you — demand running hotter than the trailing average, and the supplier running slower than theirs. It isn't vague "just in case" padding; it's sized by your SKU's demand spread and your supplier's track record, which is why input #3 asked for the history and not the quote.

Second, safety stock is a dial, not a commandment. The formula is conservative — it assumes bad demand and bad lead time hit simultaneously. For a slow mover, or when cash is tight, you can size it down and accept more stockout risk. The point is that it becomes a decision made with numbers, not an accident discovered in a customer email.

Step four: how much to order. The reorder point says when; the order quantity is a separate decision. A clean starting rule: order your target coverage window — say, 60–90 days of expected velocity, seasonality-adjusted — then round up to the MOQ or the next case-pack. For Sage heading into a 1.5× season: 6 × 1.5 × 60 days = 540 units, which clears the 500 MOQ anyway. For a slow mover doing 1 unit a day, that same MOQ is 500 days of stock — the moment to negotiate the MOQ, consolidate variants, or question the SKU's existence.

[IMAGE: Simple diagram of the reorder point — a downward-sloping stock line crossing the 320-unit reorder threshold, PO placed, stock arriving just as the line approaches the 140-unit safety band]

Where Ecommerce Inventory Forecasting Predictably Fails

The math is the easy part. These three failure modes are where real stores get hurt.

The asymmetry: stockouts and overstock don't cost the same

A stockout's visible cost is the missed sales during the gap. The hidden cost is worse: ad campaigns you pause (and re-learn at a higher CPA when they restart), subscribers who churn because their reorder wasn't there, first-time buyers who arrived the week you had nothing to sell, and organic rankings that slip while the listing is dead. For an evergreen, replenishable product — the kind DTC brands are built on — a three-week stockout can suppress velocity for months after restock.

Overstock's cost is carrying cost: cash locked up, storage, the eventual markdown. Painful, but gradual and usually recoverable — if the product doesn't expire, date, or go out of style.

So the right bias depends on the product type. For evergreen core SKUs, err toward overstock — generous safety stock, early reorders — because the stockout is the expensive tail. For seasonal, fashion, or perishable SKUs, flip it: unsold stock doesn't just tie up cash, it evaporates into clearance, so lean orders beat buffers. Running one bias across both product types is how stores end up out of the winner and buried in the loser simultaneously — the garage scenario from the top of this post.

The new-SKU cold-start problem

A new SKU has no trailing velocity, so the engine of the forecast is empty. Don't fake it with false precision. Borrow the launch curve of the most similar SKU you've launched before, scale it by your honest expectation, and — this is the actionable part — size the first PO to be wrong cheaply. A smaller first order with a fast reorder trigger beats a confident container. You're not forecasting yet; you're buying data. Placing the second PO on four to six weeks of real sales is the plan, not a failure of nerve.

The promo distortion trap

You run a two-week sale. It works — 3× velocity. Six weeks later, your trailing average is still inflated by those two weeks, your reorder points are all too high, and you're about to over-order across the catalog based on demand you manufactured with a discount.

The fix is mechanical: tag promo periods in your sales data and compute baseline velocity with those windows excluded. Promotions enter the forecast the way input #5 says — as explicit, planned demand — never silently through the trailing average. The trap runs in reverse, too: a stockout period drags your average down, telling you to order less of exactly the SKU that just proved you under-bought it. Exclude those windows as well; zero sales from an empty shelf is not demand data.

Spreadsheet First — and When the Spreadsheet Stops

Everything above runs in one spreadsheet: a row per SKU, columns for the five inputs, formulas for reorder point and order quantity, and a weekly 30-minute review where you update velocities and check what's crossed its threshold. For a single-channel store with up to a few hundred SKUs and finished goods, the spreadsheet is genuinely the right tool — not the budget compromise. You'll understand every number in it, which is more than most software implementations achieve.

The spreadsheet stops being honest at recognizable symptoms: a second sales channel, bundles and kits it can't decrement, multiple warehouses or a 3PL, or a SKU count where the weekly review stops actually happening — a stale forecast is just gut feel with formatting. At that point you want reorder logic that reads live sales data, in the replenishment-app class and up. We've mapped that landscape, by operational shape rather than by ranking, in our honest guide to the best inventory management software for Shopify and WooCommerce.

A Forecast Is a Purchase Schedule — Which Makes It a Cash Schedule

One more reframe, because it connects this to the rest of your business: every reorder point you set is a future payment with an approximate date on it. Sage crossing 320 units in mid-August is a supplier payment in mid-August. A finished forecast, read down the calendar, is a schedule of the largest recurring cash outflows your store has.

That matters because inventory-heavy stores rarely die of unprofitability — they die of a big PO landing in a thin week. Feeding your forecast's PO dates into a 13-week cash flow forecast turns "we should reorder" into "we can pay for the reorder on the Thursday it's due." And the ordering math is only as good as your unit economics: if your landed per-unit cost is fuzzy, your order-quantity decisions are fuzzy with it — our guide to COGS for Shopify sellers covers getting that number solid.

Start With Ten SKUs

Don't build the 400-row model this week. Take your ten highest-velocity SKUs — most of your revenue, all of your stockout risk — and run the method on just those: pull trailing velocity, write down real lead times from your last few POs, compute a reorder point, and put the weekly 30-minute review on the calendar. The tumbler email from the top of this post doesn't get prevented by better instincts. It gets prevented by a number — 320 — and the habit of checking it.

Ten SKUs, five inputs, one formula. That's inventory forecasting at DTC scale — and once the units are scheduled, the money side of the same discipline (COGS, cash timing, books that match the shelf) is covered in our complete guide to e-commerce accounting.

Stop Manual Data Entry Forever

Connect your store to QuickBooks in 15 minutes and let LedgerPort handle the rest.

Start Free See pricing →

Let’s Connect:

Automate Your E-commerce Accounting Today

Connect your Shopify or WooCommerce store to QuickBooks in under 15 minutes — no coding required.

14-day money-back guarantee · Free plan available