The store got the style. It got the wrong sizes.
Dynamics 365 Commerce records which products a channel carries and between which dates. It executes that faithfully. What it does not hold anywhere in that record is how much of each, in which sizes, at which store — the three numbers that decide whether a run sells through or gets marked down.
That number exists. It is usually a weight somebody typed, applied across a hierarchy, and not revisited since. We build the layer that derives it from the channel’s own rate of sale and writes the answer back into the records Dynamics already runs.
Commerce does assortment planning, and says so
Start with the concession, because the gap only matters once the capability is clear. The phrase “assortment planning” is Microsoft’s own, on current documentation, describing what a retail category hierarchy is for:
This hierarchy type is for merchandising, pricing and promotions, reporting, and assortment planning.
So this page does not claim Commerce lacks assortment planning. It claims something narrower and checkable: look at what the records actually hold.
A category node holds
- A name and a description
- A friendly name for the channel
- Keywords for search and merchandising
- A display order
An assortment holds
- A channel, or a group of them
- A product, or a category of them
- A date range it is valid for
Every one of those is an identifier or a membership. Not one is a quantity, a forecast, or a rate of sale. The plan is named, and it is never modelled.
Breadth is modelled. Depth is a typed weight.
Breadth — which products a channel carries — is a real decision and Commerce models it directly. Depth is the other half, and it is answered somewhere else: in replenishment, by a weight applied down a hierarchy.
A weight is a reasonable way to split a quantity when you have nothing better. The difficulty is that it is typically set once, applied to every store in a band, and left. It does not know that one of those stores sells the size run differently, or that a category has moved since the weight was chosen.
The ERP knows which stores carry the product. The margin lives in how many each one should have had.
What Dynamics manages
- Which channels carry which products, and when
- The category structure merchandising is organised by
- Replenishment that executes the parameters it is given
What it does not decide
- How deep to go per channel, from that channel’s own sales
- Which of the products in an assortment earn their space
- When a weight set at go-live stopped describing reality
Five decisions, and each one constrains the next
Apparel is where the gap costs the most, because a garment is not one product. It is a style in a colour across a size run, and every one of those dimensions is a separate decision that Dynamics records and does not derive. Get the fourth one wrong and the first three stop mattering — the store received the right style, in the right colour, in sizes nobody there wears.
These are the five, in the order they constrain each other. Each is a decision the ERP executes faithfully once someone has made it.
- 01
Allocation
How much of this style goes to which store?The quantity split. Dynamics executes the split you give it; the weight behind it is usually set once and applied to every store in a band.
- 02
Size curve
Which sizes, in what ratio, for this store?The dimension that turns a good allocation into a bad one. A national curve sent to every door guarantees a broken size run somewhere, and broken runs are what get marked down.
- 03
Design
What did the last run tell us to make?Sell-through by size, colour and fit is evidence about the next buy. It sits in transactional history and is rarely read back into the design decision. We have not researched this surface in Dynamics yet, and say so rather than implying depth we do not have.
- 04
Store clustering
Which stores actually behave alike?Clusters are usually drawn by region or by revenue band. Neither predicts what a store sells. The clustering that matters is the one derived from rate of sale by size and category.
- 05
Digital search merchandising
What does the channel surface, and in what order?The category hierarchy carries keywords and a display order. What it does not carry is which arrangement sold, which makes ordering an opinion rather than a measurement. Search relevance itself is unresearched on our side — the same honest gap as design.
The chain runs one way. A size curve computed on the wrong store cluster produces a worse allocation than no curve at all, because it is confidently wrong at every door in the group. That is why we start at the clustering and work outward, rather than optimising the number a merchandiser already argues about.
Three of these five are written up in depth below. Design and search relevance are not: we have not researched those surfaces in Dynamics, and naming a decision we can describe is different from claiming we have studied it. They are in the chain because leaving them out would misrepresent how the decisions constrain each other — not because there is an article behind them.
Beside the ERP, not inside it
The Assortment Optimizer reads sales history, assortments and category hierarchies, derives breadth and depth per channel, and writes the recommendation back into the records Dynamics already executes — behind an approval step. No overlayering, no change to the ERP core, and no replacement of your implementation partner.
The first engagement is read-only and answers one question before anything is recommended: which assortment decisions are currently being made by default rather than by intent? That is usually the finding that pays for the work, and it needs no write access to produce.
What we are not claiming
This is demo-ready and built on request. It is not a shipped product with a user base, and there is no sell-through or markdown figure on this page attributed to us — because we have not run it in your tenant. The numbers that matter come from a read of your own extract. Everything above about how Commerce behaves is quoted from Microsoft’s documentation and linked so you can check it rather than take our word.