What GMROI means
Gross Margin Return on Investment measures how many gross margin dollars you earn per dollar invested in inventory.
A GMROI of 3.0 means every dollar tied up in inventory generated three dollars of gross margin over the period. Below 1.0 means the inventory returned less gross margin than the cost of stocking it. You'd have been better off not carrying it.
The intuition: inventory is an investment. GMROI is that investment's return rate. That's a fundamentally different question from "how fast did it sell." It is the question the margin tools I build for stores answer per variant.
The GMROI formula
There's a second form that's more revealing, and it's the whole argument in one line: GMROI is margin and velocity multiplied together. Turnover only measures the second term, which is why two items with identical turnover can have very different GMROI, and why grading buys on turnover alone quietly biases you toward cheap fast-moving goods with thin margins.
One trap here. The second term is a sales-to-inventory ratio, which differs from the cost-based inventory turnover you'd report to finance. Mixing the two is the most common way GMROI gets miscalculated.
GMROI = Gross Margin Dollars ÷ Average Inventory at Cost
GMROI = Gross Margin % × (Sales ÷ Average Inventory at Cost)
A worked example
Revenue of $1,500,000 on COGS of $900,000. Average inventory at cost of $150,000.
Note what happens if you substitute cost-based turnover, $900,000 ÷ $150,000 = 6.0, into that second form: you get 0.40 × 6.0 = 2.4, and you've understated your return by 40%. Same business, wrong denominator.
Practical guidance: use the direct formula. Gross margin dollars divided by average inventory at cost. It has no convention to get wrong.
Gross Margin $ = $1,500,000 − $900,000 = $600,000 GMROI = $600,000 ÷ $150,000 = 4.0
Gross Margin % = $600,000 ÷ $1,500,000 = 40% Sales ÷ Average Inventory = $1,500,000 ÷ $150,000 = 10.0 GMROI = 0.40 × 10.0 = 4.0
What is a good GMROI?
Above 1.0 is the floor. Below that, the inventory isn't returning what it cost to carry.
Two things to take from the table. Grocery and apparel land in the same place by opposite routes: grocery runs thin margins at very high turnover, apparel runs fat margins at low turnover, same GMROI. That's the metric working correctly. It doesn't care how you get there, only what you earned per dollar invested.
And the specialty range is the real lesson: from 1.4 to 4.45 inside a single segment. Category benchmarks are orientation. Your useful comparison is your own SKUs against each other.
| Segment | GMROI |
|---|---|
| Grocery | 3.45 |
| Apparel & Footwear | 3.43 |
| Discount stores | 2.23 |
| Department stores | 2.17 |
| Furniture | 2.1 |
| Home improvement | 1.95 |
| Specialty (range) | 1.4 – 4.45 |
Where GMROI actually earns its keep
Not at the company level. At the buy level.
Run GMROI per variant and rank it, and the list rarely matches your revenue ranking or your turnover ranking. Four patterns show up.

- High margin, low turn. GMROI can still be strong. This is the category people wrongly discount because turnover looks bad. If a unit earns 65% and turns three times a year, it's outperforming a 20% item that turns eight times. Don't mark it down to fix a turnover number. An inventory aging report with a velocity column is what keeps it off the markdown list.
- Low margin, high turn. also potentially fine, but fragile. Its GMROI depends entirely on velocity holding. Lose a channel or a buy box and it collapses immediately, where the high-margin item degrades gracefully.
- High margin, high turn. buy more, deeper. This is where working capital freed from elsewhere should go, and most operations under-invest here because they're carrying too much tail to have the cash.
- Low margin, low turn. cut it. This is what a SKU rationalization is looking for, and GMROI finds it in one column instead of four.
The multi-channel adjustment
Standard GMROI was built for a single-channel retailer with one price and one cost structure. If you sell across marketplaces, the plain formula overstates your return everywhere. None of the fixes are exotic. It's the standard formula with an honest numerator. Producing that numerator across channels is usually the join that custom inventory software exists for.
- Use margin after channel fees. platform commissions in apparel and footwear realistically run from around 8% on some marketplaces to around 15% on others, before shipping and returns. A GMROI calculated on list margin ignores that entirely, and the gap between an 8% channel and a 15% channel is large enough to reverse the ranking of two items.
- Account for returns where they exist. some channels have effectively no seller returns; others run high single digits. A 9% return rate doesn't just remove 9% of the revenue. The unit comes back, re-enters inventory, and ages while it does. It hits both the numerator and the denominator.
- Calculate per channel where the mix differs. the same variant can have a GMROI of 4.5 on a low-fee, no-return channel and 2.1 on a high-fee channel with returns. That's not a rounding difference. It's the difference between "buy more" and "stop listing it there."
GMROI against inventory turnover: which to use
Use both, for different jobs. Inventory turnover tells you how hard your working capital is working. GMROI tells you whether the working capital is in the right things. A business can have excellent turnover and poor GMROI: that's usually a business discounting too aggressively to keep goods moving. The free consultation runs both numbers per variant on your own exports.
| Inventory turnover | GMROI | |
|---|---|---|
| Measures | Velocity | Return on invested capital |
| Sees margin? | No | Yes |
| Best for | Operational efficiency, cash cycle | Grading buys, assortment decisions |
| Level | Business or category | Variant |
| Reported to | Finance, lenders | Buying |
Frequently asked questions
- What is GMROI?
- Gross Margin Return on Investment measures how many gross margin dollars you earn for every dollar invested in inventory. A GMROI of 3.0 means every dollar of inventory returned three dollars of gross margin over the period.
- What is the GMROI formula?
- GMROI equals gross margin dollars divided by average inventory at cost. It can also be expressed as gross margin percentage multiplied by inventory turnover, which shows why the metric captures both margin and velocity in a single number.
- What is a good GMROI?
- Anything above 1.0 means the inventory is returning more gross margin than it cost to stock. Recent analysis of publicly traded retailers puts apparel and footwear around 3.43, department stores near 2.17, and furniture near 2.1. Benchmarks vary widely by category.
- Is GMROI better than inventory turnover?
- For evaluating a buying decision, yes. Turnover treats a high-margin item and a low-margin item as equivalent if they sell at the same rate. GMROI does not. Turnover remains the better measure of overall operational efficiency.
- How is GMROI different from gross margin?
- Gross margin is a percentage of sales and ignores how much inventory you had to carry to produce it. GMROI divides margin dollars by the inventory investment, so an item earning good margin on a huge pile of stock scores poorly.
- Can GMROI be negative?
- Yes, if you sell below cost. It means the inventory destroyed capital rather than returning it.
GMROI per variant, without the export
The Inventory Health Dashboard grades every variant on margin, velocity, age and days of supply together, so the high-margin slow mover doesn't get marked down alongside genuine dead stock, and the low-margin fast mover doesn't get mistaken for a winner. Margin after channel fees is the input most operations can't produce on demand, because fees, shipping and returns live in different exports.