What job costing actually is
Job costing is the math of what one specific job cost you, against what you billed. Not the business overall. Not the average. A single job on its own. Labor, materials, the small stuff nobody bothered to put on the invoice, every dollar of it, against what the customer actually paid.
Run that on every job for a quarter and the picture changes. Two jobs that both quoted at $3,200 can come back with $1,400 of profit on one and $200 on the other. You felt them both as wins. The books say otherwise.
Why eyeballing job profit stops working
Going by feel works for a while. A year, sometimes two. The shop is small, you’re on every job yourself, and the numbers you remember are close enough to the numbers that hit. Then you grow. A second truck shows up, then a second crew, and suddenly somebody else is on the job, the materials get pulled from a yard you didn’t visit, and your gut has nothing to go on anymore.
By the time the bank account tells you something is off, six months of bad jobs have already gone by.
Bigger volume hides worse margins. That’s the part most owners miss. Revenue is up, you’re working more hours than you have in years, and the bank balance keeps drifting the wrong way. The math was off the whole time. You just couldn’t feel it anymore.
The four numbers to capture on every job
Doesn’t have to be fancy. Four numbers, on each job, while the job is happening, not pieced together three weeks later from a pile of receipts:
- Labor hours, actual ones. Clock in, clock out, every tech on site, with drive time.
- Materials cost, with the supplier invoice attached. Not what you guessed at quote time.
- Subcontractor and pass-through costs. The dumpster, the permit, the rental, the helper you paid in cash.
- What the customer actually paid, after change orders, discounts, and any deposit that did or didn't clear.
Multiply hours by your fully burdened rate, add the rest, subtract from revenue. That’s the gross profit on that single job.
Notice what isn’t there. Overhead allocation, owner draw splits, all the accounting gymnastics. Those matter for your annual books. For deciding which jobs pay you and which quietly bleed you, you don’t need them.
What shows up once you start tracking
Run this for a quarter and patterns appear. They almost always look like this:
- A job type or job size that loses money every single time. You'll know it inside twenty tickets.
- A specific customer or referral source whose work comes in over budget and over scope, and gets paid slow. That relationship costs more than you thought.
- A supplier who's marking material up further than you assumed, so a job you quoted at a 35% gross is landing at 18%.
- A crew that takes 30% longer on the same scope than another crew. Maybe it's training. More often it's one tech burning the rest of the crew's hours.
The biggest one most owners miss: the small jobs. A $400 service call eats half an hour of drive each way, then ten minutes of paperwork, plus the “while you’re here, can you look at…” tag-on. The actual math on that ticket comes back red. The big jobs felt scary to quote. They were the only ones paying you.
“Bigger volume hides worse margins. By the time the bank tells you, six months of bad jobs have already gone by.
Acting on what you find
Tracking is half. The other half is doing something with what the numbers tell you. The honest moves:
- Reprice the job types that keep losing money. Not by 5%, by 25 or 40%. Most customers don't notice. Competitors don't undercut. You stop bleeding.
- Politely walk away from the customers whose jobs always go sideways. Stop bidding their work, or quote at a number they'll say no to. Either one ends the problem.
- Tighten the scope on the loss-makers. If "while you're here" jobs always eat margin, build a flat trip charge or a scoped change-order form into the workflow. Quit giving the extras away.
- Compare crews. If one runs faster on the same scope, find out why. Then teach the rest.
You’re not trying to micromanage every quote. The point is that without the numbers, you’re guessing about which jobs are the good ones. The guessing gets worse as the business grows, not better.
Where ToolbagCRM fits
Job costing needs the labor hours, the materials, the deposit, and the invoice all sitting against the same job record. If they’re scattered across a time-tracking app, a supplier portal, a paper invoice, and your bank statement, the math doesn’t get done. Nobody actually does it. That’s why most trades never start.
ToolbagCRM puts all four under one job. Techs clock in and out from the mobile app on site, materials get attached as they’re added, deposits and final invoices run through the same flow, and the actual-vs-estimate variance is one click at the end of the month. Set the quote once, capture the truth as the job runs, then look back.
One flat monthly price covers the whole team. Founders pricing locks in at $99/mo for the first three months, then $150/mo for as long as the account stays open. If knowing which jobs make you money is worth anything at all, it’s worth the click to find out.
Labor hours, materials, pass-through costs, what the customer paid. Don't get fancier than that on day one.
Not from a pile of receipts at month end. The numbers that get logged on the job are the only ones you can trust.
Just wages misses the overhead. The hour costs you more than the paycheck does.
Estimate vs actual on every job. The patterns show up faster than you'd think.
Reprice them or scope them tighter. Stop bidding the worst ones altogether.