A product hierarchy is the ladder that rolls every sellable code up to what a customer thinks they are buying. For a consumer brand it runs company, brand, product line, product family, variant, then the codes each channel uses: SKU, ASIN, UPC and Shopify variant ID. Amazon and Shopify only hold the bottom rungs, so the product family has to be written down by the brand.
A product hierarchy is the ladder that rolls every sellable code a brand has up to the product a customer thinks they are buying. From there it rolls up to the brand and the company. For a consumer product brand the rungs are company, brand, product line, product family and variant. At the bottom are the codes each channel uses to sell one unit.
Most brands already have the bottom rung in several places and the middle rung nowhere. Amazon holds its product codes, Shopify holds variants, and the retailer holds barcodes. Nobody holds “repair shampoo”. That missing middle is why a report, or an AI tool reading your data, can call your best seller a mid-performer.
The pyramid, top to bottom
Each level answers a different question. The one that matters most for reporting is the product family. It is the level people mean when they ask “how is our shampoo doing?”
The channels hold the bottom two rungs. The family, the level people actually ask about, exists only if the brand writes it down.
In words, with one illustrative hair care company:
- Company: the legal owner. It files the taxes and may own several brands.
- Brand: the name on the box.
- Product line: a group of related families, such as hair care, which holds shampoo and conditioner.
- Product family: the product the customer thinks they are buying, such as repair shampoo. It stays the same across channels, sizes and pack counts.
- Variant: one version of the family, set by flavor, size or count, such as lavender, 12 oz, 3-pack.
- Sellable codes: the codes each channel uses for that variant. There is a SKU (stock keeping unit, the brand’s own code) and an ASIN (Amazon’s product ID). There is a UPC or GTIN (the barcode number), licensed in the US through GS1 US. And there is a Shopify variant ID.
One variant usually has several codes, one per channel. That is normal. The problem only starts when nothing records that they are the same thing.
Brand architecture, briefly
Brand architecture is how a company arranges its brand names. For data purposes you need to know which of three shapes you are.
- Branded house. One name on everything. The company name and the brand name are the same, and product lines sit directly under it.
- House of brands. The company owns several brands with separate names. Customers may never know they share an owner.
- Endorsed brand. Each brand has its own name but carries the parent’s name as a stamp, as in “Brand X, by Parent Co.”
The shape changes what “total” means. In a house of brands, each brand usually has its own store, its own ad accounts and its own targets. So every question has two answers: this brand, and the company. Build a separate pyramid per brand and add brands together only at the top. In a branded house, watch for the same family name in two lines. A repair shampoo and a repair hand cream might both get called “repair”.
How Amazon and Shopify map onto the pyramid
Neither channel was built to hold your hierarchy. Each holds a structure that looks like part of it.
| Level | Amazon | Shopify | Retail |
|---|---|---|---|
| Company | Seller account, which can hold several brands | Store, which can hold several brands | Vendor number |
| Brand | Brand field on the listing | Vendor field on the product | Brand on the item setup form |
| Product line | Browse category, loosely | Product type or a collection | Department or category |
| Product family | A parent ASIN, sometimes | A product, often | Nothing |
| Variant | Child ASIN | Variant | Retailer item |
| Sellable code | ASIN plus your seller SKU | Variant ID, SKU and barcode | UPC plus the retailer’s item number |
Why an Amazon parent ASIN is not a family
On Amazon, variations are grouped under a parent. Amazon’s own listings guide describes the parent as a non-buyable entity used to relate child products. In plain words, nobody can buy the parent. It only groups the child listings. The Catalog Items API, Amazon’s product data feed for software, records which ASINs are parents and children of each other. It groups them along a variation theme such as size or color. It looks like a family. It is not a dependable one, for four reasons.
- Not every brand uses parents. A brand with one flavor and one size has no reason to create one. So much of its catalog may have no parent at all.
- Parents do not match families. Many brands keep multipacks or bundles on their own listings to control price and images. So the 3-pack lives outside the parent that holds the single.
- Parents get rebuilt. A variation is broken to fix a listing error, a listing is re-uploaded, or two parents are merged. The new parent usually has a new ASIN, and any history tied to the old one stops.
- A parent has no sales of its own. Nobody can buy it. So every parent-level number is a total that someone else added up from the children. It covers the children listed under it on the day they pulled the report.
Use the parent as a hint when you build the family map. Do not use it as the map.
Shopify products are closer, but not the same
A Shopify product is a single page with up to three options and up to 2,048 variants. Each variant carries its own SKU and barcode. That is often a good match for a family. It breaks when the store has a separate product for the bundle, the sample size or the gift set. It breaks with a landing page built for one ad campaign. And it breaks when a product is deleted and recreated, because the new variants get new IDs.
Multipacks and bundles
A multipack is the same product in a bigger box. A 3-pack of lavender repair shampoo is a variant of the repair shampoo family with a units per pack of 3. It needs its own codes. GS1 US says each variation of each product you sell needs its own barcode, and Amazon and Shopify will each give it its own ID. But it rolls up to the same family.
Units per pack is the field most brands skip, and it changes every unit count. If you sell 2,500 three-packs, you sold 2,500 packs and 7,500 bottles. Reorders, cost per unit and how fast stock sells are all bottle questions.
A bundle is different. It holds products from more than one family, such as shampoo plus conditioner. It is not a variant of either. Give it its own row, and list its components and their quantities. Then decide once how reports treat bundles. Either they count as their own family, or their sales are split across the components. Either choice is reasonable. Doing it a different way in every report is not.
A worked example: one product, five rows
Illustrative numbers. A brand’s repair shampoo sells for $8 a bottle or $21 for a 3-pack. Here is one month, as it appears in a SKU-level sales report:
| Row in the report | Channel | Revenue | Packs sold | Units per pack | Bottles |
|---|---|---|---|---|---|
| Repair, lavender, single | Amazon | $40,000 | 5,000 | 1 | 5,000 |
| Repair, lavender, 3-pack | Amazon | $52,500 | 2,500 | 3 | 7,500 |
| Repair shampoo, original formula (old listing) | Amazon | $8,000 | 1,000 | 1 | 1,000 |
| Repair, lavender, single | Shopify | $16,000 | 2,000 | 1 | 2,000 |
| Repair, lavender, 3-pack | Shopify | $10,500 | 500 | 3 | 1,500 |
| Repair shampoo family | All | $127,000 | 11,000 | 17,000 |
The brand also sells a conditioner that has one listing on Amazon and did $60,000 that month.
Sort the report by row and the conditioner is the top product. The biggest shampoo row comes second at $52,500. The smallest, the old listing at $8,000, sits far down the full report. Ask an AI tool “what is our best seller?” against that table and it will say conditioner. The true answer is repair shampoo, at more than double the conditioner.
Unit counts go wrong too. Counting each pack as one unit gives 11,000. Counting bottles gives 17,000, about 55% more. A reorder plan built on the first number runs out of stock.
Where it goes wrong
These are the traps we see most often in real multi-channel catalogs.
One product counted as five rows
The example above. Any ranking, share-of-sales chart or “top 10 products” list built on raw codes splits a strong family into weak pieces. The more channels and pack sizes a product has, the worse it looks. That means the products you invested most in are the ones most likely to be undercounted.
A renamed listing splits its own history
Titles change. A brand rewrites a title for search, or a listing gets merged. A report that groups by product name now shows two products. The old name ends, and a new name starts from zero. The new one looks like a fast-growing launch. It is the same shampoo.
Retail codes that never meet the Amazon listing
A retailer sells a 2-pack that exists only in their stores, under its own UPC and the retailer’s own item number. Their sales reports never mention an ASIN or a Shopify SKU. Say the family map does not tie that UPC to repair shampoo. Then retail sales sit in a separate pile, and “how is repair shampoo doing across channels?” silently leaves stores out.
Retired variants drop out of year-over-year
Last year the brand sold a 16 oz bottle. This year it sells a 12 oz bottle instead. Compare by SKU and the 16 oz is down 100%. The 12 oz has no prior year. Neither number means anything. Compare by family and you get the real answer, which might be flat. The retired variant has to stay in the map, marked retired, or last year’s family total quietly shrinks.
Pack counts read as units
If units per pack is not recorded anywhere, most tools count each pack as one unit. Average price per unit, cost per unit and sell-through (the share of stock that sold) then all mix singles and packs.
How to set it up
The fix is a one-page family map. It is a spreadsheet, not a software project. A reader could build a first version this week.
- Pull every code from every channel, including dead ones. Amazon’s listings reports (active and inactive), a Shopify product export, and each retailer’s item setup sheet. Retired and inactive codes matter for year-over-year.
- Name each family the way a customer would. “Repair shampoo”, not “WT-SKU group”. If two people would describe it differently, pick one name and write the other down as a second name for it.
- Give every code exactly one family. No code may sit in two families and none may be left blank. Bundles get their own row with their components listed.
- Record units per pack for every code. A single is 1. A 3-pack is 3. A bundle lists each component’s quantity.
- Add launch date and status. Status is active, retired, or replaced by a named code. That way a new variant can carry on the history of the one it replaced.
- Give it one owner. One named person approves changes. Anyone launching a listing adds it to the map the same week, before it shows up in a report.
- Test it against the channel totals. For one closed month, add up revenue by family within each channel. The family totals should equal that channel’s total revenue. Anything left over is a code that is not in the map yet.
A minimal version looks like this:
| Family | Channel | Code | Variant | Units per pack | Launched | Status |
|---|---|---|---|---|---|---|
| Repair shampoo | Amazon | ASIN for lavender single | Lavender, 12 oz | 1 | 2023-03 | Active |
| Repair shampoo | Amazon | ASIN for lavender 3-pack | Lavender, 12 oz | 3 | 2024-01 | Active |
| Repair shampoo | Amazon | ASIN for 16 oz single | Lavender, 16 oz | 1 | 2021-06 | Replaced by lavender single |
| Repair shampoo | Shopify | Variant ID for lavender 3-pack | Lavender, 12 oz | 3 | 2024-01 | Active |
| Repair shampoo | Retail | UPC for store 2-pack | Lavender, 12 oz | 2 | 2025-02 | Active |
Why this matters when AI reads your data
An AI tool answering “what is our best seller?” does exactly what the example table invites. It ranks the rows it is given. It has no way to know that five rows are one product unless that fact is written somewhere it can read. The family map is that fact. It is a definition. Definitions belong in one shared place, not re-guessed in every report, dashboard and chat.
In Synthesis, the family map lives in the brand’s ontology, a written-down model of the business. In it, product family and product variant are types of object, and each listing is linked to its family. The definition is written once and every answer shares it. So products roll up the same way whether the question comes from a report or from Claude. Product codes are never shown bare. An ASIN always appears with its product name.
Questions people ask
What is the difference between a product family and a SKU?
A SKU is one sellable code, such as the lavender 3-pack sold on Amazon. A product family is the product the customer thinks they are buying, such as repair shampoo. It holds every SKU, ASIN and variant of that product across every channel.
Is an Amazon parent ASIN the same as a product family?
Not reliably. A parent ASIN groups the versions of a product on one Amazon detail page. Some brands never use parents. Some keep multipacks on separate listings. And parents get rebuilt, which ends the history tied to the old one.
Should a 3-pack be its own product or a variant?
Treat it as a variant of the same family with a units-per-pack of 3. It still needs its own code on each channel. But it rolls up to the same family, and unit counts multiply by the pack size.
What is brand architecture?
Brand architecture is how a company arranges its brand names. A branded house sells everything under one name. A house of brands runs separate brands. An endorsed brand has its own name, with the parent’s name added as a stamp of trust.
Does every product variant need its own UPC?
Yes. GS1 US is the body that licenses UPC barcodes in the United States. It says each variation of each product you sell needs a unique barcode. That includes different sizes and pack counts.
Who should own the product family map?
One named person, usually in operations or ecommerce. Everyone else can suggest changes, but one owner keeps the map from turning into three spreadsheets that disagree.