How it's worked out
Inventory turns = annual parts & materials cost ÷ average inventory value. Both numbers are at cost. If you don't track an average, use (inventory at the start of the year + inventory at the end) ÷ 2.
Days on hand = 365 ÷ turns. That's roughly how long the average dollar of stock sits before it goes into a job.
Carrying cost = average inventory × your carrying cost %. The % is an assumption you set, not a fixed number.
Target inventory = annual parts cost ÷ target turns. The difference between what you carry today and that target is the cash you'd free. Carrying cost saved = cash freed × your carrying cost %.
Worked example
With the example numbers above (all placeholders):
- Turns: $300,000 ÷ $75,000 = 4 turns a year.
- Days on hand: 365 ÷ 4 = about 91 days.
- Carrying cost: $75,000 × 20% = $15,000 a year.
- Per truck: $75,000 ÷ 6 trucks = $12,500 of total stock per truck.
- At 6 turns: $300,000 ÷ 6 = $50,000 of stock (about 61 days), which frees $25,000 once and saves $25,000 × 20% = $5,000 a year.
- Beginning + ending option: ($80,000 + $70,000) ÷ 2 = the same $75,000 average.
Where the cash usually hides
- Dead stock. Parts for equipment you no longer sell or service. Pull a list of items with no usage in the last year.
- Truck-to-truck differences. Two trucks that run the same calls can carry very different stock. A standard truck stock list helps.
- Returns never sent back. Wrong or unused parts sitting in a truck bin instead of going back to the supply house for credit.
- Buying for a discount. A bulk-buy discount only pays if it beats what carrying the extra stock costs you.
Things this leaves out
- Running out costs money too. Fewer parts on the truck can mean more second trips and fewer first-visit fixes. Chase turns on slow movers, not on the parts techs use every day.
- Seasonality. Stock swings with the season. An average across the year beats a single count taken in your busiest month.
- Equipment for installs. If you hold condensers and furnaces for installs, consider running them separately from service parts — they turn very differently.
- The cash freed is one-time. Carrying less moves money into your bank once. The carrying cost saved is what you keep each year after that.
We don't quote a "typical" HVAC inventory turnover or carrying cost %, because we haven't found a solid public source for them. That's what the anonymous Owner Numbers survey collects, so owners can compare against real peers.
Related tools and guides
Cash stuck in unpaid invoices works the same way as cash stuck on shelves. The HVAC A/R and DSO calculator shows how much you'd free by collecting faster. To plan for the slow season, use the HVAC slow-season cash reserve calculator, and for deposits, progress billing, and a 13-week cash forecast, read HVAC Cash Flow: How to Get Paid Faster (2026). To make sure parts are priced to cover what they cost you to hold, try the HVAC markup vs margin calculator.