GMROI Inventory Return

GMROI = GM$ ÷ AvgInvCost = Margin% × Sales turns (Sales ÷ AvgInvCost). Inventory must be at cost, not retail.

Sample figures: AU retail / distribution.

Sales, COGS, and average inventory at COST

Inventory at cost — never retail selling price. Using retail overstates the denominator and understates GMROI. Persist locally · Jump to GMROI

Cost basis, not retail

Average inventory is the stocked $ at cost (what you paid). Retail / ticket price belongs in Sales, not in the inventory field. GMROI = GM$ ÷ AvgInvCost = Margin% × Sales turns. Cost turns (COGS ÷ AvgInvCost) are separate — not used in that product.

Category / book Sales COGS Avg inventory at COST GM$ Margin % Sales turns GMROI DIO Remove

First row is the primary signal (whole book). Extra rows are optional categories.

GMROI, turns, and days inventory

Primary row. Target band ~2.0–3.5× is an illustrative retail / distribution guide — set your own policy.

How this is calculated
  • GM$ = Sales − COGS
  • Margin % = GM$ ÷ Sales
  • Sales turns = Sales ÷ Average inventory at COST
  • Cost turns = COGS ÷ Average inventory at COST (separate; DIO uses this)
  • GMROI = GM$ ÷ Average inventory at COST = Margin % × Sales turns
  • DIO = 365 ÷ Cost turns (not Sales turns)

If you enter retail inventory, GMROI is wrong — too low. Illustrative — not advice.

Sensitivity dials

Margin points and turns % on the primary row — live GMROI and DIO.

What-if dials

Each dial stacks on your primary-row inputs. Inventory stays at COST.

Adds percentage points to gross margin on the primary row.

Scales turns (inventory still at cost).

Take it with you

Get the worked example workbook in Excel — type your own numbers into it.

The Excel is the worked example workbook — type your own numbers into it. Stays on your device.