Termco
Termco

The Shelf Life of a Broken Ticket

15 September 2026

Every billing office has one. A tray on the corner of a desk, a manila folder in the second drawer, a spreadsheet tab named HOLD. It's where tickets land when they can't be keyed as written: no job number, no signature, a rate the sheet doesn't show, an account the system won't take. Nobody calls it a queue. It's just where those go, for now.

Call it what it is: an inventory of finished work you haven't billed. The rock got crushed, the loads got hauled, the hours ran. Every ticket in that tray already cleared the expensive part, the part with diesel and payroll in it. All that's left is paperwork, and the paperwork is stuck.

Read the tray like a ledger

Pull it over and go through it once.

There's a ticket from the 3rd carrying a job number that doesn't exist, sold one afternoon and hauled the next morning, before anyone set it up where billing could see it. A driver copy with no signature, and the site it came from runs three gates. A ticket for 26.4 tons of rip rap at a price that isn't on any sheet, because somebody quoted it at the gate and the clerk wisely refused to guess. Two tickets for an account that went on credit hold mid-job. And one whose margin just says "ask Marcy," and Marcy is on vacation until the 22nd.

Each ticket got parked for a defensible reason. Keying it as-is would bill something wrong, and the clerk who held it back was protecting the invoice. Parking feels responsible. It is responsible, on day one.

What none of those tickets says is the thing they share: the missing fact lives somewhere else. In a dispatcher's head, or in a phone call the sales guy hasn't returned. Every one of those places is moving away from the ticket at a steady walk.

The missing fact has a half life

The day a ticket gets parked, fixing it costs almost nothing. The driver ran the load this morning and can tell you which gate he pulled. The foreman is still on the site and signs the copy tomorrow. The gate quote is one call to the salesman, who made it yesterday and remembers the number.

Give it six weeks and price the same fixes again. The driver has run two hundred loads since and they've blurred into one long Tuesday. The job demobilized; the foreman's trailer is gone and so is he. The customer's project accountant closed May, and reopening a closed month over one unsigned load is a favor she doesn't owe you. And if the haul contract says invoices land within 60 days of the work, some of the tray isn't late anymore. It's void, per terms your own side signed, and no office effort brings it back.

Paper hides all of this. A ticket parked yesterday and a ticket parked in April look identical in the tray: same card stock, same grease thumbprint, same fold. Receivables age on a report with columns; everyone can see a 90-day invoice going bad. The tray has no columns. It's the only place in the building where money ages with no report announcing it, which is exactly why the oldest tickets in it are usually older than anyone would guess out loud.

Work it newest first

Here's the part that sounds wrong: when you sit down with the tray, start with the newest tickets, not the oldest.

Every instinct in a billing office runs the other way. Oldest first is how you work invoices and collections, and it feels like fairness. But the tray isn't a collections file. It's a triage line, and in triage you spend effort where effort still changes the outcome. The ticket from this week gets fixed with one radio call. The ticket from March needs an archaeologist, and even a good dig mostly ends at a number nobody can confirm anymore. An hour spent on five fresh tickets bills five loads. The same hour on one stale ticket usually produces a shrug and a maybe.

The old tickets don't get thrown out. They get worked last, as the salvage jobs they are, and some become write-offs you finally count instead of holding as hope. If that ordering bothers you, good. It should have bothered you back when the March ticket was a Tuesday call.

flowchart TD
  A["Ticket fails a check at keying"] --> B["Parked: tray, folder, HOLD tab"]
  B --> C{"Chased within the week?"}
  C -- "yes: one phone call" --> D["Fact recovered, ticket keyed and billed"]
  C -- "no: nobody's job" --> E["Driver forgets, job demobilizes, customer closes the month"]
  E --> F["Contract billing window lapses"]
  F --> G["Write-off wearing a folder"]

The tray fills when you're busiest

Now the arithmetic that makes this worth a policy instead of a tidy-up. Say the tray holds 40 tickets at a $290 average. That's $11,600 of hauled and delivered work sitting unbilled, and it's the quiet floor, not the peak, because the tray fills fastest in exactly the months you're too busy to empty it. Rush jobs roll before anyone sets them up. Gate quotes happen when the line is four trucks deep. Your best quarter manufactures parked tickets at its own pace. If the tray turns over about once a quarter and a third of each pile ages past saving, it's costing you around $3,900 a quarter while looking, to any visitor, like a stack of paper waiting its turn.

Give the tray a clock and starve its inflow

Two moves, and neither one is heroic effort.

First, the clock. A ticket that can't be keyed should be flagged the day it's captured, with a reason on it: no job, no signature, no rate, held account. Digitize tickets at turn-in and the tray stops being a pile with no memory. Every parked ticket carries its capture date and its reason, so the hold is visible instead of buried in a drawer. The fix window is days, and now the office can see days passing.

Second, the inflow. Most of what lands in the tray is a reference data failure or a rules failure upstream. Jobs set up before trucks roll, written where billing can see them, kill the biggest category outright. Gate quotes become billing rules with effective dates the same week they're spoken, or they stop being honored. Signature requirements ride with the customer's record, so an unsigned copy gets chased while the job's still staffed. That's the slice Termco builds: tickets digitized at capture, the non-compliant ones flagged with reasons the day they arrive, billing rules and reference data structured so fewer tickets break, and invoice totals assembled only from tickets that cleared. The tray doesn't vanish. It gets short, young, and visible, which is everything a hold queue can be.

Your own audit takes twenty minutes and a date stamp. Take the tray, write today's date on a sticky note, and sort the tickets into three piles: this week, this month, older. Price each pile at your average ticket. The third pile is the number to say out loud at the next Monday meeting, because most of it was fixable once, for the cost of a phone call somebody didn't know to make.

If you'd rather have a second reader on it, send 10-20 sample tickets to hi@termco.ai, parked ones especially, and we'll send back what we find within 48 hours.