A Slow October at Full Price
06 November 2026
The October invoice for your ready-mix customer went out on the 3rd, and it's a clean piece of work. 2,912 tons of concrete sand at $14.50, every load ticketed, every ticket keyed, the serial check tied out. Not a line on it he could question.
The supply agreement in the folder reads differently. You both signed it last winter: he commits to 4,000 tons a month through November, you hold $14.50 while the market does whatever it does, and tons he doesn't take, he pays for anyway. That's the take-or-pay clause, page two, his signature an inch below it. October came in 1,088 tons under the floor. At $14.50 that's a $15,776 invoice line, as contractual as any load you hauled, and it isn't on the invoice. It isn't anywhere. Nobody computed it, because nothing arrived at the keying desk to make anybody try.
Every line you bill starts as paper arriving
Watch how a billable event normally reaches an invoice. A truck crosses the scale, a ticket gets written, the ticket rides to the office, somebody keys it, a rate prices it, a line prints. Every control you own is built on that chain. The numbered books exist so no ticket vanishes quietly. The serial check exists to prove the chain held. Even the keying backlog you grumble about is evidence of the same rule: paper arrives, then money moves.
A shortfall is a billable event made out of absence. It's defined by subtraction, what the contract promised minus what the tickets show, and there is no ticket to write, no ticket to lose, nothing for the serial check to catch. A lost ticket at least existed. Somebody wrote it, somebody signed it, and your controls have a fighting chance of noticing the hole it left in the sequence. The shortfall never existed as paper at all. You can't key an absence.
That changes the leak rate. A lost ticket is the odd one that never climbed out of a doorpocket, and most of its brothers made it home. A contract line that no paper triggers leaks at one hundred percent, every month it occurs, in every office where nobody is assigned to do the subtraction. Which is most offices, because the floor lives on page two of a PDF in a drawer, and the month's true tonnage doesn't exist until the tray gets keyed, and by then the invoice already left.
You already paid for that floor
That clause cost you something. You held $14.50 through a spring when spot prices moved. You kept the washed sand pile built and the plant time reserved for his trucks, which means some weeks you told somebody else no. He wasn't buying sand with that signature. He was buying an option on your capacity, and the shortfall payment is the option's price in the months he doesn't exercise it.
Trucking runs the same clause at a smaller scale. The rate confirmation says six trucks, 7 a.m., $110 an hour, four-hour minimum per truck ordered. The GC releases two of them at 9:40 because the excavator broke down. Those two trucks produced zero tickets, so the office bills zero, and the $880 the confirmation promises them rides home as nothing but two annoyed drivers. Same shape: the paper machine bills what ran, and the contract priced what was reserved.
Here's the part worth arguing about at your next sales lunch: a shortfall should never be settled by silence. Bill it, or waive it in writing, but decide. The objection is immediate, and it's not stupid. Invoice your best customer $15,776 for sand he never hauled off, and he's taking bids from the pit across the county by Christmas. Often waiving is the right commercial call. His slow October is a housing market, not a betrayal, and he'll run past the floor again by April.
But notice that the office making that argument never saw the number. It didn't waive $15,776. It failed to notice $15,776, and those are different acts with different futures. A written waiver costs three sentences: October came in 1,088 tons under the floor, we're not invoicing the shortfall, see you in the spring. It keeps the clause alive, reminds him the floor is real, and files itself in the renewal folder. When the agreement renegotiates next winter and he pushes on price, the floor you enforced gently is a fact you can bill against. The floor you never once mentioned is a rumor, and the price protection you sold against it turns out to have been sold for nothing.
The months he runs over the floor need none of this, by the way. Every extra ton tickets itself and bills itself. The agreement is symmetric. Your paperwork only sees one direction.
One page, two columns, before the invoices leave
The manual fix is almost embarrassing. One page: every agreement that contains a floor, with the committed number and the month's actual beside it. Somebody reads it before the invoice run, and every gap gets a decision with initials on it, billed or waived.
flowchart TD
A["Supply agreement: 4,000 ton monthly floor"] --> E{"Who compares tickets to the floor?"}
B["October tickets: 2,912 tons"] --> C["Invoice assembles from tickets"]
B --> E
C --> D["2,912 tons billed, every line right"]
E -- "nobody" --> F["1,088 ton shortfall never bills"]
E -- "month-end check" --> G["Billed, or waived in writing"]
The catch is the actual column. The comparison has to run in the first days of November, and an office that keys its tickets at month end doesn't know October's true tonnage until the middle of the month, two weeks after the invoices left. That timing gap is the part Termco closes. Tickets get digitized the day they're written, as your people already write them, priced against your billing rules, with the broken ones flagged instead of buried, so the month's total exists while the month is still warm. You keep the floor and the committed price in reference data next to the rates, instead of on page two of a PDF. Nothing changes at the scale or in the trucks: same books, same pens, no app. The clause was always an office problem. The office just never had both numbers on the same day.
Read page two tonight
Pull every supply agreement, haul contract, and rate confirmation currently in force and read them once, looking only for the words your keying desk will never see: minimum, floor, take or pay, per truck ordered, standby. List what you find. Then take this year's two slowest months and set each floor against what actually invoiced. Price the gaps. Some you'd have waived anyway, so waive them now, on purpose, in writing, and bill the ones you wouldn't have. If you'd like outside eyes on whether your tickets could feed that comparison, send 10-20 sample tickets to hi@termco.ai and findings come back within 48 hours.
The October invoice told the truth about every load that ran, and that's all an invoice built from tickets can ever do. What the month was supposed to be worth is written in a different document, the one with his signature on it. Your tickets answer for what ran. Page two answers for what was promised. Read both.
More from the Termco blog.
November 05, 2026
The PO Ran Out Before the Job Did
A purchase order is a spending cap enforced by your customer's software. Nobody in your office watches the balance run down until an invoice bounces.
Read postNovember 03, 2026
The Red Asterisk
A required field can't record what happened. It can only refuse what doesn't fit, so your people typed something that did. Those numbers are still in there.
Read postNovember 02, 2026
His Keys, His Fuel Card, His Tickets
Exit day collects the keys and the fuel card. Nobody collects the paper, and a departing driver's last loads are the easiest ones you will ever lose.
Read post