Talk to a CFO
Eightx Talk to a CFO
← All Insights

eCommerce

Demand Forecasting for DTC Brands: A SKU-Level System

·By Matt Putra, Managing Partner ·15 min read

Build a bottoms-up SKU forecast (trailing 12-month sell-through times a seasonal index times growth), reconcile it against your top-down revenue plan, then size safety stock per SKU with Z times lead-time variability times demand. Update weekly. Most DTC brands run 30-40% forecast error; this cuts it roughly in half on core SKUs.

Demand Forecasting for DTC Brands: A SKU-Level System

Key Takeaways

  • Most DTC brands run at 30-40% forecast error (MAPE) and call it good, but the volume-weighted number (WMAPE) at those same brands often tops 60%. The forecast is least reliable exactly where the revenue is: your top SKUs.
  • 70% of shoppers who hit a stockout buy from a competitor instead of waiting, and 10-20% never come back. When you spend to acquire a customer and stock out before their second order, you have paid for a competitor's customer.
  • 20-30% of DTC inventory ends up as slow-moving overstock because brands over-order to hedge against stockouts. Both problems come from the same broken forecast, not from bad luck.
  • A flat 4-week safety-stock buffer can lock up 8x more cash than you need on a low-variability supplier. The statistical formula (Z times lead-time variability times demand) protects better and costs less.
  • Target 90-120 days of inventory on hand. Brands sitting at 250-plus days (usually from chasing MOQ price breaks) are self-financing their own growth constraint.

Most DTC founders find out their forecasting is broken the hard way. Either they run out of their best-selling SKU (stock-keeping unit, a single product variant) halfway through Q4, or they take delivery of a container full of 90-day inventory that clogs their cash flow for the next six months. Those look like opposite problems. They are the same problem: a forecast that nobody trusts, bolted onto a reorder process that nobody owns.

The root cause is that most brands run two disconnected systems. There is a top-down revenue target the founder built in a spreadsheet, and there is whatever the ops team or the 3PL is actually doing on reorders. The two never meet. This post closes that gap. It walks through a single SKU-level system: a bottoms-up sell-through forecast, a top-down overlay to sanity-check it, safety stock sized to each supplier's real reliability, and a weekly cadence to keep it honest. None of it requires a data science team.

Why your forecast is probably wrong (and costing you either way)

Here is the uncomfortable benchmark. Most DTC brands run at 30-40% forecast error blended across a mixed catalog, measured as MAPE (mean absolute percentage error, the average gap between forecast and actual across your SKUs). Many founders hear that number and think it sounds fine. It is not fine, and the headline number hides how bad it gets. When you weight the error by sales volume (WMAPE), the same brands often top 60%. In plain terms: your forecast is least accurate on the SKUs that drive the most revenue, because those are the ones with the most variability and the most promotional noise.

Both failure modes flow from that one broken number. Stock out, and roughly 70% of shoppers who hit an out-of-stock page buy from a competitor rather than wait. A widely cited logistics analysis puts the global cost of stockouts near a trillion dollars a year. Worse for DTC specifically: 10-20% of those shoppers never come back. When you have spent to acquire a customer and you stock out before their second order, you have effectively paid to hand a competitor a customer. Over-order to avoid that, and 20-30% of your inventory turns into slow-moving overstock that ties up the cash you needed for marketing.

When I talk to founders running a brand in the $2M-$10M range, the moment that lands is when they realize the cash crunch they have been blaming on suppliers or on ad costs is actually a forecasting problem wearing a disguise. The pattern we see again and again is a brand sitting on far too much of the wrong SKUs and far too little of the right ones, at the same time, because the forecast never got specific enough to tell them apart.

The data you need before you build anything

You cannot forecast what you have not measured. Before you build the model, get four inputs clean.

First, trailing 12 months of SKU-level sell-through. Sell-through rate is units sold divided by units you had available to sell, per SKU, per period. It is the foundation of the whole bottoms-up because it tells you demand independent of how much you happened to have in stock. Second, supplier lead times, both the average and the standard deviation, pulled from your own purchase-order history rather than the supplier's promise. The variability matters more than the average. Third, a seasonal index by month (built below). Fourth, your top-down revenue plan, so you have something to reconcile the bottoms-up against.

The seasonal index is the piece most brands skip. To build it, pull monthly units for a SKU over the trailing 12 months, divide each month by the 12-month average, and the ratio is that month's index. Here is what it looks like for a typical DTC apparel brand.

MonthSeasonal indexWhat it means
January0.65Post-holiday slowdown, the lowest month for most apparel
February0.70Slight pickup
March0.85Spring reset
April0.95Spring in full swing
May1.00Average month (baseline)
June1.10Summer demand building
July1.05Mid-summer
August1.15Back-to-school
September1.10Fall arrival, high intent
October1.25Pre-holiday ramp
November1.80BFCM peak, 80% above average
December1.60Holiday, tapers after Dec 15
Illustrative monthly seasonal index for a DTC apparel brand. Build your own from trailing 12-month units per SKU. Source: Eightx.

Returns are quietly eating your margin. See by how much.

Get our Real Cost of Returns calculator: plug in your numbers, see the true hit per return.

On its way.

Check your inbox. We'll send the Real Cost of Returns calculator shortly.

The bottoms-up SKU forecast, in three steps

The core method is simple enough to run in a spreadsheet, which is the point. It has to be simple enough that you actually maintain it.

Step one, forecast each SKU from the bottom. Take the SKU's trailing 12-month average monthly sell-through, multiply by next month's seasonal index, then multiply by your growth rate. A SKU that sold an average of 1,000 units a month, heading into November (index 1.80) with 20% year-over-year growth, forecasts to 1,000 times 1.80 times 1.20, or 2,160 units.

Step two, build the top-down overlay. Take your total revenue plan for the month, divide by average unit value, and you get implied total units. This is your sanity check, not your forecast.

Step three, reconcile. Sum the bottoms-up SKU forecasts and compare to the top-down implied units. If they are within about 10%, trust the bottoms-up, because it is specific. If they diverge more than that, one of them is wrong and you go find out which before you cut a single PO. This reconciliation is the whole game.

When I talk to founders at this stage, the way one $5M apparel operator put it stuck with me: the objective is to do a bottoms-up forecast that matches the top-down they already have, so that on a per-SKU or per-collection basis they can finally see what inventory they have versus what they actually need to hit the sales they are targeting. That is the entire system in one sentence. What accuracy should you expect once you are running it? Anchor your expectations to the SKU type.

Category and SKU typeTypical MAPEBest-practice targetNotes
Stable DTC SKUs (FMCG-like, 12+ months history)20-30%10-20%Seasonal models beat moving averages
Fashion/apparel core styles (seasonal, recurring)30-45%25-35%Needs a promo adjustment layer
Fashion/apparel new styles (< 6 months history)45-70%35-50%Borrow a comparable SKU, overlay judgment
Beauty / supplements (subscription-like)15-25%10-18%High repurchase rate lowers variance
DTC portfolio average (WMAPE)60%+< 30%The honest number most brands never track
Forecast-error benchmark ranges by DTC category and SKU type. Source: Drivepoint, SupliiChain, IBF Benchmarking Forecast Errors 2023-2024 (paywalled; figures secondhand via Drivepoint/SupliiChain).

Safety stock: how much buffer per SKU

Once you have a forecast, safety stock is the buffer that absorbs the difference between what you predicted and what actually happens, plus the risk that a supplier runs late. The formula is standard supply-chain math: safety stock equals Z times the standard deviation of lead time times average daily demand. Z is your service-level factor. For a 95% cycle service level, Z is 1.645; for 90%, it is 1.28.

The mistake almost every brand makes is skipping this and setting a flat buffer instead, "keep four weeks of everything." That feels safe and quietly wrecks your cash. A flat four-week buffer is just daily demand times 28, applied identically to a rock-solid supplier and a chaotic one. The statistical formula sizes the buffer to how unpredictable each supplier actually is. Watch what that does to the numbers.

SKU scenario (100 units/day)Lead-time std devStatistical safety stock (95%)Flat 4-week bufferCash difference
Low-variability supplier2 days329 units2,800 units2,471 units over-held
Medium-variability supplier5 days823 units2,800 units1,977 units over-held
High-variability supplier12 days1,974 units2,800 units826 units over-held
Flat four-week buffer versus the statistical formula (Z times lead-time std dev times daily demand), 95% service level. Source: Netstock, MIT (King) safety-stock guidance.

On the low-variability supplier, the flat buffer locks up more than 8x the cash you actually need. Multiply that across a catalog and you have found where your working capital went. Set service levels by SKU class: A-class hero SKUs at 95-98%, B-class core at 90-95%, C-class long tail at 85%. And carry it into the reorder point, which is average daily demand times average lead time, plus safety stock.

This is also where over-buying to chase price breaks bites. One founder we came across handled it the hard way and the right way: he decided to stop chasing a lower unit cost and instead crush his on-hand balance, running bi-weekly orders for a full year. It was, in his words, a clusterfuck of work, but he held a very low inventory balance because he could adjust to whatever was actually happening, and the cash-flow benefit more than paid for the higher unit cost. When we review a brand's P&L and the first thing that jumps out is 250-plus days of inventory on hand, this is almost always the fix. We would steer most brands to three to four months at the outside; getting there frees up real liquidity.

The weekly update system that keeps it honest

A forecast you build once and file away is worthless by week three. The system is a cadence, not a document.

Every Monday, pull actual sell-through for the week and lay it next to the forecast. Flag any SKU tracking more than 15% above or below plan. A SKU running hot is a reorder-early signal; a SKU running cold is a promo-or-hold decision before you commit more cash. That is the whole weekly ritual, and it takes an hour once your sheet is built. Monthly, you do the heavier pass: reset seasonal indices with the latest actuals and re-run the top-down reconciliation.

The forecasting template we use with founders starts narrow on purpose: the top 10 to 20 SKUs, run from the basic principle of knowing how inventory sits versus actual versus forecast, SKU by SKU. You do not need to forecast the long tail with precision. You need to forecast the SKUs that make the money and keep the tail from silently accumulating. For a brand with thousands of SKUs, that long tail is exactly where safety stock quietly balloons and gets inefficient, and you usually cannot cut it without hurting the brand promise, so you manage it with lower service levels rather than pretending you can predict it.

Stockouts and dead stock are not two problems. They are one broken forecast showing up in two places. Fix the forecast to the SKU level, size the buffer to the supplier, and update it weekly, and both problems shrink at the same time, along with the cash you have trapped in inventory.

Tools: spreadsheet, Inventory Planner, or Cin7?

You do not need software to start. You need it to scale.

Spreadsheet. Under roughly 50 SKUs, a disciplined sheet is genuinely fine and has one big advantage: building it forces you to understand the math, so you can spot when the tool is wrong later. This is the right first step for nearly everyone.

Inventory Planner (by Sage). A specialist forecasting and replenishment layer that sits on top of your store or OMS. This is the upgrade for a Shopify brand scaling past what a sheet can maintain, where you want automated replenishment suggestions and seasonal modeling without becoming a spreadsheet operation.

Cin7. Its ForesightAI analyzes up to two years of sales history across roughly 100 algorithms for SKU-level forecasts. The pitch here is one platform for both operations and forecasting, which fits multi-channel brands (Shopify plus Amazon plus wholesale) that are tired of stitching tools together.

Pick based on SKU count and channel complexity, not on whichever vendor has the longest feature list. The method in this post works the same in all three. The tool only changes how much of it you maintain by hand.

Related reading. For the ordering discipline that keeps a forecast honest, see how to forecast demand without over-ordering, and for the FBA-specific layers, see Amazon FBA forecasting and FP&A. For how we build the SKU-level plan with brands, see our fractional CFO work.

Sources and methodology

Forecast-error benchmarks are converging ranges, not a single study. The 10-20% MAPE for stable DTC SKUs and 25-40% for fashion appear consistently across Drivepoint's DTC supply-chain forecasting analysis and SupliiChain's breakdown of MAPE versus WMAPE. Treat them as industry benchmark ranges, not a single authoritative source. The IBF Benchmarking Forecast Errors 2023-2024 report referenced by those sources is paywalled, so its exhibit figures are secondhand.

Safety-stock and reorder-point figures are calculations, not survey data. The safety-stock table applies the standard formula (Z times lead-time standard deviation times average daily demand) documented by Netstock and in MIT's supply-chain safety-stock reading (King). The unit numbers are what the formula produces for the stated inputs, presented as worked examples.

Stockout impact figures come from DTC logistics guides citing HBR and industry studies. The 70% competitor-defection rate and the 20-30% overstock share are from GoBolt's DTC inventory-management analysis. The 10-20% permanent customer loss figure comes from DTC statistics compilations (Paperstack, Envive) citing Harvard Business Review research on repeat-purchase economics; it is not carried by GoBolt. These are well-sourced estimates rather than primary survey data; the trillion-dollar annual stockout cost is a widely cited figure whose original study is not cleanly verifiable, so it is presented as an estimate.

Operator patterns are drawn from Eightx advisory work, fully anonymized. The 90-120 days on-hand benchmark, the bi-weekly PO cadence, the 250-plus days diagnostic, and the top-10-to-20-SKU template reflect recurring patterns across the brands we advise. No client is named or identifiable, and figures are illustrative of the pattern, not tied to any single brand.

Frequently asked questions

what is a good forecast accuracy (mape) for a dtc brand?

It depends on the SKU. Stable, high-repeat SKUs with 12-plus months of history can hit 10-20% MAPE. Fashion and seasonal core styles are more like 25-35%, and brand-new styles under six months old are 35-50% at best. The number most brands never look at is WMAPE, the volume-weighted version, which often tops 60% because the forecast is worst on the SKUs that matter most.

how do i forecast inventory for a new sku with no sales history?

You borrow. Take the sell-through curve of the closest comparable SKU you already sell, apply your category seasonal index, and haircut it for launch uncertainty. Order conservatively for the first buy, watch the first four to eight weeks closely, then reforecast off real data. New SKUs are where forecast error is highest, so keep the first PO small and reorder fast.

how do i build a seasonal index for my products?

Pull monthly units sold per SKU (or per collection) over the trailing 12 months, divide each month by the 12-month average, and that ratio is the month's seasonal index. A November index of 1.80 means November runs 80% above your average month. Smooth across two or three years if you have the history so one weird month does not distort it.

what is the safety stock formula and how do i calculate it?

Safety stock equals Z times the standard deviation of your lead time times average daily demand. Z is your service-level factor (1.645 for 95%). Pull your lead-time variability from your own PO history, not the supplier's promise. This sizes the buffer to how unpredictable a supplier actually is, instead of a flat number of weeks.

how often should i update my demand forecast?

Weekly for the reorder decision, monthly for the plan. Every Monday, pull actual sell-through and flag any SKU tracking more than 15% above or below forecast. The monthly pass is where you reset seasonal indices and reconcile against the top-down revenue plan. Weekly beats monthly because it catches a runaway SKU before you stock out.

what's the difference between bottoms-up and top-down inventory forecasting?

Top-down starts from a revenue goal and works back to total units. Bottoms-up starts from each SKU's sell-through and adds them up. Most brands run only the top-down number and let ops guess at reorders, which is how the two drift apart. The system is to build both and reconcile them, so your PO plan and your revenue plan agree.

how much inventory should i carry in days or months on hand?

For most DTC brands, 90-120 days (three to four months) is the target. Below that you are fragile to a late container; well above it, usually 200-plus days, you have tied up cash that could fund marketing or product. Brands chasing MOQ price breaks are the ones that quietly drift to 250-plus days and wonder where their cash went.

which forecasting tool should i use: spreadsheet, inventory planner, or cin7?

Under about 50 SKUs, a disciplined spreadsheet is fine and forces you to understand the math. Scaling past that on Shopify, a specialist layer like Inventory Planner handles replenishment logic a sheet cannot. Multi-channel brands that want forecasting and an operations platform in one usually land on Cin7. Pick based on SKU count and channel complexity, not on the longest feature list.

About the Author

Matt Putra, Managing Partner

Matt is the Managing Partner of Eightx, a fractional and interim CFO firm managing $650M+ in revenue across 35+ ecommerce, DTC, and CPG portfolio brands across the US, Canada, Australia, and the UK. A former PE investor with $500M+ deployed, Matt specializes in benchmark-driven financial leadership for apparel, beauty, food and beverage, and household brands.

Your forecast is the cash problem, not your suppliers

Get a CFO read on your inventory plan before your next big PO

30-minute call. We will stress-test your SKU forecast, safety stock, and days-on-hand against your revenue plan and your cash position.

Talk to a CFO