A service van is a small warehouse with a diesel engine, and most shops manage it like a junk drawer. Things go on when someone remembers, come off when someone uses them, and get counted when the owner gets nervous. The result is a truck full of parts nobody has touched in a year and missing the $14 capacitor that would have closed today's call.
ABC analysis is the standard way to sort inventory by what matters most. Applied to truck stock, it's half right. It tells you how tightly to manage each part, but not whether a truck should carry it at all. This post walks through a full ABC analysis for a service van with a worked 24-part example, then adds the second test most guides skip: a break-even rule for carrying a part, based on what a go-back really costs.
What ABC analysis is, and where it comes from
ABC analysis applies what quality pioneer Joseph Juran called the principle of the "vital few and trivial many." Juran later admitted he'd attached Vilfredo Pareto's name to the idea mistakenly, though the label stuck.1 In inventory, it means a small share of items usually accounts for most of the money, so those items deserve most of the attention.
The method is simple:
- 1
Compute annual usage value
For each part: unit cost × units used across the fleet in the last 12 months. Use cost, not selling price.
- 2
Rank from highest to lowest
Sort the list by usage value and compute each part's running share of the total.
- 3
Draw the lines
A common cut is A = the parts making up the first ~80% of value, B = the next ~15%, C = the last ~5%. The exact cut-offs are a judgment call; keep them stable once chosen.
- 4
Set a policy per class
A parts get tight min/max levels, frequent counts and weekly replenishment. C parts get generous levels and occasional counts.
Annual usage value
A worked ABC analysis: 24 parts on a 10-van HVAC fleet
Below is a hypothetical parts list for a residential HVAC shop with 10 service vans. Costs and usage are illustrative, not supplier prices; plug in your own from 12 months of invoices and purchase history.
| Class | Part | Unit cost | Fleet uses / yr | Usage value | Cumulative | Job-stopper? |
|---|---|---|---|---|---|---|
| A | R-410A refrigerant (lb) | $22 | 900 | $19,800 | 10.6% | Yes |
| A | Dual run capacitor 45/5 | $14 | 1,400 | $19,600 | 21.1% | Yes |
| A | Condenser fan motor, universal | $95 | 180 | $17,100 | 30.3% | Yes |
| A | Pleated filter 16x25x1 | $5 | 2,600 | $13,000 | 37.3% | No |
| A | Blower motor, common ECM model | $420 | 30 | $12,600 | 44.0% | Yes |
| A | Universal control board | $165 | 70 | $11,550 | 50.2% | Yes |
| A | Programmable thermostat | $55 | 210 | $11,550 | 56.4% | No |
| A | Contactor, 2-pole 30A | $18 | 620 | $11,160 | 62.4% | Yes |
| A | Inducer motor, common model | $210 | 40 | $8,400 | 66.9% | Yes |
| A | Universal ignitor | $28 | 300 | $8,400 | 71.4% | Yes |
| A | Hard start kit | $32 | 260 | $8,320 | 75.9% | Yes |
| A | Condensate pump | $68 | 110 | $7,480 | 79.9% | Yes |
| B | Pressure switch | $34 | 150 | $5,100 | 82.6% | Yes |
| B | Coil cleaner (can) | $9 | 500 | $4,500 | 85.0% | No |
| B | Transformer 40VA | $21 | 190 | $3,990 | 87.2% | Yes |
| B | Float switch | $16 | 240 | $3,840 | 89.2% | No |
| B | Flame sensor | $9 | 380 | $3,420 | 91.1% | No |
| B | Filter-drier | $12 | 260 | $3,120 | 92.7% | Yes |
| B | Disconnect, non-fused 60A | $22 | 140 | $3,080 | 94.4% | No |
| C | TXV, common size | $120 | 25 | $3,000 | 96.0% | Yes |
| C | Whip, 6 ft | $18 | 160 | $2,880 | 97.6% | No |
| C | Fuses, 3A and 5A | $1.20 | 1,500 | $1,800 | 98.5% | Yes |
| C | Time-delay relay | $26 | 60 | $1,560 | 99.4% | Yes |
| C | Wire nuts and terminals | $0.30 | 4,000 | $1,200 | 100.0% | Yes |
Worked example, hypothetical costs and usage. "Job-stopper" means a missing unit usually forces a go-back or a supply-house run.
50% → 80%
Worked example: half the parts list carries 80% of usage value (class A)
21% → 6%
Worked example: the C class is a fifth of the list and 6% of value
$186,450
Worked example: annual usage value across 10 vans for these 24 parts
This list is short and already curated, so it's less lopsided than a real one. A full price book with thousands of materials is usually far more skewed, with a long tail of items that have barely moved. If you're cleaning that tail up anyway, the price book cleanup post covers how.
Where pure ABC goes wrong on a truck
Look at the bottom of the table. Fuses and wire nuts are class C: together they're about 1.6% of usage value. A pure ABC policy would count them twice a year and stop worrying. But both are marked job-stoppers. A tech without the right fuse can't finish the call, and a go-back for a $1.20 part costs the same truck roll as a go-back for a $420 motor.
That's the gap. In a warehouse, money tied up is the main cost of inventory. On a van, the main cost is the go-back when a part isn't there. The first-time fix rate post found that "the part wasn't on the truck" is usually the most fixable return reason, and the callback cost post put a go-back at roughly $136 in a slow week and $407 when it displaces a paying call, in its worked example.
So truck stock needs two tests:
- Value class (A, B, C) decides how tightly you manage a part: counting frequency, replenishment cadence, who approves changes.
- The carry test decides whether a part goes on the van at all, and how many.
The carry test: a break-even rule
Carrying a part costs money: the cash tied up, the space on the shelf, damage, theft, obsolescence. Not carrying it costs a go-back every time a job needs it. The break-even is a one-line formula.
Carry break-even
Rearranged, the minimum usage that justifies carrying one unit is:
Break-even uses per truck per year
Carrying-cost rates are usually estimated rather than measured, and published figures vary widely. For the example we'll use 25% a year, a hypothetical rate you should replace with your own (cost of capital, plus shrink and damage, plus obsolescence).
| Part | Unit cost | Carrying cost / yr (25%) | Break-even uses / truck / yr at $136 go-back | Actual uses / truck / yr | Carry? |
|---|---|---|---|---|---|
| Blower motor, common ECM | $420 | $105 | 0.77 | 3.0 | Yes, one |
| Inducer motor, common model | $210 | $53 | 0.39 | 4.0 | Yes, one |
| TXV, common size | $120 | $30 | 0.22 | 2.5 | Yes, one |
| Time-delay relay | $26 | $7 | 0.05 | 6.0 | Yes |
Worked example. Go-back cost uses the slow-week figure from the callback cost model; in peak weeks the case for carrying is three times stronger.
The result surprises most owners: almost any part that fits on the van and gets used once a year per truck pays for its shelf space, even a $420 motor. The real limits on truck stock aren't financial. They're physical space, weight, and fitment, since a "common" motor is only common if it fits the systems your techs actually see. That's why universal and multi-fit parts are worth paying a little more for, and why the parts list should come from your own install base, not a supplier's starter kit.
How many to carry: Poisson for slow movers
Averages mislead on slow parts. A truck that uses 0.36 condenser fan motors a week "needs" a third of a motor, which isn't a thing. What you actually want to know is how many to carry so the truck doesn't run out before the next restock.
For parts used a few times a week or less, demand is well described by a Poisson distribution, which NIST's engineering statistics handbook describes as a model for the number of events in a given time interval.2 Given the average uses per truck between restocks, Poisson tells you the chance of needing 0, 1, 2 or more.
| Part | Avg uses / truck / week | Carry for 95% coverage | Carry for 99% coverage |
|---|---|---|---|
| Wire nuts and terminals | 8.0 | 13 | 15 |
| Pleated filter 16x25x1 | 5.2 | 9 | 11 |
| Fuses, 3A and 5A | 3.0 | 6 | 8 |
| Dual run capacitor 45/5 | 2.8 | 6 | 7 |
| R-410A refrigerant (lb) | 1.8 | 4 | 6 |
| Contactor, 2-pole 30A | 1.24 | 3 | 4 |
| Condenser fan motor | 0.36 | 2 | 2 |
| Blower motor, common ECM | 0.06 | 1 | 1 |
Worked example. Poisson coverage for a one-week restock cycle: the chance a truck doesn't run out before the next restock. Usage spread evenly across 10 trucks and 50 weeks.
Those "carry" numbers are your max for a weekly restock. Set the min (the reorder point) at the level that covers demand until the restock arrives. For a fixed weekly restock, that's simply restocking everything back to max each week. If restocks are on request, use the textbook reorder point: expected demand during the replenishment lead time plus safety stock for its variability.3
Reorder point
In peak season, demand per truck rises. Recompute the table with summer usage for June through August, or just raise maxes on the A-class heat-failure parts before the first heat wave. The heat wave staffing post covers the rest of that week.
A policy table by class
Putting both tests together gives a policy you can hand to whoever runs inventory.
| Job-stopper | Not a job-stopper | |
|---|---|---|
| A (top ~80% of value) | Carry on every truck. Tight min/max from Poisson. Count monthly. Restock weekly. | Carry at modest levels; consider warehouse-only if the supply house is close. Count monthly. |
| B (next ~15%) | Carry on every truck. Count quarterly. Restock weekly. | Carry if space allows; otherwise warehouse. Count quarterly. |
| C (last ~5%) | Carry generously (they're cheap). Count twice a year, but check on every restock that they're present. | Warehouse or supply-house only. |
The C-class job-stoppers deserve one special rule: never let them hit zero. A bin of fuses running empty costs a go-back, and nobody counts fuses.
Measuring whether the van is working
Truck parts hit rate
Inventory turns
Hit rate tells you if the stock serves the work. Turns tell you if the stock is lean. You want both high, and they pull against each other, which is exactly why the carry test matters: it tells you which parts to add when hit rate is low and which to pull when turns are low.
Two more numbers belong on the monthly review:
- Count variance at cost, per truck. The difference between counted and expected stock. Some variance is unbilled parts (a revenue leak); some is shrink.
- Parts added after go-backs. Each quarter, list the parts that caused "not on truck" returns and add them to the template. This loop is where most first-time fix gains come from.
In TradesWork, each truck carries min/max levels, tracked materials come off the truck when a tech puts them on an invoice, and replenishment refills anything below its min from the warehouse first, then drafts purchase orders by vendor. Techs count their own truck and request restock from the field app with the barcode scanner, and counts wait for office approval before they change stock. See inventory and purchasing for details.
A note on taxes
How you account for truck stock has tax consequences, so bring your accountant in before changing anything. IRS Publication 334 explains that small businesses meeting the gross receipts test (average annual gross receipts of $31 million or less over the three prior years, for 2025 returns) can treat inventory as non-incidental materials and supplies, deducting the cost in the year the items are provided to customers.4 For tax years beginning in 2026, the gross receipts threshold is $32 million.5 Either way, accurate truck counts make year-end simpler.
A truck stock checklist
ABC analysis for your vans, in one afternoon
- Export 12 months of materials used on invoices with quantity and unit cost.
- Compute usage value per part, rank it, and mark A, B and C at roughly 80% and 95% cumulative.
- Mark each part as a job-stopper or not, with your service manager.
- Apply the carry test with your own go-back cost and carrying rate.
- Set max per truck from Poisson coverage for your restock cycle (95% is a sensible start).
- Set counting cadence by class: A monthly, B quarterly, C twice a year.
- Never let C-class job-stoppers hit zero; check them on every restock.
- Track hit rate and turns monthly; add parts after go-backs every quarter.
- Recompute maxes before peak season with summer usage.
The van that pays for itself isn't the one with the most stuff on it. It's the one where every shelf earns its place: the expensive parts that come up once a quarter, the cheap ones that stop jobs, and nothing that hasn't moved since the last model year. For the vocabulary, see the glossary on truck stock and purchase orders.
Footnotes
-
The Non-Pareto Principle; Mea Culpa, Joseph M. Juran, Juran Institute archive, 1974. ↩
-
Poisson Distribution (1.3.6.6.19), NIST/SEMATECH e-Handbook of Statistical Methods, National Institute of Standards and Technology. ↩
-
Reorder Point (lecture slides), Dennis Bricker, University of Iowa College of Engineering. ↩
-
Publication 334, Tax Guide for Small Business, Internal Revenue Service, for use in preparing 2025 returns. ↩
-
Revenue Procedure 2025-32, Internal Revenue Service, 2025 (section on the gross receipts test for taxable years beginning in 2026). ↩