K-05
Inventory Turns
How many times a year does inventory turn over — with a COGS, units, or revenue numerator, an average or point-in-time denominator, and at which valuation?
Definitions and source tables below are current to the date above — verify against current SAP, Oracle, Microsoft, Infor, and Databricks documentation before you build.
What inventory turns measures
Inventory turns is throughput divided by what is held: how many times over a year the stock on hand is consumed and replaced. It is the oldest working-capital metric in the business, and it is also the one most likely to differ between the finance deck and the operations deck for the same period.
The gap is almost never performance. It is the numerator basis — cost against cost, or revenue against cost — or the averaging window, or the valuation the two halves are struck at. A revenue numerator over a cost denominator is a mixed-basis ratio: it rises when prices rise and falls when discounting deepens, neither of which is an inventory event. A point-in-time denominator taken at a quarter end, when everything has been shipped and nothing has been received, produces a number that flatters the year.
So the useful discipline is not choosing the theoretically best convention; it is making the three switches agree with each other and then leaving them alone. Turns is only comparable to itself, computed identically over time — the same rule that governs every other ratio in this dictionary.
Also answers to Turns · Inventory Turnover · ITO
The decision switches
Three switches, and the requirement is that they be consistent rather than clever. A defensible turns figure states all three.
| Switch | Settings | Practice default |
|---|---|---|
| Numerator | Annualized COGS · Units shipped · Revenue | Annualized COGS — cost in the numerator, cost in the denominator. |
| Denominator | Average inventory over the period · Point-in-time snapshot | Average of period-end balances — and state how many points went into the average. |
| Valuation | Standard cost · Moving average | Match whatever the COGS numerator is valued at — mixed valuations make the ratio meaningless. |
Numerator
- dependsAnnualized COGS — cost against cost — the practice default, and the only self-consistent version
- dependsUnits shipped — clean for a single-category operation; meaningless across mixed unit sizes
- raises the scoreRevenue — margin inflates the ratio, and it moves with price changes that never touched inventory
Practice default Annualized COGS — cost in the numerator, cost in the denominator.
Denominator
- dependsAverage inventory over the period — the honest base — it reflects what was actually held for the whole window
- dependsPoint-in-time snapshot — moves with quarter-end drawdowns, in either direction
Practice default Average of period-end balances — and state how many points went into the average.
Valuation
- dependsStandard cost — stable and comparable across periods, at the price of drifting from actual cost
- dependsMoving average — tracks reality, and moves under you between reporting runs
Practice default Match whatever the COGS numerator is valued at — mixed valuations make the ratio meaningless.
Formula & grain
Turns = annualized COGS ÷ average inventory value
- Numerator
- Cost of goods shipped or issued over the window, annualized
- Denominator
- Average on-hand value at the same valuation
- Grain
- Portfolio or site, from summed value — item-level turns only from that item's own numerator and denominator
- Note
- Days of supply is roughly 365 ÷ turns, but only when both metrics are built on identical bases.
Common pitfalls
- Revenue over cost — A revenue numerator against a cost denominator moves with price and margin, not with inventory. If turns improved in a month nothing physically changed, check the numerator basis first.
- Averaging monthly turns — A mean of twelve monthly turns figures is not the annual turns figure. Recompute from summed cost and averaged inventory over the full window.
- Snapshot denominators — A single period-end balance is the most manipulable input in the ratio, deliberately or otherwise. Average the period ends and say how many you averaged.
- Mixed valuations — COGS struck at standard cost against inventory valued at moving average produces a number that means nothing and drifts on its own. Both halves belong on the same valuation.
Source tables — SAP
Source tables — JD Edwards
Source tables — Dynamics 365
InventSum is the on-hand aggregate and InventTrans the movement detail; item prices carry the valuation. Every quantity hangs off InventDim, so any site or warehouse cut goes through that dimension table rather than through a column on the fact.
Source tables — Infor M3
Source tables — Oracle EBS
On-hand is held at a finer grain than most people expect — sum the quantity detail before joining anything to it, or every downstream number is multiplied by the number of on-hand rows. Costs are held per cost type, so the cost type is part of the valuation switch.
Source tables — Oracle Fusion
Standard cost and perpetual-average cost are separate tables, so the valuation switch is literally a choice of which one to join. Pick the one the COGS figure is built on and keep both halves of the ratio on it.
Store the components, not the ratio
Every switch above is a different way of reading the same underlying facts, so the components — quantities, dates, values, flags — are what belongs in the gold layer, never the finished percentage. Bronze keeps the source tables as extracted, silver resolves the encodings once, and gold carries a component-level fact that each variant of Inventory Turns reads as a SELECT — the pattern worked through in full in the OTIF entry's landing pattern.