Inventory Turnover and the Average You Cannot Actually Measure
Why this matters
Inventory turnover is the one stock number most shops can actually produce, and it is the one most likely to be quietly wrong. The top of the fraction, what you consumed, comes out of your own parts issues and is as good as your records. The bottom, the average value of stock you held while consuming it, is almost never measured. It is derived from two readings plus an assumption about everything in between, and when that assumption breaks the figure lands a third off in either direction with no arithmetic error anywhere. A shop that believes it cycles its stock five times a year and actually cycles it under four is sitting on a quarter more frozen cash than it thinks, and the number it is checking will never say so.
What the figure is actually made of
- Numerator: the cost of parts CONSUMED in the window. Issued to jobs, used, written off. Not what you bought, not what you billed the customer for them.
- Denominator: the AVERAGE value of stock held across that same window.
- Result: how many times you cycled your stock in the window.
The numerator is a flow, recorded event by event as parts left the shelf. The denominator is a level, and a level has to be sampled to be averaged. Almost no shop keeps a stock valuation for every week of the year, so the denominator gets derived instead: take the current value and adjust it back by half the net movement across the window.
That derivation is worth restating in plainer form, because it is the whole article. Current value minus half of (current minus opening) is just the midpoint of the opening and closing readings. Your turnover figure has exactly two facts about your stock level in it, and they are the two days at the ends.
The purchases that never touch the shelf
The numerator carries a silent exclusion of its own. A field shop buys two ways: onto the shelf, and straight to the van on the way to the call. That second kind is consumption that never entered stock, and whether it sits in your numerator decides what the whole figure means.
- If direct-to-job purchases are IN the numerator, you are crediting the shelf with parts it never held. Turns read high, and they read higher the more will-call buying you do.
- If they are OUT, the figure is honest about the shelf, but it now describes a shrinking share of your parts flow rather than all of it.
Either way, the companion worth tracking is the split itself: what share of parts cost went through stock and what share bypassed it, over the same window. A turns figure holding at 4.0 while the through-stock share falls from three quarters to half is not a stable inventory position. It is a stock room quietly becoming ornamental, and what remains on those shelves is precisely the material nobody reaches for on the way to a job.
The assumption, stated plainly
The two-point midpoint is correct when stock moved in a straight line between those two readings. That is the only path it can represent. Anything that came in and went out BETWEEN the endpoints is invisible to it, however large.
Which gives a short rule you can apply to your own buying without computing anything: if you held more stock in the middle of the window than at either end, your turns read high. If you held less, they read low. Nothing else about your purchasing touches this figure.
| Your buying pattern | Where stock actually sat | Derived average vs true | Turns read | The tell that it is this one |
|---|---|---|---|---|
| Steady weekly replenishment | Flat, narrow band | About right | About right | Receipt values per week vary little |
| Big restock late in the window | Low most of the year, high at the end | Too high | Too low | One or two receipts dwarf the rest, dated near the close |
| Bulk buy early, drawn down | High most of the year, low at the end | Too low | Too high | A large receipt near the open, no matching one after |
| Seasonal build and burn, endpoints matched | High through the middle | Far too low | Far too high | Opening and closing values nearly equal after a full season |
The last row is the dangerous one, and it is the default shape in any trade with a season. Net movement is near zero, so the adjustment term is near zero, and the derived average collapses to whatever a single day's stock level happened to be.
A worked year
A shop indexes its stock value to its January reading, so January is 1.00 and everything else is a multiple of it. It runs a seasonal push and has month-end valuations because it rolls them forward (see the next section). The twelve readings:
1.00, 1.05, 1.30, 1.70, 1.85, 1.80, 1.70, 1.50, 1.25, 1.10, 1.00, 1.00
Parts consumed across the year came to 5.00 in the same index units, five times the January stock level.
The derived figure. Opening 1.00, closing 1.00, so net movement is zero and the adjustment term is zero. Derived average stock is 1.00. Turns: 5.00 divided by 1.00 is 5.0.
The true figure. The twelve readings sum to 16.25, so the time-weighted average is 16.25 divided by 12, which is 1.354. Turns: 5.00 divided by 1.354 is 3.69.
The gap. 5.00 minus 3.69 leaves 1.31, and 1.31 over 3.69 is 0.355, so the reported figure sits about 35 percent above the true one. Both numbers are turns per year over the same twelve months, so they compare directly.
The decision that gap changes is not academic. At 5.0 turns this shop reads as cycling its stock roughly every ten weeks and would leave its reorder maximums alone. At 3.69 it is cycling roughly every fourteen weeks, and the extra sitting stock is the seasonal build nobody trimmed after the season ended. The correction does not come from buying better in the season, it comes from pulling the maximums back down in the four months either side of it.
Rebuilding the denominator without historical counts
You do not need a stock valuation for every month. You need one known count and the movement either side of it, which you already record:
Month-end value = prior month-end + receipts at cost - issues at cost - write-offs.
Roll that forward from your last physical count and you have twelve honest readings a year for the cost of one number a month. Three cautions that decide whether the roll-forward is worth anything:
- Value receipts at cost, on one costing method held for the whole series (FIFO, weighted average or specific identification, whichever your system already uses) not at the price you bill. Mixing a marked-up issue value into a cost-based roll inflates the denominator every month and drags turns down permanently, and switching costing method mid-series bends the line at the switch exactly as an unrecorded write-off does.
- Write-offs are movement. Stock that was condemned, lost or returned left the shelf without being issued to a job. If it is not in the roll it shows up as a reconciliation shock at the next physical count, and the whole series bends at that point.
- Reconcile at every physical count and restate, do not patch. When the count disagrees with the roll, the count wins and the gap gets attributed to the period it most likely came from, rather than dumped on the month of the count.
This roll-forward is an internal management figure and not an accounting basis. What your books or your tax return carry for inventory may legitimately differ, and a shop small enough to fall under the gross-receipts exception at 26 U.S.C. 471(c) may be expensing materials rather than capitalizing them at all, so reconcile this series to your physical counts, never to your financial statements, and ask your accountant before changing what the books do.
A shop that will not do this monthly can still do it quarterly. Four readings a year through a season beats two, and it catches the hump the endpoints cannot see.
One figure over two populations
The shop-wide number averages two kinds of stock that have no business being compared, and the useful version is computed per class.
- Fast truck consumables - fittings, fasteners, standard filters, common wear parts, anything a weekly replenishment run refills. A starting target of 8 to 12 turns a year is reasonable for a shop restocking weekly; under about 6 you are holding several weeks of cover on a route that refills in one. Tune it against your own trailing four quarters rather than against this range.
- Shop or warehouse stock - odd sizes, control boards, equipment spares, seasonal items. 2 to 4 turns a year is a sane starting point. Pushing this class toward truck-stock numbers is how shops end up sourcing a stocked item on every second call.
- Special-order and job-allocated material - not stock at all, and it belongs in neither half of the fraction. You did not choose to hold it, it is committed to one job, and leaving it in the denominator drags the shop-wide figure down every time a large job's material waits on a schedule date.
Watch what the blend does. Say truck stock is 20 percent of stock value turning 10 times a year, and shelf stock is the other 80 percent turning 2.5. Consumption is 0.2 times 10 plus 0.8 times 2.5, which is 2.0 plus 2.0, or 4.0 units of consumption per unit of average stock. The blended rate is 4.0 turns, and neither class is anywhere near it. The two classes contribute equal consumption despite one holding four times the value of the other, so the blended figure moves when either one does and tells you nothing about which.
Note that 4.0 is the correctly weighted rate, total consumption over total stock. Averaging the two class figures unweighted would give 6.25, which is not this shop's rate at all. That trap has its own article rather than a second derivation here.
Two shops where the shortcut collapses
The shop it is exactly right for. A shop that buys on a weekly replenishment run sized to the week's usage, and never bulk buys, holds a stock value that oscillates in a narrow band around a flat line. Opening, closing and true average all land within a couple of percent of each other, and the derived denominator needs no correction. Worth noticing why: not because that shop is careful with the metric, but because its buying pattern happens to be the straight line the formula assumes. It gets a correct figure for free and could not tell you what would break it.
The shop it tells nothing at all. A shop whose opening and closing readings are identical after a full seasonal cycle has a net movement of zero, so the adjustment term is zero and the derived average is simply the endpoint value. The formula now contains no information about the year whatsoever. It is reporting one day's stock level as if it were twelve months, and it will report the same denominator whether that shop staged double its normal stock in the season or none at all. That is the worked case above, and it is the most common shape in the trades that have a busy season.
Between those two shops sits the practical reading: the more your buying looks like the first, the more you can trust the shortcut, and the more it looks like the second, the more the figure is a restatement of one day you did not choose.
References
- See related: The Real Cost of Carrying Too Much Inventory, for carrying cost as an annual rate on stock value
- See related: Gross Margin Percent Is an Average of Averages, for why an unweighted mean of ratios is not the weighted rate
- See related: Setting Reorder Points So You Never Run Out Mid-Job, for the maximums this figure should change