Assortment planning is the process of deciding which products a store carries, how many options it offers within each product type, and how much stock sits behind each option, for a given season and channel. It balances two dimensions: breadth, the number of categories or product lines, and depth, the choice within each one (styles, sizes, colors, price points). A third lever, units per option, decides whether the plan survives contact with demand.
For an online retailer the short version is: review what sold, earned and came back last season, decide where to widen or deepen, buy, get the product data ready before launch, then read sell-through early and adjust. The part most guides skip is that every one of those steps runs on product attributes. If 30 of your rain jackets have no recorded use type, you cannot tell whether hiking jackets are under-supplied. The product assortment entry has the short definition; this post covers the decisions, the data inputs and a worked gap analysis. It sits one level below category management, where each category gets a role that decides how wide and deep it should be.
Breadth, depth and units per option: the three levers
Take an online running store. Breadth is the list of product types it sells: road shoes, trail shoes, socks, hydration packs, headlamps. Depth is what a shopper finds inside one of them: 14 road shoe models, each in 8 to 12 sizes and two or three colors, across three price bands. Units per option is how many pairs of the women's size 39 in the cushioned model you hold.
Each combination of breadth and depth gives a different kind of store, with its own risk. Most online retailers are not one pure shape; they run deep in their core category and shallow at the edges, where a few accessories complete the basket.
Four assortment shapes and where they break
| Narrow and shallow | Few product types | Few options per type | Single-product brand, such as a mattress or a water bottle brand | One shift in demand hits the whole range |
|---|---|---|---|---|
| Narrow and deep | Few product types | Many options per type | Specialist, such as a running store with every model in half sizes | Capital sits in size runs that sell unevenly |
| Wide and shallow | Many product types | Few options per type | General home and garden store with two or three options per item | Shoppers miss their size, color or price and leave for a specialist |
| Wide and deep | Many product types | Many options per type | Large retailer or marketplace seller with a full range | Stock, content and data upkeep per SKU outgrow the team |
What an endless digital shelf changes, and what it does not
A physical store plans around shelf space. A webshop has no shelf limit, which tempts teams to add products because they can. The constraint did not disappear; it moved. Every new style needs stock capital (unless it is dropshipped), photography, a title, a description, filled attributes, translations for each market and a mapping to every channel it sells on.
That data cost is easy to underestimate. In WISEPIM's State of Product Data report, the median attribute in the median catalog was filled on 1.9% of products when the catalog arrived. An assortment that grows faster than its data ends up with products that exist but cannot be filtered, compared or analyzed.
Two things are also different online. Filters turn attributes into navigation, so depth that is not recorded as data is invisible: a shopper filtering for "waterproof, under 400 g" never sees the jacket whose weight is only in the description. And the long tail is cheaper to carry online, which makes it more important, not less, to know which tail products earn their place.
Online ranges also vary by channel and market rather than by store. A marketplace may get only your best sellers, a wholesale account the multipacks, and a new country a smaller first range limited to products whose translations and local safety information are ready. Plan these as subsets of one master assortment, flagged per channel and market, rather than as separate lists that drift apart.
Data inputs for an assortment review
A review needs a small set of metrics per product, rolled up to the attribute cells you plan in (use type and price band, for example). Five carry most of the weight:
- Sell-through rate. Shopify's Products by sell-through rate report divides units sold by units sold plus units still in inventory. It tells you whether depth matched demand. Compare products over the same period and launch window, or late arrivals look like failures.
- Gross margin. Price minus cost, divided by price, after discounts and ideally after shipping. A cell can sell through fast and still lose money.
- Return rate and return reasons. Returned units over sold units, split by reason. A high rate driven by "too small" is a sizing or content problem, not an assortment problem. The return rate calculator shows the formula.
- Inventory turnover. Cost of goods sold over average inventory value: how fast capital tied up in a cell comes back. Seasonal products distort annual averages, so read it per season.
- Share of revenue. Which products carry the category. Shopify's ABC analysis grades variants by their share of revenue over the last 28 days and, as its help page notes, ignores item cost, so pair it with margin.
Next to performance, a review needs demand evidence for products you do not carry, because sales data only describes what you already stock. Useful sources: search queries with impressions but no matching product (the Search Console Performance report lists them), zero-result searches in your store's own search tool, customer service questions, competitor ranges and marketplace bestseller lists.
Finally, the review needs attributes. Every metric above becomes useful for planning only when it can be grouped by the properties shoppers choose on: use type, size range, material, fit, capacity, compatibility, price band. That grouping is where most reviews stall.
Core, seasonal and test items: a role for every style
Depth is easier to plan when every style in a category has a role. Three roles cover most online ranges. Core items are carried all year and replenished: the black merino base layer in every size, the best-selling road shoe. They need depth in sizes and steady stock, and they are judged on availability and margin. Seasonal items are bought once for a season and sold through: this winter's jacket colors, a holiday gift set. They are judged on sell-through before markdowns start. Test items are small buys that probe a new cell: a first trail running jacket, a new price band. They are judged on whether demand shows up, not on profit.
The roles change how you read the numbers. A core item at 40% sell-through over a month may be fine, because it is reordered; a seasonal style at the same rate six weeks before the end of the season is a markdown candidate. Record the role as a product attribute (a select field such as assortment_role with the values core, seasonal and test), so reports can filter on it and a test item that works can be promoted to core in the next plan rather than forgotten.
A seasonal planning cycle from review to exit
Seasonal ranges (outerwear, garden, gifting, school supplies) follow a cycle that starts long before launch. Lead times vary by category and supplier, so treat the months below as an example for a fall and winter range bought from European suppliers; categories sourced from Asia often plan further ahead.
Example cycle for a fall and winter range
- 1
6 months out
Sell-through, margin and returns per attribute cell; decide carryovers and exits.
Record why each cell over- or under-performed while the season is still fresh. - 2
5 months out
Choose which cells to add, deepen, thin out or drop, and how many styles, colors and sizes each gets.
Split the range into core carryovers, seasonal styles and a few test items. - 3
4 months out
Buy and request supplier data
Place orders and ask for attributes, images, GTINs and safety information with the order, not after delivery.
- 4
6 weeks out
Titles, descriptions, attributes, translations and channel mappings complete and checked.
Tag every product with its season so next year's review can find it. - 5
Launch
Go live on every channel
Products published with filters, variants and feeds working.
- 6
Weeks 4 to 6
First sell-through read
Reorder fast cells while suppliers can still deliver; plan markdowns for slow ones.
- 7
End of season
Exit and record
Clear, mark down or carry over, and store the results per cell for the next review.
The step that slips most often is the data one. When supplier data arrives with the goods, the range launches late or launches thin, and the first sell-through read measures missing content as much as demand.
Finding assortment gaps by attribute: a worked example
An assortment gap is a combination of attributes where demand exists and your range is missing or too thin. The method below works in a spreadsheet or a BI tool; the numbers are illustrative, for an online outdoor store reviewing its rain jacket category of 48 styles (counted per style, not per size).
Step 1: choose the attributes shoppers decide on
Pick two or three attributes that separate genuinely different needs. For rain jackets that is use type (urban, hiking, trail running) and price band (under $100, $100 to $199, $200 and up). Size range and gender come next. Avoid attributes that do not change the decision, such as minor color differences.
Step 2: normalize the values before counting
Counting fails on messy values. "Hiking", "hike", "trekking" and "Outdoor/Hiking" must become one value, and products with no value must be visible as their own group rather than silently dropped. A controlled list of allowed values per attribute prevents the mess from coming back; the attribute standardization guide covers the rules.
Step 3: count products and add performance per cell
Group the 48 styles into cells and add season-to-date sell-through for each. One extra row matters as much as the rest: the products that cannot be placed because the attribute is empty.
Rain jackets by use type and price band (illustrative)
| Urban | Under $100 | 12 | 34% | Crowded, average selling: candidates to thin out |
|---|---|---|---|---|
| Urban | $100 to $199 | 9 | 41% | Healthy |
| Hiking | Under $100 | 6 | 38% | Healthy |
| Hiking | $100 to $199 | 3 | 71% | Thin and selling fast: depth gap |
| Hiking | $200 and up | 8 | 29% | Crowded and slow: review styles |
| Trail running | Any | 2 | 66% | Small test that worked: consider a third style |
| Not recorded | Mixed | 8 | 31% | Data gap: cannot be planned |
Step 4: read the cells and check the empty ones
Three readings come out of the table. Mid-priced hiking jackets are the clearest gap: three styles, 71% sell-through, and probably lost sales on sizes that sold out. Premium hiking jackets are the opposite: eight styles splitting modest demand, so two or three could exit or move to a markdown plan. The eight unplaced jackets need a use type before any conclusion is safe; if most of them turn out to be hiking jackets, the picture changes.
Then look for cells with no products at all. This store sells no kids' rain jackets. Sales data cannot show that gap, so it needs outside evidence: Search Console queries such as "kids rain jacket" with impressions on the category page, customer questions, or a competitor range that is deep there. One weak signal is a test, not a new category.
Step 5: turn the findings into the plan
Write the outcome per cell: add two mid-priced hiking styles with a full women's size run, cut premium hiking from eight to five, keep trail running as a small test with one more style, and fill the missing use types before the next review. That is the input for the buy, and for the SKU rationalization review that decides which of the slow styles leave the range.
Five assortment planning errors that start in the product data
- Counting size variants as products. A jacket in eight sizes is one style with eight options. Counting SKUs inflates depth and hides that a cell has only two real choices.
- Free-text attribute values. "Navy", "Navy Blue" and "dk blue" split one color into three cells, each too small to read.
- Attributes buried in descriptions. Weight, waterproof rating and fit often sit in the description text only. Extract them into fields before the review, not after.
- Comparing products with different launch dates. A style that arrived in week six cannot match the sell-through of one that sold from day one. Compare from launch, or over the same weeks.
- Mixing price bases. Some prices include VAT, some do not, some are sale prices. Use one basis (regular price including VAT, for example) for the bands.
Keeping the attribute data an assortment review needs
WISEPIM is not a merchandise planning or forecasting tool; it does not set budgets, buy quantities or open-to-buy. It keeps the product data that a review groups by complete and consistent. AI enrichment extracts attributes such as use type, material or weight from descriptions and supplier files, option sets restrict each attribute to allowed values, and the attribute values page shows every value in use so duplicates can be merged. With orders connected, category performance analytics show sales and data quality per category, and attribute management is where the cells you plan in are defined.

