What this is
Assortment Comparison is a browser-based overlap engine for retailer assortment files. It turns flat account-product rows into comparison sets, then shows which products are shared, exclusive, or sitting in specific retailer intersections.
Mental model
The tool keeps three ideas separate: retailer rows from the spreadsheet, product keys used for matching, and overlap segments generated from the selected retailers. The chart, retailer summary, and product table all read from the same normalized product map.
Privacy
Everything runs locally in your browser. Spreadsheet contents are parsed in memory and are never uploaded.
Steps
Overlap path — normalize product rows, choose a match key, then split selected retailers into shared and exclusive sets.
Retailer A rows
Retailer B rows
Retailer C rows
→
key: UPC
fallback: style + grid
→
segments
shared by all
exclusive to one
partial overlap
- Start with a workbook. Drop an
.xlsx / .csv, load a sheet, or click Try sample data from the first screen to see the workflow with synthetic rows.
- Select retailers. Pick up to five accounts. The overlap map uses only selected retailers so intersections stay readable.
- Choose the comparison key.
UPC is the default because it is the cleanest product identifier. Style is useful when UPC is unavailable or color-level detail is too granular.
- Filter and search. Use brand filters and search to narrow the product universe before reading overlap segments.
- Inspect segments. Click shared/exclusive groups in the segment list; the product table updates to the active segment.
- Export the view. Export writes only the current filtered segment, including retailers, sales units, and on-hand units.
Expected columns
Header matching is flexible. The parser accepts common aliases, but these names are the clearest path.
| Canonical field | Accepted aliases | Use |
| Retailer | Account, KAC, Customer, Store, Banner | Required account name used to build overlap sets. |
| Brand | Brand | Optional brand filter and product-table field. |
| Release | Release Date, Launch, Drop, Season | Optional season/read layer. |
| Style | Label, SKU, Product | Style/model number; selectable as comparison key. |
| UPC | GTIN, EAN, Barcode | Default product key; blank values fall back to style/grid/color/brand composite behavior. |
| Color | Colour | Shown in product detail and used as a fallback identity signal. |
| Grid | Material, Model | Frame/grid/model field; useful when style names repeat. |
| Unit Sold | Units Sold, Sold Units, Sales Units | Sales unit metric aggregated across duplicate retailer rows. |
| Unit OH | On Hand, OH Units, Stock, Inventory, Qty | On-hand metric aggregated across duplicate retailer rows. |
Normalized shape
Every source row becomes retailer, brand, release, style, upc, color, grid, unitSold, and unitOh. Rows without a retailer or any product signal are discarded.
Matching logic
Product rows are grouped by the active key. UPC mode prefers UPC and falls back to style, grid, color, and brand when needed. Style mode favors style and keeps UPC as supporting detail. Duplicate rows for the same retailer and product are aggregated.
Overlap segments
| Segment | Meaning |
| All Compared | Every product found in at least one selected retailer. |
| Shared by all | Product keys present in every selected retailer. |
| Exclusive | Product keys present in only one selected retailer. |
| Partial overlap | Product keys present in a subset of selected retailers. |
| No rows | The filter/key combination produced no valid product keys. |
Metric modes
Unit OH emphasizes current inventory distribution. Unit Sold emphasizes velocity already proven by account. Sold + OH shows both metrics in the table/export so you can compare productivity and depth together.
Edge cases
- Blank numeric cells are treated as zero.
- Multiple rows for the same retailer/product add their units together.
- Search runs across brand, release, style, UPC, grid, color, and retailer labels.
- Retailer selection is capped at five to keep the visual overlap map legible.