Overtime isn't the enemy
Overtime gets a bad rap. It isn’t the villain. Sometimes it’s the cheapest way to get a job done: you’ve already got the truck out, the guy knows the site, and paying time-and-a-half beats losing the customer to a two-week wait.
The problem isn’t the overtime you chose. It’s the overtime that just happened, and showed up on the payroll run like a surprise you already paid for. Most shops don’t have an overtime problem. They have a visibility problem. The hours pile up in ways nobody’s watching, and by the time you see the number it’s Friday and the check is already cut.
Where the hours actually leak
Overtime rarely comes from one big obvious thing. It’s a slow drip. A guy finishes a job at 4:45 and figures he’ll knock out one more small call before heading in. Drive time nobody logged. A “quick” warranty callback that turned into two hours. The last job of the week that was always going to bleed into time-and-a-half because it got scheduled for Friday at 2.
None of those feel like a decision. That’s the trouble. Each one is small, each one is defensible, and stacked together across a crew of five they’re a labor budget that’s forty hours heavier than you planned. You didn’t approve it. You just found out about it.
- The one more call squeezed in at the end of the day
- Drive time between jobs that never gets logged
- Warranty callbacks that run longer than anyone quoted
- Heavy jobs booked for Friday afternoon by default
Schedule so overtime is a choice
The fix starts before the week does. If you’re loading the schedule and Thursday and Friday are already stacked to the ceiling, you’ve booked overtime whether you meant to or not. Look at the week as a whole. A job that has to happen Friday afternoon is going to cost you one-and-a-half times to finish. Sometimes that’s fine. Sometimes it should’ve been Monday morning instead, and it would’ve if anybody was looking.
Front-load the heavy jobs. Leave a little air in the back half of the week for the callbacks and the runovers that always come. And decide who’s allowed to green-light overtime before it happens, not after. A tech deciding on his own to stay late is a tech spending your money without asking. That’s not on him. It’s on nobody having drawn the line.
“You didn't approve it. You just found out about it.
The math is worse than it looks
Here’s what people miss. Overtime hours don’t cost the same as regular ones. A guy who costs you thirty an hour costs forty-five once he crosses forty in a week. So the last eight hours of a busy week can cost you what twelve regular hours would. That’s the part that quietly eats the margin on a job you thought you priced right.
Run the numbers on a job that went long and you’ll often find the overtime is where the profit went. The job was fine. The estimate was fine. The Friday-afternoon time-and-a-half is what turned a good ticket into a break-even one.
You can't manage what you don't track
All of this comes down to one thing: you have to see the hours while they’re happening, not after. If your time records are a stack of handwritten sheets that hit your desk Friday night, you’re always managing overtime in the rearview. By then it’s spent.
When time is tracked per job and per tech as the week goes, the overtime stops being a surprise. You can see a guy closing on forty by Thursday and move his Friday work to somebody with room. You can spot the tech whose hours are always high and figure out if he’s slow, buried, or padding. You can price the next job knowing what the last one actually cost.
That’s a chunk of what ToolbagCRM does in the background: time tracked per job and per tech, live, so overtime is a number you manage instead of a bill you open. And because we don’t charge per seat, the whole crew’s on it, office and field, and the price doesn’t move when you hire. Founders pricing is $99/mo for your first three months, then $150/mo locked for the life of the account.
Overtime’s going to happen. Busy season, emergencies, the job that fought back. The goal was never zero. The goal is that every overtime hour was one you saw coming and chose to pay for.