Forecast at style, color, and size. Hold wholesale pre-book and DTC demand apart until the buy is committed.
Attribute analogs for new styles, size curves per category and channel, and channel-aware availability, all reading from the same product, order, and inventory records that run your business.
Built for apparel brands between $5M to $100M running wholesale and DTC off shared inventory.
















180 × 5 × 8 = 7,200
180 styles, 5 colorways, 8 sizes is an ordinary mid-market apparel range. That is 7,200 forecast lines before wholesale and DTC are separated out.
The buy sheet holds one number per style. Everything below the style line is a default curve applied out of habit.
Illustrative assortment arithmetic, not a customer figure.
Fabric gets reserved before the range is final, because the mill needs the commitment and the lead time does not care about your calendar. Cut quantities are committed on a spreadsheet only one person can open, with like-style references hardcoded in a column nobody else can interpret.
Twelve weeks after delivery, the merchandiser is reading style-level sell-through. The number looks average. Underneath it, medium sold out in week three and the largest size has not moved at all. Nobody raises a reorder, because at style level nothing looks urgent.
In week 14 the tails get marked down. The post-season review records that the forecast was close on the style total, which is true, and files it as a reasonable season.
Forecast error at the production commit is a capital decision. Forecast error at reorder is an operating decision. Most brands run one weekly report and treat both as the same problem.
The large demand planning platforms were built for consumer packaged goods, grocery, and industrial distribution. In those categories the hard problems are promotional lift, cannibalization, and replenishment frequency, and the founding assumption is a stable item master: a SKU that existed last year and generates a continuous series a model can fit.
Retail demand forecasting in those categories is largely a question of reading an existing series well. Apparel rarely gets that luxury, because the thing being forecast usually has no series at all.
Apparel breaks that assumption on six axes at once. Most of next season does not exist yet. The commercial unit is style, color, and size rather than a single SKU. The size dimension carries its own distribution that is invisible at style level. Demand arrives in two incompatible forms. Availability is channel-dependent rather than a single pooled number. And the objective is full-price sell-through, not service level.
The loss in apparel is rarely the stockout. It is the markdown on the overbought half of the buy.
Apparel does not forecast new styles from time series, because there is no series. It forecasts by analogy, which means the quality of an apparel forecast is mostly the quality of analog selection.
Five mechanics do the work. Attribute-based analogs match on category and silhouette, fabric and construction, price tier position within your own ladder, drop position and delivery window, channel intent, and fashion level. Like-style assignment expresses the new style as a ratio of that reference rather than a fresh guess. Comparable colorway logic matters more than teams expect, because core neutrals carry a disproportionate share and sell over a longer window while fashion colors sell fast at the front of a drop and die sooner, and the color split determines fabric commitment by color, one of the least reversible decisions on the calendar. Prior-season equivalent forecasts the slot in the range rather than the product identity. Constrained-history blending shifts weight from the analog to the style's own actuals as observations accumulate, governed by data volume rather than by calendar date.
In apparel, forecast accuracy is mostly analog selection accuracy. If you cannot query your own sales history by fabric, price tier, delivery window, and channel, you are not forecasting new styles, you are guessing with a spreadsheet open.
A style forecast of 1,200 units is not actionable on its own. Production is cut at style, color, and size. Allocation ships at style, color, and size. Sell-through dies at style, color, and size.
Size error does not average out. It compounds into broken runs. Once the core sizes are gone, what remains is a set of units the market already declined at full price. Wholesale reorders stop, because buyers will not take a broken run. DTC conversion drops, because the size the customer wants is out while the style still shows in stock. The style is functionally dead while the report shows healthy inventory.
Curves vary on more axes than most brands maintain: by category and fit block, by channel, by account within wholesale, by region, by price tier and fashion level, and over time as the curve drifts. Channel matters most and is skipped most often. Wholesale is filtered through what buyers will carry, DTC is the raw distribution and is usually wider at both ends, so a blended curve is wrong for both.
What good looks like is unglamorous: curves maintained per category and channel, derived from demand rather than sales because sales history is censored by stockouts, returns netted by size, and each curve versioned by season with a named owner. See the role of data in apparel inventory planning for how that history gets built.
Wholesale pre-book is a forward signal. It is placed six to nine months ahead, it is contractual, it is specific to style, color, and size, it is dated to a ship window, and it is attached to a named account. It is a commitment, not a prediction. It lives in order management and the B2B portal.
DTC is a reactive signal. There is no forward book at all. What it gives you instead is high-resolution truth about what is selling right now, at full price, by size, with returns attached.
Four things make blending them hard. They resolve on different clocks, so at commit time one half is nearly known and the other is entirely forecast, and averaging destroys exactly that information. The book is not the demand, because pre-books get cut, cancelled, shipped short, or padded, and a flat brand-wide cancellation discount is the usual crude fix. DTC actuals are censored and marketing-dependent, so uncorrected actuals propagate last season's stockouts and last season's ad calendar into this season's buy. And the channels compete for the same physical units, which makes the demand plan and the allocation policy the same decision.
Wholesale tells you what you have to make. DTC tells you what you should have made. A demand plan that cannot hold both at once collapses into whichever number the loudest team is quoting that week.
| Signal | What it tells you | What it should decide |
|---|---|---|
| Wholesale pre-book | Committed units by account and ship window | The floor on the cut quantity |
| Wholesale reorder rate | Whether the book was conservative | Chase quantity and fabric held back |
| DTC sell-through by size | Raw demand distribution at full price | Size curve for the next buy |
| DTC returns by size | Fit problems the sales number hides | Curve correction and spec review |
| Stockout timing | Where demand was censored | Demand reconstruction before curve fitting |
| Marketing calendar | Why a week spiked | Whether to trust the week as signal |
| Chase lead time | What is still reversible | How much of the buy to defer |
Two regimes run at once. Continuous replenishment applies where history exists and weeks of supply is the right metric. Finite-life drop planning applies where terminal zero is the goal, sell-through against an expected curve is the right metric, and weeks of supply is actively misleading.
| Planning class | Forecast method | Terminal state | In-season action |
|---|---|---|---|
| Core, never out of stock | Time series on its own history | Continuously replenished | Reorder against weeks of supply |
| Carryover | Prior-season actuals, adjusted | Carried until demoted | Reorder, watch for decay |
| Seasonal repeat | Same slot last season, same delivery window | Sell down near season end | Chase if the window allows |
| Fashion or drop | Attribute analog, no own history | Deliberate terminal zero | Read sell-through against the planned curve |
| Capsule or collab | Analog plus distribution assumption | Sells out by design | No reorder, protect the scarcity |
The anti-pattern is running one policy across both. Reorders get raised on styles whose fabric is gone and whose lead time exceeds the remaining window, while a core basic sits out of stock for six weeks with no trigger. Both failures come from the same root cause, which is a missing planning class on the product record.
Chase capacity belongs in the plan as an input, not as a hope: what can you actually chase, from which supplier, in what lead time, at what minimum, at what cost premium. The in-season budget the plan runs inside is your open-to-buy position.
Forecasting predicts what you will sell over a season. Replenishment decides what to move where, today, given what you actually sold yesterday. This page covers the first job. Retail replenishment planning covers the second.
Over-forecasting costs you lost gross margin on every discounted unit, carrying cost while the stock sits, off-price recovery that is frequently below cost, the brand cost of visible discounting that trains your DTC customer to wait for the sale, the opportunity cost of capital locked in the wrong styles, and allocation drag on the team.
Under-forecasting costs you lost full-price margin, a lost wholesale reorder that sometimes takes the door with it, broken runs that suppress sell-through on the units you do have, and acquisition spend landing on an out-of-stock page.
These are not symmetric. The marginal unit you failed to make would have sold at full price. The marginal unit you over-made sells at a discount, below cost, or not at all. That asymmetry, not the forecast error itself, is what sets the right buffer.
Cost of one unit short = (retail price - variable cost) x probability demand was real and full-price
Cost of one unit long = landed cost - expected net recovery + carrying cost over the holding period
Target service level for the buy = Cost short / (Cost short + Cost long)
Fill in your own numbers. The point is not the arithmetic, it is that most brands never calculate the second line, so the buffer gets set by temperament rather than by margin structure. The replenishment-side version of the same question is the reorder point calculation.
Three lines for your CFO: we commit the buy before the demand signal exists, our cost of being long is not equal to our cost of being short, and today we set the buffer without calculating either one.
Plan at the level you cut, allocate, and mark down at, not at style total with a split applied afterwards.
Maintain and version curves by category, channel, and major account instead of one default tab applied to the whole range.
Forecast a style with no history from category, fabric, price tier, delivery window, and channel intent, using your own sales record.
Committed wholesale orders stay a commitment. DTC stays a forecast. The plan carries both with their confidence intact.
Read sell-through against the planned curve fast enough to use a chase window instead of finding out at markdown.
Reserved, in-transit, and committed pools visible per channel and location, so the plan is not built on one pooled number.
Machine learning earns its place in four specific jobs. Attribute-based cold start, which is doing systematically what the merchandiser does by eye when she picks a like style, except across the whole history rather than the three styles she happens to remember. Size curve estimation with demand reconstruction for censored sales, which is a well-defined statistical problem with a correct answer. In-season demand sensing fast enough to act inside a chase window. And exception surfacing, because flagging the twelve styles that need a decision this week beats a marginally better forecast on all six hundred.
It is overpromised everywhere else. No model predicts a hit with no history and no analog. Exogenous shifts, meaning weather, discretionary pullback, viral moments, and tariff changes, are outside the training data by definition. A brand with a few hundred styles a season and a few years of history does not have the data volume where deep models beat well-built analogs plus disciplined review. And a model trained on bad data returns a confident forecast that is precisely wrong.
AI is good at doing the analog method consistently across your entire history, and at reading in-season signal faster than a weekly meeting. It is not good at knowing which new style will be the hit, and it cannot be better than the sales data you feed it.
The longer version of this argument is in AI demand forecasting for apparel: what works and what overpromises.
Demand planning sits across three breakpoints rather than forming a new one. It depends on Breakpoint 1, product data, because attribute-based forecasting is impossible when attributes live in the PLM and sales history lives somewhere else. It depends on Breakpoint 3, inventory truth, because a forecast built on a pooled stock number with late-posting returns is confidently wrong. And it reads Breakpoint 4, order flow, because wholesale bookings and DTC velocity are the demand signal itself.
That is why a forecasting engine bolted onto disconnected systems disappoints. The model is rarely the constraint. The joinability of product, order, and inventory data is the constraint.
Read the 6 Breakpoints framework, or take the assessment to see which breakpoint is costing you most today.
The plan lives in a buy sheet only one person can open.
Symptom: when that person is on leave, the reforecast does not happen.
Forecasting at style level, then applying one default size curve to the whole range.
Symptom: styles hit their total and still end the season with broken runs and marked-down tails.
Treating the wholesale book as the whole demand plan.
Symptom: DTC is served from whatever wholesale did not take, and the DTC stockouts look random.
Reading sell-through on pooled, uncorrected data.
Symptom: sizes that sold out in week three are recorded as weak sizes and get cut next season.
Running replenishment logic on drop styles and drop logic on core.
Symptom: reorders raised on styles whose fabric is gone, while a core basic sits out of stock for six weeks.
Measuring forecast accuracy but never calculating forecast cost.
Symptom: the team celebrates a better MAPE in a season that carried a larger markdown.
Every team quoting a different demand number in the same meeting.
Symptom: the buy gets decided by whoever is most senior in the room rather than by the data.
| Capability | Spreadsheet demand planning | Uphance |
|---|---|---|
| Forecast level | Style total, size split from one default curve | ✓ Style, color, and size, with curves per category and channel |
| New style forecasting | Like style picked from memory, never recorded | ✓ Attribute analogs from your own history, stored with the plan |
| Wholesale pre-book | Pasted in as a total and blended with the DTC guess | ✓ Held as a booked commitment, separate from forecast demand |
| Size curves | One tab, no owner, applied to every style | ✓ Per category, channel, and account, versioned by season |
| Stockout correction | Sold-out sizes read as weak sizes | ✓ Lost demand reconstructed so curves fit demand, not censored sales |
| In-season reforecast | Weekly export, three days to assemble, one to argue about | ✓ Sell-through by size against the planned curve, live |
| Channel availability | One pooled stock number | ✓ Channel-aware available-to-sell across locations and 3PLs |
| Plan to PO and cut | Retyped into the PO and the production order | ✓ Forecast quantities flow through without a second entry |
| Audit trail | Last season's file, overwritten | ✓ Every version retained, so analogs can be scored after the season |
"As we expand globally, consistency matters. Inventory accuracy, fast fulfillment, and a customer experience we can stand behind in every region. Uphance gives us an operational backbone we can scale across warehouses, 3PLs, and channels without losing control."
| Metric | Before Uphance | After Uphance |
|---|---|---|
| Season planning cycle | Baseline | Compressed by about 3 weeks |
| Oversell rate at peak | Recurring issue | Held under 0.5% |
| Reconciliation time across channels | Baseline | Cut roughly two-thirds |
Lufema, a multi-entity wholesale distributor, runs inventory accuracy around 99 percent, up from 90 to 95 percent, and carries about 20 percent less excess stock since consolidating onto Uphance.
Retail demand planning does not need software on day one. A spreadsheet is the correct tool when there is one primary channel, under roughly 150 to 200 active style and color combinations a season, one fulfillment location you control, one owner with capacity to maintain it, and exportable history you trust. Past those conditions it stops being a plan and becomes a record of one person's judgment.
| Demand forecasting | Produces the number. How many units of a style, color, and size you expect to sell in a stated window. |
| Demand planning | Turns the number into a committed buy, reconciled against pre-book, capacity, open-to-buy, lead times, and channel priority. |
| Supply planning | Decides how you get it there: which factory, which lead time, which fabric commitment, which shipment. |
In apparel the last two are unusually tight, because fabric reservation happens before the demand signal is complete. A plan that ignores minimum order quantities, cut windows, and chase lead times produces quantities the supply side cannot execute.
45 minutes, prepped around your own range and calendar:
This is not a self-serve setup. We start with a discovery conversation so the demo is built around your operation.
Book a tailored demo →We map your range structure, channels, planning calendar, and where the size split comes from today
Planning classes, size curve sets, channel priority, and attribute fields set up against your own range
Product attributes, order history, and inventory positions moved in and reconciled so the history is real
One season planned in both places so the team trusts the numbers before the buy depends on them
Named onboarding lead through first commit, first in-season reforecast, and first post-season review
Buying a forecasting engine before product, order, and inventory data are connected produces a fast, confident, well-visualized forecast built on inputs the team does not trust. The engine is rarely the constraint.
The prerequisite order is specific. One product record with planning attributes present and consistent, because analogs are queries against attributes. One order record across wholesale, DTC, and marketplaces, with bookings, cancellations, and shipments distinguished from one another. One inventory position across locations and 3PLs, with returns posting promptly and stockouts marked. Only then does a demand plan sit on history that is real.
The uncomfortable version, stated plainly: most brands in this band who think they need demand planning software actually need connected operations first. Once that is true, demand planning becomes a modeling layer over data worth modeling. That is the argument for a unified platform over a standalone forecasting tool, and it is also the reason we will tell you on the first call if the sequence is wrong.
If you arrived here from an inventory forecasting question, the inventory truth scorecard is the faster diagnostic.
Start with a brief discovery conversation. We will learn how your range, channels, and planning calendar work today, assess fit, and prepare a demo around your own styles and history.
Discovery conversation first. We scope against your actual range, channels, and calendar. This is not a self-serve setup.