The Zone That Rides the Account
24 September 2026
Meridian Ridge is 13.8 road miles from your gate. Your billing system has believed it's nine for two years.
Here's how a number like that gets born. The builder opened an account in 2024, when his first project was the infill job off Route 9, nine road miles out, a genuine Zone 1 haul. Whoever set up the account keyed Zone 1 in the delivery field, because that's where his trucks were going that month. The infill job wrapped. The builder moved on to Meridian Ridge, then to the school site past the river, and the account moved with him. The zone didn't. It sits in the account header saying Zone 1, and it prices every delivered ton at the shortest haul on your sheet.
Nobody has miskeyed a single ticket. That's what makes this one hard to see: the clerk keys exactly what the screen offers, the screen reads the zone off the account, and the account remembers a job that ended before your newest driver was hired.
The address is on the ticket. Nothing reads it.
Look at where the two facts live.
The destination lives on the ticket, in the delivered-to line, written at the window or radioed in with the order: Meridian Ridge, lot 40, off Coulter Road. It's real information, captured fresh, load by load. And it's decoration. The line gets read by the driver, who needs directions, and by nobody else, ever. It's free text. No field downstream compares it to anything. Ask your own clerk what she does with that line, and time how short the answer is.
The zone lives somewhere else entirely, on the account or the order header, keyed once, back when someone had a reason to think about it. That's the number that prices the haul. So delivered pricing runs on a strange split: the fact that decides the money is stale and structural, and the fact that's current and true rides along on every ticket, unread.
Your clerk can't close that gap at keying speed, and it's not fair to ask. Mapping Coulter Road to a band means knowing the roads and where Zone 2 ends, and doing it 200 times on a month-end stack. She keys the zone the screen suggests, because the screen suggests it and the stack is deep.
flowchart TD A["Ticket: delivered-to Meridian Ridge, lot 40"] --> B["Keying screen"] C["Account header: Zone 1, keyed 2024"] --> B B --> D["Invoice line: Zone 1 delivered rate"] A -.->|"address never compared to the billed zone"| D
The short zone stays. The long zone gets a phone call.
Mis-zoning runs both directions, and the two directions get very different lives.
Key a job too far out, Zone 3 rates on a Zone 1 haul, and the invoice lands on the desk of a project accountant who knows exactly where her own job site is. She doesn't wonder. She short-pays the difference and attaches a map link. That error has a natural predator, and it gets eaten within a billing cycle.
Key a job too close in and nothing happens, forever. No customer audits an invoice hoping to find hauling they should have paid more for. The trucks run 13.8 miles, burn 13.8 miles of diesel and driver time, and bill nine. The delta isn't a line on any report. It's not a parked ticket or a gap in a serial run. Every document in the building agrees, because they're all reading the same wrong cell.
Put loose numbers on it, yours to swap for real ones. Say 13.8 miles against nine is one band on your sheet, worth $1.10 a ton on delivered material, and the builder pulls 22-ton loads, six a day when the concrete crews are pouring, two a day when they're not. Peak days leak about $145. Some weeks it runs at six loads a day, some weeks at two, so call it $15,000 across the eight months Meridian Ridge runs, and you're still hauling a subdivision at your own cost, invoiced at somebody's memory of 2024. Now count the accounts in your customer master that have outlived the job they were zoned for. You'll find more than you'd guess.
Zone by the destination, or don't bill delivery at all
Here's the claim your dispatcher will argue with: the zone belongs to the destination on the ticket, never to the account, and a delivered ticket with no legible destination shouldn't price hauling until someone supplies one.
The pushback is honest. Re-zoning every order slows the window, drivers already know where they're going, and half the delivered-to lines say things like "the Hutchins job" because everyone knows where the Hutchins job is. All true. But listen to what the current setup actually does: it prices your hauling by the first place a customer ever took your material, then extends that price to every place they'll ever take it, without anyone deciding to. You'd never quote that way out loud. Nobody signed a rate structure that reads "whatever your first haul cost, forever." A zone field on an account header just quietly becomes one.
And "the drivers know" cuts the other way. The drivers do know. That's the point: the operation is full of people who know the real miles, and the one place the knowledge never reaches is the field that prices them.
Make the zone an answer, not a setting
The fix is structural, and it's narrow. Zones are reference data: band boundaries, the rate for each, effective dates, and the named places you deliver to, each mapped to its band once, when the job is set up. A new subdivision gets zoned the week the first order lands, by someone looking at a map, not by whoever is at the window when truck one rolls. The delivered rate becomes a billing rule that reads the ticket's destination against that table, so the price follows the load, not the account's memory.
Then the edge cases stop being silent. Tickets get digitized as they're captured, and a delivered ticket whose destination matches nothing in the zone table isn't invoice-ready. It gets flagged as non-compliant that day, while dispatch still remembers where the truck went, instead of pricing at whatever the account has said since 2024. Invoice totals assemble only from tickets that cleared. That slice is what Termco builds: digitizing the tickets, flagging the ones no rule can price, structuring the billing rules, managing the reference data, assembling the totals. Where Zone 2 ends stays entirely your call. It just gets made once, on a map, instead of defaulted thousands of times by a field nobody's read in years.
You can size your own gap with one afternoon and a mileage tool. Pull last month's delivered tickets for your five biggest accounts. Write the real road miles from your gate next to the zone each line billed, and circle every line where the miles and the band disagree. Price the circles at the band spread. That number is what the account headers cost you last month, and they'll charge it again next month at whatever pace your customers break ground somewhere new.
If you'd rather have a second reader on it, send 10-20 sample tickets to hi@termco.ai, delivered loads from your longest-running accounts especially, and we'll send back what we find within 48 hours.
More from the Termco blog.
September 23, 2026
Wrong Rock, Right Weight
When the bunker runs empty, the loader substitutes and the ticket doesn't. The product field is the only line on a scale ticket nobody measures.
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