Wrong Rock, Right Weight
23 September 2026
Your rate sheet knows the difference between washed stone and crusher run. Call it $6.50 a ton. The question is whether your tickets do.
Here's the morning that decides it. A utility contractor's tandems are cycling on 3/4 minus base for trench backfill, and around 9:40 the bunker runs dry. The crusher won't catch up before noon. The loader operator radios the scale house and takes the #57 washed off the north pile instead, because it'll do the job in a trench, because the crew needs ground closed by dark, and because stopping a customer's trucks over which rock feels like a good way to lose the customer. He's probably right on all three counts.
The ticket doesn't hear the radio. It was keyed from the order: 3/4 minus base, $13 a ton. The truck crosses the scale at 24.1 tons, the weight is perfect, the customer is right, the gate lifts. You just sold $19.50 rock at $13, and every record you own agrees it never happened.
The field nobody measures
Walk down a scale ticket and ask where each line comes from.
The gross weight is measured, today, by a certified instrument. The tare came off the truck file. The customer will read their own name on the invoice and call if it's wrong. The tons get checked by anyone with a calculator.
The product field comes from a phone call. It's keyed from what was ordered, by a scale operator who sits behind glass forty feet from the loadout and can't tell washed stone from base in a truck bed at that distance, even supposing she could see the bed at all. The one person who knows what actually went over the tailgate is the loader operator, and he never sees the ticket. The person who prints the ticket never sees the rock. Between those two facts lives every substitution your operation has ever made.
That's what makes the product field different from every other error on this site. A missing ticket leaves a gap in the serial run. A duplicate collides with its twin. A miskeyed customer eventually gets an invoice and objects. A substituted product produces a ticket that is internally perfect: real weight, real truck, real customer, plausible price. There's no second record for it to disagree with, so no reconciliation will ever surface it. The leak is sealed at the moment of capture.
Upgrades leak silently, downgrades come back loud
Substitution runs in both directions, and the two directions get treated very differently.
Send material out below what the ticket claims and you'll hear about it. The DOT job pulls a sample, the testing lab fails the gradation, the load gets rejected, and you eat a haul-back plus a credit memo plus a conversation with an inspector. Painful, visible, and self-correcting, because the customer has an instrument pointed at your product.
Send material out above what the ticket claims and nothing happens. Nobody's lab flags rock for being too clean. No foreman calls to say the backfill went in nicer than he paid for. The upgrade is invisible to everyone except the loader who made it, and by 4:30 he's made forty more decisions and remembers none of them. So the downgrades get policed by your customers, and the upgrades are policed by nobody, and over a season your yard quietly gives away its spread in one direction only.
Rough arithmetic, yours to redo with real rates. Say the substitution happens on 6% of loads at an operation running 55 loads a day, and the average spread between what loaded and what billed is $4 a ton on a 23-ton load. That's three or four loads a day at roughly $92 each, call it $320. Across a 200-day season you're near $64,000, and not one invoice in the stack looks wrong.
flowchart TD A["Order: 3/4 minus base at $13"] --> B["Ticket keyed from the order"] C["Bunker runs empty"] --> D["Radio call: load the washed instead"] D --> E["Bed carries $19.50 rock"] B --> F["Invoice line: 24.1 tons at $13"] E -. "never reaches the ticket" .-> F
Ticket the bed, not the order
Here's a position plenty of owners will argue with: every substitution should change the ticket, even when you intend to honor the ordered price. If the washed goes in the bed, the ticket says washed, and what the customer pays for it is a separate decision.
The pushback is immediate. The loader isn't a clerk. The line is four trucks deep. A ticket that names a different product than the order confuses the customer's job clerk into rejecting it, and no driver wants to carry paper that contradicts his own purchase order. All real. But look at what the current habit actually is: a pricing decision worth ninety-odd dollars, made on the radio, by whoever is on the loader, recorded nowhere. You'd fire a salesman for discounting like that. The yard does it before lunch and calls it keeping the trucks moving.
There's a reason the ticket never gets changed, and it isn't laziness. Keying the true product at the window forces a pricing question the scale operator can't answer. Does the substitute bill at its own rate? The ordered rate? Whose call is that? Easier to leave the ticket alone, so everyone does.
That's the part structure fixes. Your products and their rates are reference data. The decision of what a substituted load costs is a billing rule you write once: bill the loaded product at the ordered price on jobs you name, or bill the spread, or split it. Once the rule exists, keying the truth costs the scale operator nothing, because the pricing question already has an answer.
Tickets get digitized as they're captured, and a ticket carrying a product that isn't on that job's approved list gets flagged as non-compliant the same day, while the loader still remembers the radio call, instead of billing on faith. Invoice totals assemble only from tickets that cleared. That machinery is the part Termco builds: digitizing, flagging, rules, reference data, totals. What loads the bucket, and what an upgrade costs your customer, stays entirely your call. The point is that it becomes a call, made once, on paper, instead of forty times a week at the loadout.
The upgrade doesn't even have to cost the customer anything. Ticketed at the ordered price, it turns into something you can say out loud: we covered your spec with better rock and didn't charge the spread. That sentence is worth money at renewal. An unticketed upgrade buys you nothing with anyone, because nobody knows it happened, including you.
Count it against the piles
You can size your own substitution rate without watching a single load, because the yard keeps score even when the tickets don't. Pick one quarter. Pull tons produced by product from the plant, and tons sold by product from the invoices. A yard that sold 4,000 more tons of base than it made, while the washed pile shrank faster than its sales explain, isn't hiding a surveying error. The crossover between those columns, priced at each product's spread, is what the radio decided last quarter.
If you'd rather have a second reader on the stack, send 10-20 sample tickets to hi@termco.ai, especially loads from days a bunker ran empty, and we'll send back what we find within 48 hours.
More from the Termco blog.
September 24, 2026
The Zone That Rides the Account
Delivered pricing runs on a zone somebody keyed at account setup. Every job since inherits it, and the gap between keyed miles and road miles never bills.
Read postSeptember 22, 2026
The Pile With Your Customer's Name on It
A dedicated stockpile on pay-on-removal terms turns crushed tons into a loan. The tons that never haul out never print a ticket, so they never bill.
Read postSeptember 21, 2026
The Footnote Nobody Keys
Minimum charges and small load fees live in your rate sheet's footnotes. A footnote is a billing rule with a condition, and keying drops conditions first.
Read post