In fashion the thing you sell is never the style. Nobody buys "the poplin shirt". They buy the white one in size M, and if that exact combination is not on the shelf the sale does not happen even though the style is technically in stock.
The variant explosion
Multiply colors by sizes and the count grows fast. A shirt in 4 colors across 6 sizes is 24 variants. Twenty styles built the same way is 480 records to receive, count, price and publish. A menswear trouser on Italian sizing 46 to 58 in three washes is 21 variants from a single style code.
| Style | Colors | Sizes | Variants |
|---|---|---|---|
| Poplin shirt | 4 | 6 | 24 |
| Slim trouser | 3 | 7 | 21 |
| Knit | 5 | 4 | 20 |
What lives at variant level and what does not
Some attributes belong to the style and are shared: name, brand, category, composition, country of origin, season. Others only make sense per variant: the EAN, stock on hand, the location it sits in, and often the cost, since a supplier can price a size run differently.
Retail price usually sits at style level and is overridden per variant when it needs to be. Getting this division right is what stops the same edit having to be repeated 24 times, and it is why editing a shared field should propagate while editing a variant field should not.
Why spreadsheets break here
A spreadsheet can hold 480 rows without complaint. What it cannot do is keep them consistent. Two people receive two deliveries of the same style, one writes the color as "blue" and the other as "navy", and the stock for one variant is now split across two rows that nobody notices until a customer orders something that is not there. Supplier documents make it worse: the same size can arrive as "L", "large" and "3" in three files from the same shipment.
How Agilo handles it
Agilo treats the variant as the unit of record. Its AI reads supplier documents in PDF, CSV and Excel and extracts each size and color combination with its own EAN, quantity and cost, normalising the spellings that differ between files from the same delivery. Style-level fields are edited once on the parent row and propagate to every variant, while quantities and barcodes stay where they belong. Stock is then synced to Shopify and About You per variant, so a size that is gone shows as gone on the channel too.