5.7 min read

SHORT VERSION
You can’t see profit in real time because nothing counts the work while it’s happening. On a project that runs weeks, cost burns against an estimate sitting in a folder, and the extras your guys do mid-job never turn into a bill at all. Make the estimate the budget each job runs against, post labor and material to the job as they’re spent, and turn every mid-job ask into a priced change the day it happens. Then one view tells you where each job stands.

You can’t see whether a job made money in real time because nothing counts the work while it’s happening. On a project that runs weeks, cost piles up against an estimate nobody’s looking at, and unbilled work in progress builds up where no report shows it.

It isn’t a habit you forgot to build. The estimate, the labor, the material, and the invoice all live in different places, and nothing pulls them together while the job is still moving.

Where the number disappears

Take a remodel that runs six weeks. Your guys rough it in, then they’re gone for a month while the drywall and cabinets go in, then they come back to trim it out. You billed a deposit up front and you’ll bill the balance at the end.

In between, hours are getting burned and the supply house is delivering material, and none of it is landing against the estimate as it happens. The estimate was a bid you built to win the work. Once the job started, it went in a folder.

So the only time anyone lines up what you estimated against what the job actually cost is after it’s over, if at all. Everything spent in between is unbilled work in progress, and it doesn’t show up on any report you’d think to check.

Do that across a dozen open jobs and here’s what’s left: a bank balance that mixes deposits you haven’t earned yet, invoices nobody’s paid, and bills you owe the supply house. A healthy-looking bank account can be hiding a job that’s underwater, and you have no way to tell which one.

The work that never becomes a bill at all

Then there’s the stuff that never even gets to the estimate. You’re one trade on a job full of trades, taking direction from a GC. During rough-in, while the walls are still open, he asks for two more circuits run to the far end of the addition. Your guys pull them, because they’re right there and the job has to keep moving.

That’s the right call for the job. But nothing turns “the GC asked for extra work” into a priced change order, so the cost lands on the job and the revenue never does. It dissolves into the original labor budget.

None of that is your crew being careless. There’s no step that takes a mid-job ask and makes it a billable change before the work happens, so even a guy doing right by the customer creates cost that will never become a bill.

Stack that with every callback opened as a fresh service call instead of landing on the job that caused it, and every hour of truck stock that went into the work and never made the invoice. Each one is real cost sitting on a job with no revenue tied to it, so the job reads as more profitable than it was, right up until you finally add it up.

One live view of every open job

The fix is one place you can open on any Tuesday and see where every job stands against its own budget, plus everything you’ve done that hasn’t turned into a bill. For that view to be real instead of a guess, three things have to feed it.

The estimate has to stop being a bid you file and become the budget the job runs against. Every open job carries its estimated labor and material, and that’s the line everything gets measured against.

All cost has to post to the job that caused it as it’s spent, not get rebuilt from memory once it’s over. Hours land on the job the day they’re worked. Supply house and truck stock land on it the day they’re used. And a callback lands on the job that generated it, not on a fresh ticket, so the redo shows up as cost against the job it belongs to. That’s what turns “we’re busy” into “this one’s at seventy percent of its labor budget with the trim still to go.”

And every mid-job ask has to become a priced change the day it’s done, before it disappears into the original budget. The GC asks for two more circuits, that’s a change order with a number on it before your guys leave the site, not a thing to sort out later.

Once those three feed the view, the weekly look takes ten minutes. Which jobs are running over. What you’ve done that hasn’t been billed. What you’ve actually made so far this month. You know it while you can still do something about it.


FAQ

What’s the difference between unbilled work and unpaid invoices?

Unpaid invoices are jobs you’ve billed and the customer hasn’t paid yet. Unbilled work is a step earlier: the job’s done, or partly done, and no bill has gone out at all. Both are money owed to you, but unbilled work is the easier one to lose track of, because nothing in your system is flagging that it’s out there.

How do I know how much unbilled work is sitting out there right now?

You add up every job that’s finished or partly finished and hasn’t been fully billed, using the cost that’s landed on each one. If that number only lives in people’s heads, you don’t really have it. The reason to track cost to the job as it happens is that the total is always sitting there for you to look at, instead of getting reconstructed after the fact.

Why do my project jobs come in under what I bid them?

Usually it’s the extras. Work that got added mid-job and never turned into a priced change, plus cost that never got tracked against the estimate while the job ran. The bid was fine. The job just picked up cost and work along the way that nobody captured, so the margin quietly leaked out before anyone looked.

Do I need job costing software, or can I run this on a spreadsheet?

A spreadsheet works when you have a handful of jobs and it actually gets updated. The thing that matters isn’t the tool, it’s whether labor and material land against each job as they happen. If your field service software already holds your jobs and hours, tracking cost there usually beats a separate spreadsheet that falls behind.

Your Ops Team

We’re Greg and Brenda Wilson, the husband-and-wife Ops Team behind Clearwater Small Business Support. Greg came up as an electrician and now works on information security and operating procedures, policies, and changes for a Fortune 500 company. Brenda has spent her career running operations and systems inside small businesses. Between us, that’s 35+ years of untangling how work actually moves through a business.

We work with electrical contractors because we keep meeting owners like you; you poured years into building something real, and you still can’t get a straight answer about why there are so many problems. Most of the people you’ve turned to have never done the work. We have, on both sides of it. We find where the work is breaking down, build the missing pieces and stay until it holds.

Categories: Job Costing