Termco
Termco

The Lowboy Ran Five Times

05 October 2026

The call comes on a Thursday. The sewer job on Marsh Road is waiting on a redesign of the lift station, three weeks minimum, and a 20-ton excavator can't sit in a closed trench line earning nothing while your other crew hand-digs around a gas main across town. So the lowboy goes out Friday morning, floats the machine home, and floats it back when the job wakes up in November.

Your driver did everything right. Permits pulled, machine chained in twenty minutes, home by lunch. The move cost you a morning of his time, a permit, thirty gallons of diesel, and wear on a trailer that costs more than some houses. What it didn't cost is a single piece of billing paper. Nothing printed, because nothing crossed a scale.

Your vendors already wrote it down

A machine move has one strange property, and it separates this leak from most of the others. Every move documents itself completely, in ink, on the cost side.

The oversize permit has the date and the route. The fuel card logged the tractor's fill. The driver's timecard carries four hours that payroll will pay to the minute. The toll transponder pinged twice. If a pilot car ran, its invoice shows up within the week, and vendors never forget to bill you. Your payables can already say how many times the lowboy moved last quarter, to the move, with dates.

Now ask the other side. How many mobilization lines went out on invoices last quarter? That number lives in your billing system too. Almost nobody has ever put the two numbers on the same page, and the gap between them is work you performed, documented, paid for, and gave away.

One ticket, one billable event. A float is a billable event by your own quote, which priced mobilization as a line. It just never gets a ticket, because the scale doesn't see it and dispatch doesn't bill.

Quoted as a pair, incurred as events

Look at how the move got priced. The quote says mobilization in and out, $450 each way. Two moves, bookends, written on the assumption that a machine arrives once, works, and leaves.

Jobs don't run like that. The redesign gap pulls the machine and brings it back: two extra floats. The customer's super asks you to shift the excavator to the north end because the paving crew needs the south entrance, and that's a dispatch event with a driver and a permit behind it. The classic is the dry run: lowboy shows up Monday at 7, the locates aren't marked or the shoring never arrived, and the machine rides home without unhooking. The truck moved twelve miles each way and moved nothing.

None of these are rare. A machine on a six-week job in a wet fall might float five times against the two the quote imagined. And the billing office, which never sees dispatch, invoices what the quote says: two lines, $900, arithmetic perfect.

The extra moves ride free for a predictable reason. Each one happens mid-job, when the relationship is live and the ask feels small. Billing a customer $450 in week three for a float his own schedule caused starts a conversation nobody volunteers for, so the default answer is silence, and silence compounds. Three quiet floats on one job is $1,350. A contractor running forty machine jobs a year, eating one extra move per job on average, hands back $18,000 at that $450 rate, in slices too small for any one invoice to look wrong.

flowchart TD
  A["Signed quote: 2 moves at $450"] --> C{"Who compares?"}
  B["Dispatch board: 5 floats actually ran"] --> C
  C -- "nobody, today" --> D["Invoice: 2 mobilization lines"]
  D --> E["3 moves ride free"]
  C -- "a rule, per float" --> F["Each float gets a reason: billable or yours"]
  F --> G["Customer-caused moves become invoice lines"]

Bill the dry run

Here's the claim your estimator will fight: a dry run bills at full rate, every time, including on handshake accounts. The site that wasn't ready consumed your truck, your driver, and your permit exactly as thoroughly as a real move. If you won't bill it, stop writing mobilization as a line on quotes at all, fold the average into your rates, and at least stop pretending the number is real.

The pushback deserves an answer. Not every float is the customer's fault. Pulling the excavator to your gas-main emergency was your call; the customer didn't juggle your fleet, you did, and billing him for it would be indefensible. True. That's exactly why the fix isn't a policy of billing every move. It's recording a reason on every move, the day it runs, so the floats sort into two piles: yours, eaten on purpose, and theirs, billed without apology. Right now both piles are one pile, it's labeled free, and the sorting never happens because by closeout nobody remembers why the machine came home in October.

Give the float a ticket

Dispatch already knows every move, machine, origin, destination, date. The whole fix is making that knowledge into a ticket: one short move record per float with a reason code on it, written by the dispatcher who ordered the truck, not reconstructed at closeout.

From there it's structure. Your equipment list and the move rate per machine class are reference data. How many moves each job's quote includes, and what a customer-caused re-mobilization or a dry run bills at, are billing rules. Move tickets get digitized with the rest of the day's paper, and a float with no reason code, or a customer-caused float no billable line stands behind, gets flagged as non-compliant that week, while the super still remembers the shoring that didn't show. Invoice totals assemble from what cleared: the quoted moves, plus every extra float a rule priced. That slice is what Termco builds: digitizing the tickets, flagging the ones that break a rule, structuring the billing rules, managing the reference data, assembling the totals. Which moves you eat stays entirely your call. You just make it per float, on paper, instead of once a year by default.

Two numbers, one afternoon

The test costs you nothing you don't already have. Pull one quarter of lowboy driver hours, fuel entries, and permits, and count the floats they prove. Then pull the same quarter's invoices and count the mobilization lines. Subtract, multiply by your own move rate, and remember the number was documented all along, by your vendors, on the side of the ledger that never forgets.

If you'd rather have a second reader on it, send 10-20 sample tickets to hi@termco.ai, move records and the quotes behind them especially, and we'll send back what we find within 48 hours.