Termco
Termco

The Hose Was Free, the Labor Wasn't

05 September 2026

A mobile tech rolls up to a customer's loader at 7:40 with a blown hydraulic line. He crimps a new hose on the truck's bench, pulls two JIC fittings and a handful of O-rings from the side box, tops off the reservoir with four gallons from the drum, and has the machine digging by 9:15. The field ticket he hands the site foreman says 2.0 hours, travel included. The foreman signs it. Everyone did their job.

Read that ticket the way your billing office will. Two hours of labor at $135 is $270, and that's the invoice. The hose was $60 of bulk stock plus $38 in fittings. The hydraulic oil was another $52. Call it $150 of material that left your truck and went into the customer's machine, witnessed by the customer's own foreman, and none of it exists on paper. The labor billed because the tech had to account for his morning somewhere. The parts rode free because nothing forced them onto the page.

That's the asymmetry worth staring at. Time gets captured because time has a natural auditor: eight hours have to land somewhere, and a tech whose tickets add up to five raises a question by lunch. Parts have no such gravity. A fitting pulled from a bin on a truck was paid for weeks ago, on a supplier invoice, as inventory. Nobody misses it at the moment it's consumed, and by restock day it's just a bin that needs filling.

The work order that can't be true

Here's a test you can run on last month's paper without leaving your desk. Pull the field tickets that billed labor against hydraulic or brake repairs and count how many carry zero parts lines. A hose replacement with no hose on it. Three hours of "repaired wiring harness" with not one connector, not a foot of loom.

Some of those tickets are honest, because some jobs really are all labor: an adjustment, or a morning spent diagnosing. Most aren't. You can't replace a hydraulic line without a hydraulic line. A ticket that bills the labor of installation and no thing installed is describing a repair that's physically impossible, and it sails through billing because the office prices what's written, and what's written adds up fine. The customer certainly won't call. Their foreman signed for two hours and got a working loader and $150 of free material. He may not know it either.

The tickets that do carry parts leak a second way: the price. Truck stock gets bought in bulk, so the tech who does write the hose down has to price it, from memory, at the tailgate, off a cost he half remembers from a supplier invoice he never saw. Bulk hose that costs you $4.10 a foot has a book rate of $9 and gets written at "$5, call it" all season. Every one of those is a miskeyed ticket in everything but name, and it's keyed by the least equipped person in the company, standing in mud.

flowchart TD
  A["Part comes out of the side box"] --> B{"Written on the field ticket?"}
  B -- no --> C["Consumed, restocked as overhead"]
  C --> D["Invoice: $270 labor plus a 4% supplies line"]
  D --> E["$150 of material recovered at $10.80"]
  B -- yes --> F{"Priced from the book or from memory?"}
  F -- "memory at the tailgate" --> G["Real part, wrong price, keyed as written"]
  F -- "book rate" --> H["$150 of material bills at $150"]

The shop supplies line makes it worse

Most operations that notice this leak reach for the same patch: a flat percentage. Add 4% "shop supplies and consumables" to every invoice and stop worrying about O-rings.

Here's the claim your service manager will argue with: that line doesn't stop the leak, it licenses it. The percentage was sized to cover rags and zip ties, and the moment it exists, it becomes the reason nothing small gets written down, and "small" grows. First the O-rings go in the 4%, then the fittings, then the four gallons of oil, then the $60 hose, because the tech has internalized that consumables are handled. On a $270 labor ticket, 4% recovers $10.80 against $150 of material. The math never gets checked, because the whole point of the line was to stop checking. Meanwhile your heaviest material jobs, the ones the percentage most underprices, are subsidized by your lightest ones, and your best customers quietly overpay while your hardest ones underpay. A flat percentage is a rate nobody negotiated applied to a quantity nobody measured.

The defense is that writing down every fitting costs tech time, and tech time is the product. True, and it's ten minutes a day against mornings like the one that gave away $150. Nobody accepts that trade on purpose. It gets accepted by default, one unwritten fitting at a time.

The side box needs a price list

The fix starts with a decision about what a service truck is. A truck that moves a couple thousand dollars of material a month with no cash register is a store, whatever it says on the door, and it needs the two things any store needs: a list of what it carries and a price for each item.

That list is reference data. Truck stock, part numbers, book prices, effective dates, one owner in the office. The tech's job shrinks from pricing to picking: hose, two fittings, four gallons, done. Billing rules do the arithmetic, cost times markup, minimums where minimums apply, so the price on the invoice stops depending on what anyone remembered in the mud. Digitize the field tickets at turn-in, while the tech can still say which bin the fittings came from, and the impossible documents surface on their own: a ticket whose labor says hydraulic repair and whose parts say nothing gets flagged the same day, not discovered in an inventory shrink number eight months later. Invoice totals get assembled from lines that survived that check, labor and material both. That's the lane Termco works in: capture the tickets, flag the ones that don't reconcile, keep the truck stock list as managed reference data, price by rule, and build totals from nothing else.

Your inventory already knows the answer, by the way. Whatever left the parts room onto trucks last quarter, minus what trucks still hold, is what got consumed. Set that number against the parts you actually invoiced from field tickets in the same stretch. The gap is material your customers received and never paid for. Most owners who run that subtraction once don't need convincing twice.

If you'd rather start from the paper, send 10-20 sample tickets to hi@termco.ai, field tickets with a parts section if you have them, and we'll send back what we find within 48 hours.