Finance
use case
Reduce cost

GMROI by store: finding stock tied up in low-margin lines

Last updated
October 14, 2026
Written by
Kat Ellison

The short answer

GMROI (gross margin return on inventory) is gross margin divided by average inventory at cost. Calculate it for each store and product line, then flag lines where a store holds a lot of stock but earns little margin per dollar of inventory. Those lines tie up cash that stronger lines could use.

Gross margin return on inventory, store by store

GMROI = gross margin dollars ÷ average inventory at cost

Why it matters

Lines that earn thin margin on a lot of inventory tie up cash that faster-turning lines could use. GMROI by store shows where stock is working and where it is waiting, which tells you where to move, cut or reprice stock before the next buy repeats the mistake.

The question to ask

Copy this into Lexi as written.

Which stores are holding the most stock in my lowest margin lines?
Copy question

How to work it out

1. Calculate gross margin by line and store. Take net sales minus cost of goods sold for each product line in each store over the last 12 months.

2. Calculate average inventory at cost. Average the opening and closing stock value at cost, or use monthly stock counts for a steadier figure.

3. Divide and rank. Divide margin by average inventory, rank store and line combinations from the lowest GMROI up, weighted by the dollars of stock held, and check who buys each line in the strongest stores.

What the answer looks like

Illustrative output on sample data

Illustrative example: how Lexi answers this for a footwear retailer. It joins 12 months of sandal sales to average inventory at cost for each store.

  • Store A: $62,000 gross margin on $48,000 of stock. GMROI = 62,000 ÷ 48,000 = 1.29.
  • Store B: $58,000 gross margin on $21,000 of stock. GMROI = 2.76.

What the data shows

Store A holds more than twice the sandal inventory and earns less margin from it. Every dollar of stock there returns $1.29 a year, against $2.76 in Store B.

What it means

About $15,000 of Store A's sandal stock is cash waiting on a slow line. Store A's sandal buyers are mostly occasional shoppers, so trimming depth there puts few loyal customers at risk.

What to do

Transfer around $15,000 at cost to Store B, provided its sell-through pace holds, and cut Store A's next buy.

This uses average stock across the year, so a late delivery can drag one store's figure down. Want me to run the same check across every line and store?

Frequently asked questions

What is a good GMROI?

Anything above 1.0 clears the floor, because a GMROI of 1.0 means a line earns gross margin equal to the cost of the stock it holds. Published category averages come mostly from vendor blogs with no stated method, so build your own baseline: calculate GMROI by category over two years and treat the bottom quarter as your review list.

Should I use cost or retail value for inventory?

Use cost. GMROI compares the margin you earn with the money you put into stock, so average inventory at cost is the standard base. Valuing inventory at retail inflates the denominator and makes every line look less productive than it is.

Why calculate GMROI by store?

A line can earn well in one store and sit untouched in another. A company-wide figure averages the two and hides the problem. Store-level GMROI shows where stock is working and where it is waiting, which points to transfers before markdowns.