Decision software for grocery chains

GMROI

GMROI (Gross Margin Return on Inventory Investment) is gross profit for a period divided by average inventory at cost; it shows how much gross profit each unit of money tied up in stock produces.

Unit: timesTracking frequency: Monthly; quarterly by categoryHigher is better

Also calledgross margin return on inventory investment, GMROII, gross margin return on investment, return on inventory investment

Formula

(Net sales − Cost of goods sold) ÷ Average inventory at cost
Gross profit
Net sales − Cost of goods sold; the actual value after markdowns, shrinkage and returns.
Average inventory at cost
The average of month-end inventory values, at cost rather than selling price.
Equivalent form
Inventory turnover × Mark-up (mark-up = Gross profit ÷ COGS).

Calculator

Enter your own figures and the result updates instantly. The defaults are the figures from the worked example below.

Result2,45 times

Worked example

How to read it, and what good looks like

GMROI is the measure for comparing categories because it combines margin and turnover: GMROI = inventory turnover × mark-up. A high-margin, slow-moving category and a low-margin, fast-moving one can only be compared on the same scale with this number. The two calculation routes, the category ranking table and the errors that distort the result are in the GMROI guide; this page is for the quick calculation and sourced comparison.

Grocery margins are thin: in the companies' 2025 results prepared under TMS 29, gross margin was 24.3% at Migros and 20.5% at ŞOK. In a thin-margin business, turnover carries most of the GMROI; a department that doubles its turnover at the same margin doubles its GMROI. That is why grocery GMROI is compared by department, and the chain total is not used as a category target.

The floor is derived from the business's own numbers: gross profit must cover the annual cost of carrying the stock and the operating costs attributable to it. In a business with an inventory carrying cost rate of 43%, a GMROI below 0.43 means gross profit does not even cover the cost of holding the stock. In Mindpera, Mind Stock calculates GMROI from the same data as turnover and ageing; because Mind Cost reports gross profit separately under both costing methods, GMROI can be read on either basis.

Where it misleads

  • Valuing stock at selling price inflates the denominator and cuts GMROI by the margin; comparisons between categories break down.
  • GMROI calculated on initial margin stays on paper because it ignores actual gross profit after markdowns, shrinkage and returns.
  • Taking average inventory from two end points makes GMROI look higher in seasonal categories; use the month-end average.
  • A chain-level GMROI lets strong categories hide weak ones; decide by category and product group.

Data you need

  • Net sales and cost of goods sold by category (actual, after markdowns)
  • Month-end inventory at cost, by category
  • Costing method used: weighted average or last purchase cost
  • Flags for goods in transit and reserved stock

Mindpera products that calculate this KPI

Frequently asked questions

Why is inventory taken at cost in GMROI?
The numerator is gross profit, which arises from cost, so the denominator must be on the same basis. Taken at retail, the denominator is inflated by the margin and GMROI comes out too low; if two categories run at different margins, their ranking is distorted as well. That is why the denominator is always average inventory valued at cost.
What does a GMROI below 1 mean?
Each unit of currency tied up in stock earned less than one unit of gross profit over the year. That is not a loss on its own, but gross profit has to cover the annual cost of carrying the stock and operating costs. In a category below 1, look first at margin, dead stock and purchase quantity; whichever weighs most is where the intervention starts.

Sources

  1. Migros 2025 Integrated Annual Report (KGK archive, Turkish) — 2025-12-31
  2. Şok Marketler, 2025 Integrated Annual Report (Turkish) — 2025-12-31

Track GMROI on your own data

Mindpera runs this calculation every day by product, branch and category; a value that crosses its threshold lands on its owner as a task.