(443) 600-8990Get a free consultation
  1. Home
  2. Blog
  3. Plumbing
Plumbing

Why truck stock is wrecking your plumbing job margins

Buying fittings and water heater parts in bulk makes restock months look terrible and hides what jobs really cost. Here's how to count and track truck stock correctly.

Why truck stock is wrecking your plumbing job margins

October 14, 2026 · Mitt Patel · 6 min read

You just dropped $2,400 at the supply house restocking three trucks with fittings, valves, and a couple of water heater parts. Your bookkeeping now shows a brutal month, even though you actually did fine on jobs. Next month, you barely buy anything, and the books say you had a great month. Neither one is true.

Why this happens

Most plumbing businesses expense parts the moment they're bought. The invoice hits the books, the cost shows up that month, and that's that. It's simple, and for a long time it feels fine.

The problem shows up in two places.

First, your monthly numbers swing wildly based on when you happen to restock, not based on how the business is actually doing. A $2,400 supply run can make a profitable month look like a loss. Skip buying for six weeks and the next month looks like a windfall. Neither reflects reality.

Second, and more importantly, your job costing is wrong. If you expense $2,400 in parts the day you buy them, but those parts sit on the truck and get used across the next ten jobs over the next two months, none of those ten jobs show the real cost of the parts that went into them. You can't tell if a job made money or lost money, because the parts cost already got dumped into a different month entirely.

Owners who run their business off these numbers end up making bad calls. They might think a certain type of job is more profitable than it is, because the parts cost never got attached to it. They might panic in a slow-buying month thinking business is booming, or panic in a big restock month thinking they're losing money, when neither is true.

A worked example

Say you restock your trucks on the first of the month. You spend $2,400 on fittings, valves, and two water heater thermocouples. If you expense all of it immediately, your books show $2,400 in parts costs for that month, no matter what jobs you ran.

Now say that stock actually gets used over the next two months. In month one, your techs use $900 worth of parts across eight jobs. In month two, they use $1,100 worth of parts across ten jobs. That leaves $400 worth of parts still sitting on the trucks at the end of month two.

If you're tracking this correctly, month one shows $900 in parts cost, tied to the jobs that used them. Month two shows $1,100, also tied to its jobs. The $400 still on the trucks isn't an expense yet. It's inventory, sitting there as an asset, waiting to be used.

Compare that to the old way: month one shows $2,400 in cost with nothing to show for it, and month two shows $0, even though your techs did real work with real parts. Neither month tells you anything useful about what the jobs actually cost.

How to set it up

  1. Pick a truck stock list. Decide what counts as stock, meaning the fittings, valves, thermocouples, and similar small parts you keep on hand for routine jobs. Big-ticket items bought for a specific job, like a full water heater for a scheduled install, usually get charged straight to that job instead.
  1. Set up an inventory account. In QuickBooks Online, this means turning on inventory tracking and creating an account that holds the value of parts sitting on the trucks, separate from your regular expense accounts. When you buy stock, the cost goes here first, not straight to an expense line.
  1. Build a simple usage system. Techs need an easy way to log what parts they pulled for each job. This doesn't have to be complicated. A short list on the job ticket, a note in your field service app, or even a standard checklist of common parts works, as long as it gets back to whoever does your books.
  1. Charge parts to jobs as they're used. Each time parts come off the truck for a job, that cost moves out of the inventory account and into the cost for that specific job. This is the step that makes job costing more meaningful.
  1. Count the trucks on a schedule. Once a month, or once a quarter if your volume is low, do an actual count of what's left on each truck. Compare it to what your books say should be there. Adjust for breakage, loss, or parts that walked off without getting logged.
  1. Reconcile the difference. If the count comes up short compared to the books, that's usually a cost to recognize as a general supply expense or shrinkage, not tied to any one job. If it's a small, consistent gap, it's usually not worth chasing down to the penny. A bigger or growing gap is worth a conversation.

The mistakes that undo it

The most common failure is skipping the count. Once you stop counting truck stock on schedule, your inventory number drifts further from reality every month, and eventually it's so far off that nobody trusts it.

Another common one: techs don't log what they use. If parts leave the truck but nobody writes it down, the job never gets charged for them, and the inventory account never gets credited. The parts just vanish from the books without a trace, which throws off both your job margins and your count.

Some owners try to track every single fitting and washer at a granular level. That's usually too much overhead for a small shop. It's often more practical to track stock in dollar categories or common kits, not every individual part, unless your volume genuinely justifies the detail.

Last one: treating a big-ticket item, like a whole water heater bought for a specific install, as truck stock when it's really a job cost that should go straight to that job's expenses.

Monthly checklist

  • Confirm every supply house purchase this month got coded to the inventory account, not straight to expense.
  • Check that techs logged parts used on each job, especially bigger jobs.
  • Do the physical count on your trucks (or confirm it got done if someone else handles it).
  • Compare the count to what the books show, and note any gap.
  • Adjust the inventory account for the actual count.
  • Review a few job costs to confirm parts charges look reasonable for the work done.

Common questions

Do I need to track every single fitting and washer?

Usually not. Most shops do fine tracking stock in broad categories or standard kit values, rather than itemizing every part. The right level of detail depends on your volume and how much time you have for this. A high-volume shop with expensive specialty parts might need more detail than a two-truck operation mostly doing repairs.

What about parts I buy for one specific job, like a water heater install?

Those usually go straight to that job's cost, not into general truck stock inventory. The distinction is whether the part was bought for a specific job or pulled from general stock kept on the truck for whatever comes up.

How often should I actually count the trucks?

Monthly works well for most shops, especially if truck stock value is significant. If your stock value is small or your volume is low, quarterly might be enough. The key is picking a schedule and sticking to it, so the books don't drift too far from reality.

What if the count doesn't match the books?

Small, consistent gaps are normal and usually just reflect breakage or minor untracked use. Bigger or growing gaps are worth looking into, since they often point to a logging problem rather than a one-time issue.

Setting up truck stock as real inventory, with a counting schedule and parts charged to jobs as they're used, takes some setup work up front. North Hudson Bookkeeping can help with that setup and keep it current month to month, so your numbers better reflect what's actually happening on your jobs. The first call is free.

Want this handled for you?

Monthly bookkeeping from $500 a month: every account reconciled, clear reports and a short summary each month. Book a free 20-minute call or call (443) 600-8990.

Get a free consultation

Talk to MittCall or text (443) 600-8990 · or book a free consultation
Free consultationFree callCallTextWritten quoteQuote