GMROI Inventory Return

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

Illustrative AU retail / distribution sample until you enter actuals. Not financial advice.

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

Download a prompt, export the Excel workbook, or email yourself.

Downloads stay on your device. Inputs are saved in this browser (localStorage).