Same Ticket, Two Totals
06 September 2026
Here's an experiment you can run Monday morning. Photocopy one haul ticket, a real one with some hair on it, and hand a copy each to two people who key billing. Ask them to price it separately. Ticket 20871, say: 2.6 tons of cold patch, delivered 4.8 miles out, driver noted 40 minutes at the site waiting on a paver.
The senior clerk keys it at $214. The newer one keys it at $241. Neither is careless. Walk through their math and every step is defensible: each applied a minimum, a zone, a surcharge, and a wait-time charge, and each can tell you why. They just didn't apply the same ones. Same ticket, same customer, same day, and the invoice depends on which desk the paper landed on.
Most billing offices have never run this test, and most owners assume the answer would come back identical. The four decisions below are why it probably won't.
Where the two totals come from
Follow ticket 20871 through the four decisions it forces, because a ticket doesn't price itself. Somebody prices it.
The minimum. Your rate sheet says loads bill at a 3-ton minimum. The senior clerk knows an exception: this customer negotiated straight tonnage on small patch loads back when they were bidding the county work, so she bills the real 2.6. The newer clerk applies the written minimum. One of them is right, and nothing on the ticket says which.
The zone. The haul rate breaks at 5 miles, and the driver wrote "5 mi" because drivers round. One clerk prices from the address and her memory of the zone map. The other prices from what the driver wrote.
The surcharge. The fuel surcharge table updated three weeks ago when diesel moved. The newer clerk looks it up every time because she doesn't trust her memory yet, and applies the current 16%. The senior clerk has keyed the 18% tier so many hundred times that her hands do it without consulting anything. She isn't guessing. She's remembering, and what she remembers is May.
The wait time. Forty minutes at the site. First 15 free, then quarter hours, per the sheet. That leaves 25 billable minutes, which is one full quarter hour with 10 minutes hanging over. Do the 10 minutes bill as a second quarter or vanish? The sheet doesn't say. Each clerk long ago settled the question for herself and has applied her own answer, consistently, for years.
Four decisions, each worth a few dollars, each resolved by habit instead of by rule. That's the anatomy of the $27 gap. Now multiply by every ticket that forces any judgment at all, and by every month. Count your own share honestly: any load under the minimum, any address near a zone line, any week the surcharge moved, any ticket with wait time on it.
Volume doesn't average it out
The comfortable assumption is that this washes: sometimes high, sometimes low, call it noise. It doesn't wash, for a reason your own customers enforce.
The variance has a referee on one side only. When a habit prices a ticket high, the customer's AP department exists to catch it, and the good ones do. The dispute comes back, the line gets corrected, and the clerk learns, one small lesson at a time, that her high reading causes phone calls. When a habit prices low, no phone rings anywhere. Nobody disputes an invoice downward. So every judgment call in the building drifts, slowly and politely, toward the customer-favorable reading, not because anyone decided to discount but because only one direction ever gets corrected. Unwatched discretion doesn't wander randomly. It sinks.
And here's the claim your office manager will want to argue with: your most experienced clerk generates more of this variance than your trainee. The trainee doesn't trust herself yet, so she looks everything up, and the sheet she looks at is current. The veteran carries fifteen years of rates, exceptions, and customer quirks in her head, which is exactly why she's fast, and some of what she carries expired. Her stale 18% surcharge runs high, and that one will eventually earn the phone call that corrects it. The remembered exceptions and the generous rounding run low, and those never will. Her error rate is small. Her drift is real, it points downhill, and it's protected by the fact that nobody double-checks the person who trained everyone else.
None of your existing controls sees any of this. Sequence audits count serials, and every serial is present. The batch total matches the keyed lines because the keyed lines produced it. Each invoice is internally consistent and individually defensible. The only comparison that would surface the problem is two people pricing the same paper, and no ordinary workflow ever does that. The test at the top of this piece is the audit.
flowchart TD
A["Ticket 20871: 2.6 tons, 4.8 miles, 40 min wait"] --> B{"Who keys it?"}
B -- "senior clerk" --> C["Remembered exception, May surcharge, rounds down"]
B -- "newer clerk" --> D["Written minimum, current surcharge, rounds up"]
C --> E["Invoice line: $214"]
D --> F["Invoice line: $241"]
E --> G["Both pass every count the office runs"]
F --> G
Move the rules out of the heads
Retraining won't fix it, because training is how the problem reproduces. Whoever trains the next clerk installs her own habits, complete with the settled-for-herself rounding answer and the May surcharge. What works is taking the four decisions away from the keyboard entirely.
Every judgment call above is a billing rule that never got written down as one. The customer's tonnage exception is a rule: this account, straight tonnage on these products, effective this date. The zone question is reference data: this delivery address sits in Zone 1, decided once, by someone with the map, instead of decided weekly by whoever's keying. The surcharge is a table with effective dates, so May's rate prices May's tickets and September's prices September's, no memory involved. The rounding question gets one answer, in writing, that both clerks inherit.
Once the rules are structured, the clerk's job contracts to the part humans are actually good at: reading the paper. Tons, miles, minutes, signature. The arithmetic stops being hers. Capture the tickets digitally at turn-in and each one prices against the same rules no matter whose desk it crosses. A ticket that matches no rule, the real exception, gets flagged for a decision instead of quietly absorbing whatever habit was on shift. That's the lane Termco works in: tickets captured, priced by structured rules against managed reference data, the ones that don't reconcile flagged for a person, and invoice totals assembled from lines that all took the same path.
Run the two-clerk test first, though. Ten photocopied tickets, two people, separate rooms, an hour. If the totals come back identical, your office is tighter than most and this wasn't your leak. If they don't, every dollar of spread is variance your invoices have been carrying all along, in the direction nobody calls about.
If you'd rather we run it, send 10-20 sample tickets to hi@termco.ai and we'll send back what we find within 48 hours.
More from the Termco blog.
September 05, 2026
The Hose Was Free, the Labor Wasn't
Field service trucks carry a parts store in the side boxes. What comes out of them bills only if the tech writes it down, and plenty never gets written.
Read postSeptember 04, 2026
Half This Load Goes Across the Road
A split load turns one ticket into two billable events. The margin note that records the split overbills one customer and forgets the other.
Read postSeptember 03, 2026
Rejected, Not Disputed
An invoice AP disagrees with gets a phone call. One that fails PO match gets a status. The second kind ages in silence, and part of it never pays.
Read post