Termco
Termco

The Load That Arrives Full

19 September 2026

Tuesday, 1:40 in the afternoon. A demolition contractor's tri-axle pulls through your gate loaded with broken concrete, and the driver leans out: where do you want it? The loader operator points at the recycle pile. The truck dumps, swings around, and leaves empty. Total paperwork generated: none.

An hour earlier, the same movement ran in reverse. Empty truck in, loaded truck out, and it produced a serial-numbered ticket carrying two weights, a product, a customer, and a rate. Same gate, same scale, same forty seconds. The only difference is which way the truck was pointed, and that difference decided whether the event exists on paper.

One ticket, one billable event. The principle has no clause about direction. Any load that crosses your scale and changes who owes whom is a billable event, and at most sites, the ones pointed inward almost never print.

The in gate earns more than it tickets

Count the inbound money at an ordinary aggregates or construction materials operation. Tipping fees on clean fill, and on broken concrete you charge to accept and then crush and sell again, so that pile pays you twice: once coming in, once going out. A contractor's spoil you agreed to take at fifty a load, on this job, said in a phone call. And in hauling, the backhaul: a dispatcher fills an empty return leg with a paving crew's millings, and the revenue for that leg lives in a text thread between two dispatchers who both consider the matter handled.

Each of those is a real event with real money attached. None of them arrives through a workflow built to see it.

The scale window is a sales counter. Its screen has fields for customer, product, gross out, and rate, and an inbound truck breaks every one of them. The material isn't on the rate sheet. The driver doesn't have an account. There's no product code for what is, from the software's point of view, negative rock. So the gate improvises. Wave it in free, because you want the fill. Take two twenties and leave them in the drawer with a note. Say "I'll tell the office," which becomes a sticky note, which becomes nothing. Every one of those improvisations is a pricing decision, made truck by truck, by whoever happens to be on the loader that hour. You have a tipping rate the way you have a weather forecast: someone said a number once.

The leak that looks like a gift

An unticketed outbound load at least leaves a shadow. The pile shrank, the survey will eventually disagree with the sales figures, a driver remembers a load nobody can find. An unticketed inbound load leaves the opposite of a shadow. The pile grew. Material showed up free. The yard looks better, not worse, and that's why this leak outlives every other one on your site: the evidence of it reads as good news.

Here's the claim to argue with: ticket every inbound load, including the ones you charge nothing for. Most owners push back hard, because free fill is free crushable inventory, and taxing a guy who's donating material feels like a way to stop the donations. But the ticket is the point, not the fee. Set the fee to zero on purpose, for named accounts, as a decision. A load with no ticket is a load with no custody. Nobody knows who brought the slab with the asphalt skin on it, or the pour with the rebar still in it, and the crusher finds the rebar either way. You end up paying for that free load in picking time and downtime, with no name attached to send the bill to.

Put rough numbers on the billed side, yours to swap for real ones. In demo season a busy yard takes 12 inbound loads a day, and the posted tip fee, where anyone posted one, is $60 for clean concrete. If a ticket only happens when the office happens to see the truck, call it seven of twelve, the other five run $300 a day. That's $1,500 a week, and a 20-week season quietly buries $30,000 in a pile you were proud of.

flowchart TD
  A["Truck at the scale"] --> B{"Which way is it pointed?"}
  B -- "outbound: loaded with product" --> C["Ticket prints: serial, weights, customer, rate"]
  B -- "inbound, today" --> E["Waved in, cash in the drawer, or a sticky note"]
  E --> F["Pile grows, no line anywhere"]
  B -- "inbound, with a rule behind it" --> G["Ticket prints, priced by the tipping rule"]
  C --> D["Invoice line at month end"]
  G --> D

Both directions, one machinery

The fix is to stop treating inbound as a favor economy and give it the same paper as the out gate.

Inbound materials are reference data: clean fill, broken concrete, asphalt millings, washout, each with a rate and terms, including a zero rate for the accounts you're courting. The event tickets like any other event: a serial, both weights (heavy in, light out; the scale doesn't care which order), who brought it, what it claims to be. The tip fee is a billing rule, so the load prices from structure instead of from whoever's driving the loader. A load keyed to a material no rule recognizes, or a hauler with no account behind it, gets flagged as non-compliant. The truck's still local, and the fix is a phone call. At month end, the demo contractor's tipping lines and his base lines assemble into one invoice total, both directions of the same relationship.

Your scale prints the ticket; Termco takes it from there: digitizing the tickets, flagging the ones that don't reconcile, structuring the rules, managing the reference data, assembling the totals. Who gets to dump free stays entirely your call. It just becomes a call you made once, on paper, instead of forty times a week at the gate.

You can size your own in-gate gap without leaving the office, because the recycle pile keeps honest books on one side only. Pull the tons of recycled base you sold out of that pile in the last year; your outbound invoices know that number to the ton. Then pull whatever inbound tipping lines exist for the same stretch. Tons out require tons in. Piles carry over and the match is never exact, but a pile that sold 9,000 tons against 40 inbound tickets is not being fed by rain, and the difference, priced at your own posted fee, is what the open gate cost.

If you'd rather have a second reader on it, send 10-20 sample tickets to hi@termco.ai, inbound and tipping tickets included if you have them, and we'll send back what we find within 48 hours.