SKU rationalization: how to decide which products to keep, fix or cut

SKU rationalization for consumer brands: judge product families first, rank variants by contribution margin per channel, count stock cost, then keep or cut.

By Justin Maddahi · · 10 min read

The short answer

SKU rationalization is deciding which products and variants to keep, fix, merge or cut. Do it in four passes. Roll variants up to product families. Rank each variant by contribution margin after fees and ads, per channel, not by revenue. Add the cost of the stock it holds. Then check the role it plays, such as bringing in new customers, before you cut anything.

Sort your products by revenue. The one on top is your best seller, and nobody argues.

Take out the fees and the ad spend. It drops to third.

Cut it anyway and you may hand a rival the search term the whole range sits behind.

Now look near the bottom of the same list. A small, cheap size earning almost nothing. Cut that one and a fifth of your new customers never start.

Two products the sort got wrong, in opposite directions.

SKU rationalization is deciding which products and variants to keep, fix, merge or cut. A SKU (stock keeping unit) is your code for one sellable version of a product, such as the 16 oz unscented body lotion. Judge a SKU by three things: the money it leaves after fees and ads, the stock it ties up, and the job it does for the range. Revenue alone gets it wrong.

A common shortcut is to rank SKUs by revenue or units, then cut the bottom 20%. That removes small products. It does not reliably remove unprofitable ones, and it can remove the product that brings in your new customers. Below: the four-pass method, a worked example where the revenue sort and the margin sort disagree, and the traps we see in real multi-channel data.

Why a catalog fills up with variants nobody chose

A brand adds variants for good reasons: a new scent, a bigger size, a 2-pack for Amazon, a travel size for a retailer. Each one needs its own stock, its own listing, its own ad budget and its own line on the purchase order. After a few years the catalog has variants nobody chose to keep. They just never got a decision.

A rationalization review gives every variant one of four outcomes:

  • Keep it as it is.
  • Fix its price, fees or ad spend.
  • Merge it into a near-identical variant.
  • Discontinue it and sell down or remove the stock.

The payoff is cash and focus. Less money sits in slow stock. Fewer listings split your ad budget.

The method in four passes

Pass 1: judge the family before the variant

Judge the family first, then the variants inside it. A product family is the product the customer thinks they are buying, such as “daily body lotion”. It holds every size, scent and pack count. We explain how to write that map down in product hierarchy for consumer brands.

Why the family comes first: variants trade customers with each other. A buyer who moves from the 8 oz to the 16 oz shows up as a lost customer on one row and a new one on another. Judge the rows alone and you may cut the step that feeds the family.

Pass 2: rank by contribution margin per channel, not revenue

Contribution margin is what a sale leaves after every cost that exists only because of that sale. We use three tiers, set out in full in contribution margin for Amazon and Shopify:

  • CM1 is net revenue minus landed product cost.
  • CM2 also takes out fulfillment, shipping, payment and marketplace fees.
  • CM3 also takes out advertising.

Rank on CM3 dollars, per channel. Do it per channel because the same variant can earn well on Shopify and lose money on Amazon. A low-priced item can pay a fulfillment fee that takes a much bigger share of its price. CM3 needs a correct landed cost for every variant, including new sizes and multipacks. If you have not built that yet, start with how to calculate COGS and landed cost.

Pass 3: add what the stock costs you

A variant that sells slowly costs money even when its margin per sale looks fine. Three costs matter:

  • Storage fees. Amazon charges monthly storage fees based on the space your stock takes up. Amazon also added a storage utilization surcharge for sellers who store a lot of stock compared with their recent weekly sales.
  • Aged stock. Amazon charges an aged inventory surcharge each month on items stored for more than 181 days (Amazon FBA costs).
  • Cash tied up. Every unit on a shelf is money you already paid a supplier. That cash cannot fund the next order of a variant that sells.

The simple measure is weeks of stock: sellable units divided by average weekly sales. We suggest about 26 weeks as a warning line. That is roughly 181 days, so past it some of today’s units may still be on the shelf when the surcharge starts. Keep weeks of stock per variant, never as a family average. More on why below.

Pass 4: the job each variant does for the range

Some variants earn little on their own and still matter. Two roles show up again and again:

  • The starter product. A small or cheaper size that new customers try first. Some of them later buy the full size, another scent or a multipack. Its own margin is thin. The margin arrives on the next order, under a different SKU.
  • The search listing. A variant that exists to win a search term. On Amazon, the listing that ranks for “unscented body lotion” may carry heavy ad spend to hold that spot. The spot sends shoppers to the whole range.

To measure the starter role, count first-time buyers of each variant. Then count how many later bought something else from the brand. Use buyers old enough to have had time to come back.

A worked example: six variants of one body lotion

Illustrative numbers only. One family, “daily body lotion”, sold on Amazon. Revenue, units, CM3 and stock cover are for the last 26 closed weeks. The last column uses first-time buyers from an older window, so each buyer has had 180 days to come back.

Variant Revenue Units sold CM3 CM3 % Weeks of stock First-time buyers / later bought something else
16 oz unscented $180,000 9,000 $12,600 7% 9 4,000 / 320 (8%)
16 oz lavender $120,000 6,000 $26,400 22% 7 2,500 / 200 (8%)
16 oz unscented, 2-pack $95,000 2,500 packs $20,900 22% 11 800 / 40 (5%)
8 oz unscented $60,000 5,000 $1,800 3% 6 2,700 / 540 (20%)
3 oz travel 3-pack $40,000 2,000 -$2,000 -5% 34 900 / 27 (3%)
16 oz coconut, launched 9 weeks ago $25,000 1,250 -$1,250 -5% 20 Too early to say
Family $520,000 $58,450 11%

What the table says, variant by variant:

  • 16 oz unscented: fix, do not cut. It is first on revenue and third on CM3. Its ad spend is heavy because it holds the top search spot for the plain product. Cutting it could hand that search to a rival. The move is to test lower bids or a small price rise, and watch the rank.
  • 16 oz lavender and the 2-pack: keep. Both earn 22% after ads. They are the family’s real profit.
  • 8 oz unscented: keep, even at 3%. A revenue-and-margin screen would put it on the cut list. But one in five of its first-time buyers came back for something else, far more than any other variant. Say those 540 buyers later spent $50 each at a 22% CM3. That is about $5,900 of margin the 8 oz started, on top of its own $1,800. Not every one of those buyers is lost if it goes, since some would have started with the 16 oz. But a shopper who wants a $12 trial will not always pay $20.
  • 3 oz travel 3-pack: discontinue. It loses money after ads. Few of its buyers come back. And at 34 weeks of stock, part of the pile could pass 181 days and pay the aged inventory surcharge.
  • 16 oz coconut: too young to judge. Nine weeks in, it still carries launch ads and has no repeat history. Set a review date instead of a verdict.

Where it goes wrong

Judging a variant launched two months ago

A new variant carries launch ad spend and an opening stock order sized for growth. Both make it look bad. Its buyers have also not had time to come back. So its CM3 is low, its weeks of stock is high and its repeat column is empty. None of that is a verdict yet. Mark any variant younger than one reorder cycle as “too early” and give it a date.

Cutting the pack size people search for

On Amazon, the listing that ranks for the main search term can be worth more than its own margin. It sends shoppers into the whole family. A relaunched listing usually has little recent sales history, so winning the spot back can be slow and costly. Before cutting a variant, check which search terms it ranks and gets clicks for. If it holds the family’s main term, fix its costs instead.

Counting multipacks as units

The 2-pack sold 2,500 packs, which is 5,000 bottles. Add “units” across the family and you mix packs and bottles. That undercounts demand for the 2-pack and makes its stock cover look wrong. Store a units-per-pack number for every variant. Count in the unit the question needs: packs for listings, bottles for purchase orders.

The variant that sells only in retail

A variant sold only at a retailer does not appear in Amazon or Shopify reports. It looks like it has no sales, or it does not show up at all. The reverse also happens: an Amazon-only 2-pack looks tiny in a retailer’s report. Pull every channel into the family view before you sort. A missing row is not a dead product.

Averaging stock cover hides a stockout

Say one variant has zero weeks of stock and two have 20 weeks each. The family average is about 13 weeks, which sounds healthy. It hides a variant that is out of stock right now. That variant’s sales will also look weak, because it had nothing to sell. Roll money up to the family. Never roll up a warning. Keep stock cover per variant, and check for stockouts before calling any variant slow.

A missing cost looks like a perfect margin

A variant with no landed cost on file looks like it costs nothing. Its margin comes out near 100%. New sizes, bundles and multipacks are the usual gaps. Check that every variant that sold in the window has a dated cost before you rank anything.

The decision table

Decision Trigger What to do
Keep Positive CM3 per channel, stock under our suggested 26-week line, or a clear role (starter or search listing) Nothing, beyond the normal reorder
Fix price, fees or ads Healthy CM2 but thin or negative CM3; or a key role with poor margin Test bids, price or pack dimensions first; set a date to look again
Merge into another variant Two variants the customer sees as the same, such as close sizes at close prices, splitting sales and ad budget Move buyers to the stronger one; stop reordering the weaker one
Discontinue Negative CM3 on every channel, weak repeat, no search or starter role, older than one reorder cycle Stop reordering, sell down, then remove or liquidate what is left

How to run a review this month

  1. Write down every product family and its variants, with units per pack, across every channel, retail included.
  2. Fill in a landed cost for every variant that sold in the window. List the ones without one.
  3. Build CM3 per variant, per channel, for the last 26 closed weeks. Do not include the current week.
  4. Add weeks of stock per variant, using sellable units only. Note anything over 26 weeks.
  5. Add the role columns: first-time buyers who later bought something else, and the main search term each Amazon listing ranks for.
  6. Mark every variant younger than one reorder cycle as “too early”.
  7. Sort by CM3, then read the role columns before assigning keep, fix, merge or discontinue.
  8. Start with the reversible step. Stopping a reorder can be undone. A delisted product with its stock liquidated cannot. Stop reordering first, and watch whether the family’s revenue holds as the variant sells down.

For stock you decide to clear from Amazon, Amazon can return, dispose of or liquidate it for a per-item charge (Amazon FBA costs). It usually pays to do that before units pass 181 days, not after.

Then time the review to your next purchase order. That is the moment a cut costs the least. The cash is still in the bank, and all you have to do is leave a line off the order.

Synthesis keeps a brand’s product families written down once, so every answer about a variant sees its siblings. Every number carries its caveats, such as “this cohort is too young to judge repeat rate”. That keeps a nine-week-old launch from landing on a cut list by accident.

Questions people ask

What is SKU rationalization?

It is a regular review of every product and variant you sell, to decide which to keep, which to fix, which to fold into another variant and which to discontinue. The goal is fewer, better products and less cash stuck in slow stock.

Should I rank SKUs by revenue or by margin?

By contribution margin after fees and advertising, per channel. Revenue tells you what is big, not what earns. A top seller that needs heavy ad spend can earn less than a smaller variant that sells on its own.

How do I find slow moving SKUs on Amazon?

Start with weeks of stock per variant: sellable units divided by average weekly sales. We suggest flagging anything with more than about six months of stock. Amazon charges an aged inventory surcharge each month on units stored for more than 181 days.

How long should I wait before judging a new SKU?

We suggest at least one full reorder cycle and 90 days of customer history. A two-month-old variant still carries launch ad spend and has not had time to earn repeat buyers, so its margin can look worse than it will later be.

What happens to Amazon inventory when I discontinue a product?

You can sell it down, or ask Amazon to return, dispose of or liquidate it for a per-item charge. Units that sit too long keep paying monthly storage and, past 181 days, the aged inventory surcharge.

How often should a brand review its SKUs?

We suggest once or twice a year, plus before any large purchase order. The purchase order is the moment a cut costs the least, because the cash has not been spent yet.