Skip to main content
DoneThat

AI Adoption GuideRetailPlan

Localized Assortment Planning

ML recommends the right assortment by store cluster using local demographics, historical basket patterns, space constraints, and substitution behavior.

Retail processPlanBuyPriceStockSellFulfillReturnClear

By Don, DoneThat’s AI coach · updated

What localized assortment planning solves

A national or banner-wide range rarely fits every store equally. Urban convenience formats, suburban family stores, and rural outlets differ in who shops them, how often they shop, how much shelf they have, and which substitutes they accept when a preferred SKU is missing. Category planners feel that gap as stockouts on high-velocity locals, slow movers that burn facing, and planograms that look tidy on paper but waste space on the floor.

Localized assortment planning uses machine learning to recommend which SKUs belong in which store clusters. The model combines local demographics, historical basket patterns, space constraints, and observed substitution behavior. The output is a proposed range per cluster, not an automatic lock. Merchandising still reviews vendor commitments, brand strategy, and operational constraints before the assortment becomes final.

Inputs the model needs before it recommends anything

The system should refuse to invent a range when the foundation is incomplete. If space, sales, or demographic inputs are missing for a cluster, the model returns empty output for that cluster rather than a guess. Planners then know the gap is data readiness, not model preference.

Required inputs typically include:

  • Cluster definitions and store membership. Stable clusters (format, catchment type, size band, or performance tier) so recommendations map to groups planners already manage.
  • Selling history at store or cluster level. Units, baskets, and seasonality for the category and adjacent substitutes; without sales history, local demand signals are unknown.
  • Space constraints. Available linear feet, facings, fixture types, and hard caps on SKU count; without space, a “best” list is not executable.
  • Demographics and catchment descriptors. Household composition, income bands, ethnicity or cultural affinity signals where legally and ethically available, urbanicity, and nearby competition; without them, the model cannot separate local preference from noise.
  • Substitution and switch behavior. What shoppers buy when a SKU is out of stock or delisted; this prevents cutting items that look soft only because a peer absorbs demand.

Optional but useful signals include promotional lift history, new-item trial curves, supplier pack constraints, and regional regulatory limits (for example alcohol or pharmacy adjacency rules). None of those replace the three hard gates: space, sales, and demographics.

How the recommendation is built

At a high level, the model scores SKUs for each cluster on expected contribution under the space budget. Contribution may blend predicted unit velocity, margin, basket attach, and strategic flags (must-stock brands, private label targets). Space enters as a hard constraint: the recommended set must fit the fixture and facing rules for that cluster.

Substitution behavior shapes both inclusion and exclusion. If two SKUs compete for the same shopper need, the model prefers the one with stronger local fit and clearer incremental demand. If removing a slow SKU would push demand to a rival brand outside the category strategy, the recommendation can retain a lower-velocity item as a defensive hold. Demographic features help when history is thin for a new store or a remodeled cluster, by borrowing strength from demographically similar locations that already have mature sales.

The practical workflow for a category planner looks like this:

  1. Confirm cluster membership and space master data are current.
  2. Run the model for the category (or subcategory) and review the recommended adds, cuts, and holds by cluster.
  3. Compare against the current range and against capacity: which SKUs need extra facings, which need exit, which need shared space with a sister SKU.
  4. Adjust for non-model inputs: supplier deals, seasonal sets, local exclusives, and brand architecture.
  5. Lock the assortment in the merchandising system and push planogram updates.

The model recommends the range. Merchandising locks it. That separation keeps accountability with the people who own vendor relationships and shelf standards.

Reading the output without over-trusting it

A useful recommendation package is more than a ranked SKU list. Planners should expect, per cluster:

  • Proposed assortment with clear add / keep / cut actions versus the current range.
  • Rationale signals such as predicted local velocity, demographic affinity, and substitution risk if cut.
  • Space fit summary showing SKU count versus capacity and any items that only fit if facings are reduced elsewhere.
  • Confidence or data-quality flags when history is short, demographics are stale, or a store recently changed format.

Treat low-confidence clusters as review-first, not auto-accept. Treat empty output as a stop: fix space, sales, or demographic coverage before asking for another run. Do not fill empty clusters with the national default inside the model layer; if a fallback national range is required for operations, apply it explicitly in merchandising so the exception is visible.

When comparing clusters, look for coherent stories. A tourist-heavy cluster may justify travel sizes and impulse packs that a destination grocery cluster should not carry. A bilingual catchment may need dual-language packaging or heritage brands that national averages under-weight. Those differences should show up in the recommendation narrative, not only in a black-box score.

Guardrails planners should enforce

Localized assortment fails in familiar ways when process is weak. Guardrails that keep recommendations usable:

  • Human lock is mandatory. No cluster assortment goes live without merchandising approval, even when the model is confident.
  • No silent imputation for core inputs. Missing space, sales, or demographics yields empty output for the affected cluster.
  • Capacity is binding. Recommendations that exceed facings or fixture rules are invalid until space is reallocated or the list is shortened.
  • Vendor and brand constraints stay outside the model score. Contractual listings, listing fees, and brand block strategies are applied in the lock step.
  • Change volume is paced. Large simultaneous cuts across many clusters create supply and planogram chaos; stage exits and entries.
  • New stores inherit carefully. Until local sales accumulate, rely on demographic analogs and related site models, then re-run once history exists.

Related reading for the same planning stack: Demand Forecasting by Store and SKU for velocity inputs, New Store Site Selection Model for opening-day analogs, and Promotion Calendar Optimizer once the locked range needs promotional support.

What “good” looks like in practice

Success is not a higher SKU count or a perfect match to every local request. It is a locked range that fits the fixture, reflects how that cluster actually shops, and leaves merchandising in control of exceptions. Operationally, you should see fewer chronic locals out of stock because the right items earned space, fewer aged slow movers because weak SKUs were cut with substitution considered, and fewer emergency planogram resets because empty-output clusters were fixed in data before anyone forced a national clone onto the shelf.

For the category planner, the working contract with the model is simple: feed complete space, sales, and demographic inputs; receive a cluster-level recommendation with rationale and capacity fit; then lock, stage, and own the assortment that stores will actually set.

Is this worth automating for you?

Whether this pays back depends on how much time it takes your team today. Most teams estimate that from memory, and the estimate is usually wrong in one direction or the other.

DoneThat reconstructs where the time actually went, with no timers to forget, so you can measure the baseline before committing to a project and check the gain afterward.

Measure the baseline first