Termco
Termco

Paid at the Window, Billed to Nobody

02 September 2026

Saturday morning at the pit, a guy in a dually with a dump trailer wants three tons of 3/4 minus for his driveway. He's third in a line of six. The operator weighs him, says "call it eighty," takes four twenties, and waves him through. The board by the window says $28 a ton, which would make it $84. The list in the office went to $31 in March, which makes it $93. Nobody standing in that transaction knows all three numbers at once, and the customer is already gone.

Every account load crossing that same scale gets more scrutiny than this one did. An account ticket becomes an invoice line, and the invoice gets read twice: once by your billing office when it's assembled, and once by the customer's AP department, which is paid to argue with it. The cash sale gets read zero times. There's no statement to mail and no AP clerk on the other end. The moment the twenties hit the drawer, the transaction is over, and everyone's instinct says it went fine.

Paid isn't the same as billed. Billed means a record exists that somebody could check later. The cash lane produces revenue with no downstream reader, and paper nobody reads drifts.

The drawer counts clean all three times

The cash lane doesn't leak in one place. It leaks in three, and none of the three leaves a shortage behind.

The pocket sale. The scale line is six deep, so when a regular pulls in for a half-yard of topsoil, the loader operator takes his $40 out in the yard and means to drop it at the window after the rush. No ticket, and no drawer entry either. The sale now exists in exactly one place: a vest pocket. If the twenties surface Wednesday, somebody writes a catch-up ticket from memory, no weight, guessed material. If they surface in the wash, they don't. Either way the office never had anything to miss.

The memory price. The operator at the window prices walk-ups from his hands all day long, and his hands learned $28 before March. Every one of those tickets is real, keyed, and $3 a ton light, and the drawer agrees with every one of them. Run 30 cash tons a day through a stale window price and that's $90 a day, about $2,300 across a 26-day selling month, collected in full and short by design.

The flat quote. "Call it eighty" is a rate nobody negotiated, applied to a load that was weighed once and priced by feel. Round numbers round down, because the person quoting is looking a customer in the eye and the person who set the list isn't there. The guy in the dually paid $80 for $93 of rock, and both sides drove away satisfied.

None of this shows up when the drawer gets counted against the tickets, which is the only cash control most operations run. The pocket sale is missing from both sides of the count. The light tickets match their cash exactly. The count answers one question, did the money we ticketed arrive, and it answers it honestly. It never asks whether everything that left got ticketed, or whether the price on the ticket was anyone's actual price.

Small lane, big share

Here's a claim to test against your own books: the cash lane gives up a larger share of its revenue than your charge accounts do, and it's the one lane where you never wait to get paid. That sounds backwards to most owners, because cash is the lane with no aging report and no collections calls. But leakage follows scrutiny. Account paper has two paid readers and cash paper has none, so the errors that account customers catch for you on Tuesday run uncorrected in the cash lane all season.

The lane is rarely as small as it feels, either. Say your yard runs 200 walk-ups a month once the season's on, at an $85 average. That's $17,000 a month moving through the loosest process in the building.

flowchart TD
  A["Walk-up load at the scale"] --> B{"Ticket written before the truck rolls?"}
  B -- no --> C["Sale lives in a vest pocket"]
  C --> D["Catch-up ticket from memory, or nothing"]
  B -- yes --> E{"Priced from the current list?"}
  E -- "memory or flat quote" --> F["Real ticket, light by design, drawer agrees"]
  E -- yes --> G["Ticket matches list, cash, and sequence"]

Give the window the same spine as the accounts

Telling the scale operator to be more careful won't hold. Saturday is Saturday, and the line is real. What has to change is that the window currently improvises two things, the price and the record, and neither one belongs to the operator.

The price stops being memory when the walk-up list lives as reference data with effective dates, the same way an account rate does. One list, one owner. When 3/4 minus goes to $31 in March, the window prices from the list because the list is what the ticket reads, not what anyone's hands remember. A cash ticket carrying an off-list price becomes a catchable event instead of a habit: it fails a check, the same way an account ticket wearing last year's rate would.

The record stops being optional when cash tickets get captured the same day they're written and counted the same way account tickets are. Once the tickets are digitized, the serial sequence is visible, and a hole in Saturday's numbers is a question with a name on it, asked Monday, while the loader operator still remembers the yard. Termco's role in this is deliberately narrow: digitize the cash tickets along with everything else, flag the ones that don't hold up against the price list or break the serial sequence, and keep the walk-up list as managed reference data instead of paint on a board.

One afternoon tells you whether this is your leak. Pull ninety days of cash tickets and set them against the price list that was supposed to be in force, then count how many land on an even ten. Then find your busiest Saturday in the stack and see how many tickets the busiest hour produced. If the line was long and the tickets are few, you already know where the difference went.

If you'd rather have a second set of eyes, send 10-20 sample tickets to hi@termco.ai, cash tickets included, and we'll send back what we find within 48 hours.