Dynamics 365 Commerce

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.

Apparel retail · allocation & size curvesWorking demo · built on request
Bolts of fabric filling shop shelving
What the ERP does

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.”
Microsoft Learn — Dynamics 365 Commerce, retail category hierarchies

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.

Where the decision goes missing

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
Apparel retail

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.

Eggs portioned into carton compartments
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.

A tailor's measuring tape coiled on a blue ground
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.

A material board of fabric and finish samples
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.

Coloured paper clips in close-up
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.

A magnifying glass on a split-colour ground
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.

What we build

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.

Labelled spice jars on shop shelving

Questions

Common questions

It does the part it names. Microsoft's own documentation describes the retail category hierarchy as being for merchandising, pricing and promotions, reporting, and assortment planning — the phrase is theirs, and any article denying it is wrong. What an assortment record holds is a channel, a product and a date range: which products are available where, and when. That is a membership decision. How many units of each, in which store, is a different question, and the fields for it are not in that record.

Breadth is which products a channel carries. Depth is how many of each it should hold. Dynamics 365 Commerce models breadth directly through assortments and executes them faithfully. Depth is derived elsewhere, in replenishment, from a typed weight or a hierarchy split — which means the number deciding how much stock a store receives is usually a parameter someone set rather than a figure computed from that store's own rate of sale.

Yes, and that is the design constraint. The optimizer reads sales history, assortments and category hierarchies, computes the recommendation outside the ERP core, and writes the answer 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.

Transactional sales history by channel and product, your assortment and category hierarchy definitions, and the current replenishment parameters. The first pass is read-only: it establishes which assortment decisions are already being made by default rather than by intent, before anything is recommended.

The rest of the family

The method, written up

How breadth and depth are decided per channel, which Commerce records hold the answer, and where the recommendation is written back.

Browse all engineering writing

Start with a read-only pass

The first pass is read-only: it establishes which assortment decisions are already being made by default rather than by intent, before anything is recommended.