Van Stock Management for HVAC and Electrical Vans: Reorder Levels With AI

Coding Liquids tutorial cover featuring Sagnik Bhattacharya for Van Stock Management for HVAC and Electrical Vans: Reorder Levels With AI.
Coding Liquids tutorial cover featuring Sagnik Bhattacharya for Van Stock Management for HVAC and Electrical Vans: Reorder Levels With AI.

Export the parts used per job (a year if you have it, twelve weeks at least), work out each part's weekly use per van, then set the maximum where nine weeks in ten are covered and the minimum near an average week. AI cleans the messy part names and drafts the top-up list; a spreadsheet does the arithmetic.

The catch is that an average hides the heat-wave week that empties the van, so levels come from a high percentile and a job-type forecast, not a plain mean. Treat the first set as a draft for a month, because twelve weeks of data is a thin base. The AI never decides which parts are interchangeable. Your lead technician does.

Follow me on Instagram@sagnikteaches

What min, max and top-up mean for a van

A van is a small warehouse with a rule a shop does not have: when it runs out, a technician is standing in a customer's home without the part. Three numbers control that risk.

Connect on LinkedInSagnik Bhattacharya
  • Max is what a full shelf holds. Set it so the van still has stock in nine weeks out of ten before the next top-up.
  • Min is the on-hand quantity at or below which a part goes on the weekly top-up list. A sensible first rule is an average week's use, rounded up.
  • Top-up is Max minus what you counted, for every part at or below Min. It is never simply Max.

The weekly rhythm matters. Count on Friday afternoon, load on Monday morning, and the van has to cover a whole week of demand between loads. A fortnightly cycle would need bigger Max numbers for every line. If a supply house is a short drive away, you can run leaner on cheap fittings and hold more of the parts where running out costs a second visit.

Subscribe on YouTube@sagnikteaches

That second group is the one to protect. Capacitors, contactors, igniters and thermostats are small, common and cheap relative to a return trip. Compressors, control boards and large motors are the opposite: expensive, rare and better kept in the shop, loaded only against a booked job. If your firm also runs plumbing vans, the plumbing version of this method covers their parts, and the general reorder-point tutorial explains the theory behind the numbers.

The Complete Excel Course with AI Integration thumbnail

The Complete Excel Course with AI Integration

From formulas and pivot tables to Power Query, DAX, VBA and AI with Copilot, ChatGPT and Claude — hands-on from the first lesson.

By Sagnik Bhattacharya and Virginia Thorn, Primetime Emmy Award winner

Buy now

Pull the history: where parts data hides

You need four sources, and each answers a different question.

  1. Job or invoice line items from your field-service software export: what was used, on which job, on which van. This is the main input.
  2. Supplier statements and invoices: what you bought.
  3. Counter receipts from supply-house runs, photographed on the day.
  4. Van load sheets: what went onto each van on Monday.

The first gives you usage. The other three let you check for shrinkage later, because bought minus used minus counted should be close to zero. For the level-setting you need five columns: date, van, job type, part name as written, quantity. Remove customer names and addresses before the file goes near an AI assistant; they add nothing to a stock calculation.

Twelve weeks is the minimum, and the same weeks from last year are better because they capture the season. If job type was never recorded, an assistant can classify jobs from the free-text description (no cooling, tune-up, thermostat, drain, other), but spot-check twenty before you trust the rest. Job tickets also under-record small items. Nobody logs six wire connectors or a handful of screws, so for consumables used on almost every job, use a two-bin rule instead: when the first bin empties, it goes on the top-up list and the second bin takes over.

Clean the part names before any sums

Job tickets are typed by tired people in vans. One capacitor appears as "35/5 cap", "cap 35+5 440v" and "dual run 35/5 440", and a count by name sees three parts where there is one. Cleaning is where AI earns its keep, because matching messy text is exactly what it does well. It is also where the one serious mistake in this whole method happens, so the prompt carries a rule.

Below are 300 raw part names from our job tickets, one per line, each with the number of times it appears.
Group lines that are the same part. Return a table with: raw name, proposed clean name, confidence (high, medium or low).
Rules: never merge parts that differ in size, rating, voltage or connection. If two names might be the same part and you are not sure, mark them low and keep them separate. Do not invent part numbers.

Here is a slice of what a good answer looks like, with the decisions a person still has to make.

Raw entries on ticketsProposed clean nameConfidenceHuman decision
35/5 cap; cap 35+5 440v; dual run 35/5 440Dual-run capacitor 35/5 µF 440 VHighApprove
Cap 35/5 370vDual-run capacitor 35/5 µF 370 VHighKeep separate; lead technician writes the substitution rule
contactor 30a 2p; 2 pole contactor 30 ampContactor 2-pole 30 AHighApprove
float switch; cond switchCondensate float switchMediumApprove after checking one ticket
drain safety switchCondensate float switchLowReject the merge; it may be a different device

The 370 V and 440 V capacitors are the trap. An assistant will happily fold them into one line because the capacitance matches. A higher voltage rating can usually stand in for a lower one at the same capacitance, but never the reverse, so a van holding only 370 V units cannot cover a 440 V job. That substitution rule belongs to your lead technician, written on one page, and the stock list is built from it.

Review every medium and low row yourself. Spending an hour on a 300-line list is cheaper than discovering in August that a part you thought you stocked was three different parts.

Parts per job type: the forecast an average cannot give you

A plain weekly average assumes next week looks like the last twelve. The rest of the work depends on what is booked. If you know how many parts each type of job tends to use, the schedule becomes a forecast. Count, for each job type, how many jobs there were and how many of each part were used.

Job type (one van, 12 weeks)JobsCapacitors usedContactors usedFloat switches used
No cooling7831110
Tune-up120931
Condensate or drain240010
Other repairs38510

These figures are illustrative. From them, a no-cooling job uses 31 ÷ 78, about 0.40 capacitors; a tune-up uses 9 ÷ 120, about 0.08; and a drain job uses 10 ÷ 24, about 0.42 float switches. Now picture a week when the forecast shows hot weather and the schedule holds 14 no-cooling jobs, double the usual 6.5. The expected capacitor use is 14 × 0.40 = 5.6 from those jobs, plus about 0.75 from tune-ups and 0.4 from other repairs, so roughly 6.8 for the week. The historical 90th-percentile level of 5 would be gone around Thursday.

A reasonable rule of thumb for such weeks is expected demand plus a margin of one. Here that lifts the capacitor Max from 5 to 8 and the Min from 4 to 7 for the heat-wave weeks, and then back again when the weather turns. Writing the margin down matters more than its exact size. Adjust it after a month of seeing what actually ran short, and keep the seasonal levels in their own tab so you do not have to rebuild them each year.

The attach-rate table also tells you which jobs deserve a pre-loaded kit. The jobs that produce capacitors, contactors and the occasional fan motor are the same ones where a technician diagnoses on site and needs the part within the hour.

One van, six parts, twelve weeks

Here is the arithmetic on a single HVAC service van. The weekly counts below are illustrative, laid out as the CSV you would paste into a sheet.

Part,W1,W2,W3,W4,W5,W6,W7,W8,W9,W10,W11,W12
Dual-run capacitor 35/5 uF 440 V,3,4,2,5,4,3,6,4,3,5,4,2
Contactor 2-pole 30 A,1,2,1,0,2,1,3,1,2,1,1,0
Condenser fan motor 1/4 hp,0,1,0,1,0,0,1,0,1,0,0,1
Condensate float switch,1,0,2,1,1,0,2,1,0,1,1,1
Filter drier 3/8 in,1,2,1,1,0,2,1,1,2,1,1,0
Basic thermostat,1,0,1,1,0,1,1,0,1,1,0,1

For each row, three formulas do the work. They are the same in Excel and Google Sheets, assuming week 1 to 12 sit in columns B to M:

Average:  =AVERAGE(B2:M2)
Max:      =ROUNDUP(PERCENTILE.INC(B2:M2,0.9),0)
Min:      =ROUNDUP(AVERAGE(B2:M2),0)

If you would rather not write formulas, ask an assistant to write them for your layout, then test them on two rows by hand. The ChatGPT and Excel guide covers that habit in general. This gives the following.

PartAverage a weekHighest week90th percentileMaxMinCost eachValue at Max
Dual-run capacitor 35/5 µF 440 V3.7565.054$18$90
Contactor 2-pole 30 A1.2532.022$22$44
Condenser fan motor 1/4 hp0.4211.011$145$145
Condensate float switch0.9221.921$14$28
Filter drier 3/8 in1.0822.022$21$42
Basic thermostat0.6711.011$38$38

Read it line by line. The capacitor averages 3.75 but has a 6 in it, so Max 5 covers most weeks without stocking for the worst one. The contactor has Min equal to Max, which means it goes on the list the moment one is used. The fan motor is one unit worth $145 that was used five times in twelve weeks: Max 1 means replace it as soon as it is fitted, and no more. The six lines hold $387 at Max. A real van carries far more than six lines, so the same sum across the whole list is what tells you whether the van holds $2,000 or $6,000 of stock.

One honest limit: with only twelve data points, the 90th percentile is close to the second-highest week, so treat the result as a starting point. After a month, look at which lines actually ran short or sat untouched and nudge them. After a year the numbers are far steadier.

One firm, three vans, three sets of levels

Levels belong to a van, not to the firm. A service van that does five calls a day, an install van that is loaded for one job at a time and an electrical van that does mostly fault-finding and small installations need different shelves. A mixed heating, cooling and electrical firm might end up with this for a slice of its list (Max values, illustrative):

PartHVAC service vanHVAC install vanElectrical van
Dual-run capacitor 35/5 µF 440 V520
Contactor 2-pole 30 A210
Condenser fan motor 1/4 hp10, loaded against a booked job0
Condensate float switch220
Basic thermostat120
Breaker, 20 A single-pole103
GFCI receptacle, 20 A002
Hard-wired smoke alarm002
Fire-rated LED downlight006

The electrical van's numbers come from the same method on its own twelve weeks. The downlight is the interesting line: it averages about 3.25 a week but has a week of 8, so its 90th percentile is 6, nearly double the average. Any part bought in lumpy batches behaves like this, and a mean would leave that van short exactly when a big job lands.

The install van is different in kind. Its standing list is short, and most of what it carries is a job kit loaded the day before from the quote. The list of fittings and equipment per job type is the input, and counting fittings from drawings shows one way to build it. Give every van a value ceiling too. If the sum at Max exceeds it, trim the slow, expensive lines first, because cash sitting in a motor that sells twice a year is the least productive stock on the van.

The weekly top-up list, from counts to an order

The routine that makes levels real is boringly short. On Friday afternoon each technician counts the lines on a sheet that shows part, Min and Max but not the expected quantity, and sends it back by photo or form. On Monday morning the van is loaded from the list before the first job. The only thinking is in the rule, and a spreadsheet applies it:

Top-up quantity:  =IF(counted<=Min, Max-counted, 0)

An assistant can then format the result into an order grouped by supplier, which is the part nobody enjoys. Here is a prompt and what came back in an illustrative week for the service van, whose counts on Friday were: capacitor 4, contactor 2, fan motor 0, float switch 2, filter drier 1, thermostat 1.

Using the Min and Max levels and Friday's counts below, produce the top-up list for Van 1.
Rule: if counted is at or below Min, order Max minus counted. Otherwise order nothing.
Group the order by supplier. List the parts that need nothing, with the reason.

[paste the table with columns: part, supplier, Min, Max, counted]

The assistant returned an order for the fan motor (1) and the filter drier (1) and left out the capacitor. The capacitor count was 4 against a Min of 4, and the assistant had quietly read "at or below Min" as "below Min". That boundary slip is the most common error in AI-drafted top-up lists, and it matters here: a van that starts the week with 4 capacitors, when an average week uses nearly 4, has no spare for the first hot day. Check every line that sits exactly on its Min against the formula column before anything is sent to a supplier, and keep the spreadsheet column as the source of truth. The assistant is only the formatter.

Shrinkage checks that do not become accusations

Shrinkage is stock that left the van without being recorded against a job. It is rarely theft. More often it is a part fitted but not logged, moved to a colleague's van, dropped in a warranty bin or miscounted. The check is a reconciliation: what should be on the van, against what is.

PartLast countLoadedUsed on ticketsExpectedCountedVarianceValue
Dual-run capacitor53354-1$18
Contactor211220$0
Condenser fan motor10010-1$145
Float switch200220$0
Filter drier21121-1$21
Basic thermostat100110$0

Expected is last count plus loaded minus used on tickets. In this illustration three lines are short, worth $184 in all. A threshold stops you chasing pennies: investigate any variance worth more than $60, and any variance at all on a part whose Max is 1. By that rule the capacitor and the filter drier are noted and the fan motor is investigated.

Investigating means looking, not asking. Check the tickets for that week for a no-cooling job where the outdoor fan was the fault. Check the transfer sheet for a move to another van. Look in the returns bin. Recount, blind, with someone who has not seen the expected figure. Only after those checks does a conversation make sense, and it should start from the process: was it easy to log the part on the ticket, was the bin to hand?

An assistant can help look for patterns across a few months of reconciliation rows, with names removed. A realistic mistake shows why a person must read the output. Asked which van has the most shrinkage, an assistant answered "Van 1" because it logged 5 variance events in eight weeks against 3 for the electrical van. But Van 1 completed 172 jobs in that time and the electrical van 96. Per 100 jobs that is 5 ÷ 172 × 100, about 2.9, against 3 ÷ 96 × 100, about 3.1. The vans are the same; Van 1 is simply busier. Normalise by jobs before drawing any conclusion, and never present an AI pattern as evidence about a person.

How long the first pass takes

Plan on an afternoon for the first van. Roughly an hour to export the history and strip customer details, an hour for the name clean-up and review, an hour to build the sheet and the job-type counts, and half an hour to set levels and print the Friday count sheet. Those are estimates, not measurements, so time yours. The second van takes about half as long because the part names are already clean, and a firm with six vans should clean once and copy the sheet.

How to tell the new levels are working

Pick four numbers before the first top-up and look at them monthly:

  • Second visits caused by a missing part. Tag them on the ticket. The callbacks tutorial shows how to log the cause so the pattern is visible.
  • Supply-house runs per van per week. They should fall.
  • Dead stock: value of parts with no use in 26 weeks. It should fall too, if you trimmed Max on slow lines.
  • Time to count and load a van. If it creeps above half an hour, your list is too long or your bins are in the wrong order.

A quick sum puts a price on the first one. If a second visit costs 1.5 hours of technician time at a loaded $95 an hour and the new levels prevent four of them a month, that is 4 × 1.5 × $95 = $570 a month, before counting the customer who was annoyed. The $95 is illustrative; use your own loaded rate. Rebuild the levels at the start of each season, keeping the old tab, and rerun the name clean-up whenever you add a supplier or a new equipment brand, since that is when duplicate names creep back.

Mistakes that make tidy levels wrong

  1. Two stock lists. The sheet says 5 capacitors and the van software says 7. Choose one as the count and make the other follow it.
  2. Counting returns as use. A capacitor tested, found good and put back is not a sale. Log returns separately or Max drifts upwards.
  3. Mismatched units. Cable bought by the drum, issued by the metre and costed by the box. Pick one unit per line and convert on the sheet.
  4. Kits counted as parts. If a refrigerant-circuit repair uses a filter drier, flare nuts and a brazing rod each time, build the kit as a line, not three separate ones. Refrigerant itself belongs in its own log, not on this sheet.
  5. Forgetting the product change. When your main equipment brand changes, the part list changes with it. Review the lines whenever you win a new supplier or stop selling a model.

Dedicated van stock apps exist, and they are worth considering once the routine works on paper. Before paying for one, ask four questions: does it track stock per van rather than for the firm, can it import your cleaned part list, does it show expected against counted so shrinkage is visible, and can you export everything if you leave? A tool that cannot answer yes to the first and last should not hold your only record. If your counts are heavy, the phone-scanner stocktake tutorial covers a faster way to do the Friday count.

Further reads

Sources: no vendor data is quoted. All figures are illustrative, and the formulas are standard Excel and Google Sheets functions.

Want your van stock levels set from your own jobs?

On a 1:1 call we can look at what your job tickets and supplier statements record, decide what to clean first, and set up a weekly top-up routine your technicians will follow.

Book a 1:1 call with me