GMROI by Category: The $3-Return SKUs Hiding in Your Mix

GMROI by Category: The $3-Return SKUs Hiding in Your Mix

GMROI is margin dollars over inventory at cost. Get benchmarks by vertical, the margin-versus-turns quadrants, and why chain-level $2.40 hides $0.80 categories.

See how Ward detects GMROI decomposition

Get a demo → Take the 3-minute assessment
Contents

Why the chain-level GMROI number misleads

Gross Margin Return on Investment is simple math: gross margin dollars divided by average inventory cost. A GMROI of $2.40 means every dollar of inventory investment returned $2.40 in gross margin over the period. Most retailers calculate it at the chain level and report it quarterly.

The chain-level number is the wrong unit of analysis. A $2.40 chain GMROI typically decomposes into categories returning $0.80 and categories returning $5.10. The categories at the top are subsidizing the categories at the bottom, and nobody in the merchandising review notices because the average looks fine.

Decomposed GMROI is the metric that drives reallocation. The chain number is a scorekeeping artifact. The category-level number is an operating signal.

The decomposition

For a mid-market specialty retailer, the decomposition typically looks like this:

  • Top quartile categories: GMROI of $4.50-$6.20. High velocity, healthy margin, fast turns. Usually 25-30% of categories doing 40-50% of margin dollars.
  • Second quartile: GMROI of $2.60-$4.40. Solid contributors, healthy margin, moderate turns. The bulk of the assortment.
  • Third quartile: GMROI of $1.40-$2.50. Acceptable but uninspiring. Frequently the categories that have been in the assortment "forever."
  • Bottom quartile: GMROI of $0.40-$1.30. These categories return less in margin dollars than the working capital they consume. They're net-negative contributors when carrying costs are added.

The math gets uncomfortable in the bottom quartile. A category with $800K in average inventory generating $1.0M in gross margin (GMROI of $1.25) sounds fine. Apply a 24% carrying cost: $192K of working capital cost. Apply allocated markdown and shrink: another $80-120K. Net contribution is $700-730K against a working capital lockup of $800K. The category is barely paying for itself, and it's tying up dollars that could be deployed against $4-5 GMROI categories.

The rebalancing math

Reallocating $200K of inventory investment from a $1.25 GMROI category to a $4.50 GMROI category produces $650K more in annual margin contribution. The retailer didn't grow inventory, didn't add SKUs, didn't expand stores. They shifted capital toward where the math worked.

Most retailers leave $2-4M annually on the table from sub-optimal category allocation because nobody runs the decomposition. The chain-level GMROI is acceptable, the merchandising review is calendar-driven, and the bottom-quartile categories survive on inertia.

SKU-level GMROI within categories

Category-level decomposition is the first cut. The second cut is SKU-level GMROI inside each category. The variance is usually larger than the category-to-category variance.

A category with $3.20 GMROI contains:

  • 10-15% of SKUs at $6+ GMROI. These are the velocity drivers.
  • 40-50% at $2-5 GMROI. The healthy mid-tail.
  • 25-30% at $0.50-$2 GMROI. The slow-turning long tail.
  • 10-15% at sub-$0.50 GMROI. The capital traps.

The capital traps deserve specific attention because they're often the SKUs the buyer is emotionally attached to. The "completeness of assortment" argument keeps them in the mix. The "halo effect" argument keeps them on shelf. The "this customer expects to see this" argument keeps them ordered. None of those arguments survive contact with the GMROI math.

One specialty hardware chain ran the decomposition across their assortment of 14,000 SKUs. They found 1,800 SKUs in the sub-$0.50 GMROI bucket consuming $4.2M in working capital and contributing $1.6M in margin. After accounting for carrying costs and markdowns, the net contribution was approximately $200K. The same working capital deployed against $4+ GMROI SKUs would have contributed $14-16M.

The cleanup wasn't a 1,800-SKU delete. It was a tiered review: 600 SKUs eliminated, 700 reduced to clearance and discontinued, 500 retained for assortment reasons but with stock floor cut by 60%. Working capital recovered: $2.8M. Reallocated to high-GMROI categories. Year-one margin contribution: $11.4M.

How to calculate GMROI, and the three ways it goes wrong

GMROI is gross margin dollars divided by average inventory at cost. A GMROI of $2.40 means every dollar tied up in inventory returned $2.40 in gross margin over the period. Three input choices decide whether the number is comparable to anything.

Inventory at cost, not retail. The denominator must be average inventory valued at cost. Using retail value inflates the denominator and deflates GMROI by roughly the margin rate, which makes every category look worse than it is and makes cross-chain benchmarking impossible.

Average across the period, not ending balance. Same trap as inventory turnover. A seasonal category measured on its ending balance can read double or half its true GMROI depending on where in the cycle the period closed.

Margin after markdowns, not initial markup. This is the one that quietly ruins the analysis. Using initial margin instead of realized margin makes markdown-heavy categories look healthy. Those are precisely the categories the analysis exists to find. If your fashion categories all show strong GMROI, check this input first.

The useful identity to keep in your head: GMROI equals gross margin percentage multiplied by inventory turns, adjusted for the cost-to-retail conversion. That is why a category can reach the same GMROI through high margin and slow turns, or thin margin and fast turns. It also explains why fixing GMROI is always a question of which of the two levers you are actually pulling. The turns side is covered in inventory turns by store.

GMROI benchmarks by vertical

GMROI benchmarks track shelf life and assortment depth, same as turns. A furniture retailer and a grocer should never be compared on this metric.

Vertical Healthy GMROI Typical margin Typical turns Capital trap line
Grocery $2.50 to $3.50 22 to 28% 14 to 20x Below $1.60
Convenience $2.20 to $3.20 28 to 35% 8 to 12x Below $1.50
Pharmacy front-of-store $2.40 to $3.40 30 to 38% 9 to 13x Below $1.60
Fashion $1.80 to $2.80 48 to 58% 4 to 6x Below $1.20
Home improvement $1.50 to $2.50 32 to 40% 4 to 6x Below $1.10
Furniture $1.20 to $2.00 45 to 55% 2 to 4x Below $0.90
Specialty $1.60 to $2.60 40 to 50% 3 to 5x Below $1.10
The capital trap line is roughly where margin contribution stops covering carrying cost at 24% plus allocated markdown and shrink.

The capital trap column is the one to operationalize. Anything below that line is consuming more in carrying cost, markdown, and shrink than it returns. It does not mean delete the category. It means the category has to justify itself on grounds other than financial return, and somebody has to say what those grounds are out loud.

The GMROI quadrants and what to do in each

Because GMROI is margin multiplied by turns, every low-GMROI category is low for one of two reasons, and the fixes are opposites. Plotting margin against turns sorts them immediately.

Margin Turns Diagnosis Correct action
High High Engine of the assortment Give it more space and more capital
High Low Priced right, moving slow Cut stock depth, not price. Fix assortment breadth first
Low High Traffic driver on thin margin Test price, protect availability, measure basket attachment
Low Low Capital trap Exit, or state the strategic reason for keeping it

The high-margin, low-turns quadrant is where most merchandising teams make the wrong move. The instinct is to discount, which cuts margin without necessarily improving turns, and drops GMROI further. The right first move is almost always to cut depth and hold price, because the problem is how much you bought rather than what you charged.

The low-margin, high-turns quadrant needs the basket check before any action. A category returning $1.30 GMROI that appears in 40% of baskets is not a capital trap, it is a trip driver, and its real return shows up in the attached items. Judge it on basket penetration before you judge it on GMROI.

The store-level overlay

A category with $3.20 GMROI at the chain level performs at $5.10 in 20 stores and $1.40 in 35 stores. The chain-level decision (carry the category, allocate this much capital) is wrong for both ends of the distribution. The 20 high-performing stores are starved of inventory. The 35 underperforming stores are overstocked on capital that's not turning.

Store-level GMROI variance is most extreme in:

  • Climate-sensitive categories: outdoor goods in northern stores vs southern stores, seasonal swings creating 4-6x GMROI gaps.
  • Demographic-sensitive categories: premium SKUs in income-stratified trade areas. The same SKU returns $7 GMROI in a high-income store and $0.80 in a value-oriented store.
  • Competition-sensitive categories: a category competing with a category killer next door performs at half the GMROI of the same category in non-competed locations.

The retailers running store-cluster GMROI rebuild assortment by cluster. Stores in cluster A get the SKUs that return well there. Stores in cluster B get the SKUs that return well there. The chain assortment becomes a portfolio of cluster assortments, not a single SKU list. Working capital deploys against where each SKU actually performs.

Continuous GMROI monitoring

Most retailers calculate GMROI quarterly. The decomposition exercise happens once or twice a year if at all. By the time the data is decomposed, half of it is stale. Markdown season has passed. New SKUs are in. Demand patterns have shifted.

Continuous monitoring flips the cadence. GMROI is computed weekly at category and SKU level across stores, with variance alerts when any cell drops more than 15% from its 90-day baseline. This is what continuous KPI monitoring is for: the merchandising team sees the categories trending toward sub-$2 GMROI before the quarter ends, not after.

The intervention math gets dramatically better. Catching a category drifting from $3.40 to $2.10 in week 3 of a quarter, when there's still 9 weeks to adjust, is fundamentally different from finding it in the quarterly review. The retailer can rebalance allocation, accelerate clearance on the slow tail, or shift promo support to the affected category. None of that is possible at quarterly cadence.

Year-one impact at scale: $3-6M in recovered margin contribution for a $400M retailer, driven by faster identification of underperforming cells and faster reallocation of working capital. The GMROI number itself doesn't change much at the chain level. The composition of the chain GMROI improves substantially.

Key takeaways

  • Chain-level GMROI of $2.40 typically hides categories returning $0.80 and categories returning $5.10. The average is a reporting artifact; the decomposition is an operating signal.
  • Bottom-quartile categories often return less in margin dollars than their working capital and carrying costs consume. Most retailers leave $2-4M annually on the table by not running this decomposition.
  • SKU-level GMROI variance within a category is usually wider than category-to-category variance. 10-15% of SKUs in a typical assortment are capital traps consuming working capital with near-zero contribution.
  • One specialty chain recovered $2.8M in working capital and added $11.4M in margin contribution by eliminating 600 sub-$0.50 GMROI SKUs and reallocating to high-GMROI categories.
  • GMROI is gross margin dollars over average inventory at cost. Using retail value, ending balance, or initial markup instead of realized margin each break the comparison, and the markup error specifically hides the markdown-heavy categories the analysis exists to find.
  • Benchmarks are format-specific: $2.50 to $3.50 grocery, $1.80 to $2.80 fashion, $1.20 to $2.00 furniture. Below the capital trap line the category consumes more in carrying cost and markdown than it returns.
  • GMROI is margin multiplied by turns, so every weak category is weak for one of two opposite reasons. High margin with low turns needs less depth, not a discount. Low margin with high turns may be a trip driver, so check basket penetration before cutting it.
  • Store-cluster GMROI variance can be 4-6x for climate, demographic, or competition-sensitive categories. Chain-level assortment decisions are wrong for both ends of the distribution.
  • Quarterly GMROI calculation is too slow. Weekly category-level monitoring with variance alerts catches drift early enough to intervene, typically recovering $3-6M annually for a $400M chain.

See how Ward detects GMROI decomposition

Ward monitors your stores 24/7 and delivers insight cards, not dashboards. First cards in 48 hours.

GMROI KPIs merchandising margin

Not sure where AI fits in your operation? Ten questions, about three minutes. Your score out of 100 appears on screen when you finish, with no email required.

Take the 3-minute assessment

Questions about GMROI decomposition.

GMROI is gross margin dollars divided by average inventory at cost. A GMROI of $2.40 means every dollar tied up in inventory returned $2.40 in gross margin. Three inputs decide whether the number is comparable: value inventory at cost rather than retail, average across the period rather than the ending balance, and use realized margin after markdowns rather than initial markup.

Healthy GMROI runs $2.50 to $3.50 in grocery, $2.20 to $3.20 in convenience, $1.80 to $2.80 in fashion, $1.50 to $2.50 in home improvement, $1.60 to $2.60 in specialty, and $1.20 to $2.00 in furniture. Below roughly $1.60 in fast-turning formats and $0.90 in slow-turning ones, the category consumes more in carrying cost, markdown, and shrink than it returns.

Because GMROI is margin multiplied by turns. A high-margin category with low turns produces the same weak GMROI as a thin-margin category that moves fast, and the fixes are opposites. High margin with slow turns means you bought too deep, so cut stock depth and hold price. Discounting there cuts margin without reliably improving turns and drops GMROI further.

No. Check basket attachment first. A category returning $1.30 GMROI that appears in 40% of baskets is a trip driver, and its real return shows up in the items attached to it rather than in its own margin line. The categories to act on are the ones that are low on GMROI and low on basket penetration, which are consuming capital without pulling trips.

Your stores are generating data right now.

Ward turns it into decisions. First insight cards in 48 hours.

Read-only to start · your LLM keys · SOC 2 Type II underway · or book a call directly

Find out what your data has been hiding.

Tell us about your operation. We’ll show you the problems Ward catches, and the ones your current tools miss.

Step 1 of 3
What are your goals?
Step 2 of 3
About your operation
Step 3 of 3
Your contact info