How to Track Job Profitability Before the Job Ends
For years I found out whether a job made money the same way most contractors do: months later, at tax time, from an accountant. By then the job is done, the crew has moved on, and there's nothing left to adjust. Tracking profitability while the job is still running is a different habit entirely — it means checking a number every week instead of finding one out once, and it means you can still act on what you see.
Why "profitable" jobs surprise you at year end
A job can look fine while it's running and still lose money, for three reasons that rarely show up on the invoice.
Overhead never gets charged to the job.The truck, the insurance, the software, the hours you spend estimating and driving instead of building — none of that shows up in a job's direct costs, but it's real money the job has to help cover. A job that clears its budget on labor and material can still be under water once its share of overhead is counted. That math is its own subject — see construction overhead for how to calculate your rate and price it in.
Receipts get forgotten.A lumber run paid out of pocket, a second Home Depot trip nobody logged, a fixture bought on a card that never made it into the job folder — each one is small, and there are usually more of them than you think. They don't subtract themselves from the job's apparent margin. They just quietly never get counted, so the job looks better than it is until someone adds up the real receipts.
Hours go unbilled.A load-out, a supply run, a return trip to fix something small — time that belongs to the job but never gets logged against it. If labor cost is tracked from a schedule instead of real hours, the job's numbers are a guess dressed up as a fact.
Put those three together and you get the gap between a job that looksprofitable while it's running and what it actually made once every real cost is in. The way to close that gap isn't better guessing — it's tracking four numbers while the job is still open.
The four numbers to watch
Every job you run has four numbers worth checking together, not one at a time. Any one of them alone tells you less than all four side by side.
| Number | What it is | Why it matters |
|---|---|---|
| Budget | What you planned to spend, ideally broken into phases (demo, framing, rough-in, finish) instead of one lump | A phase budget tells you where the money is supposed to go, so a phase running hot shows up before the whole job does |
| Actual | What has actually been spent so far — receipts logged, labor hours paid, subs paid | This is the only number that isn't a plan or a promise. It's what already happened. |
| Committed | Costs you're on the hook for but haven't paid yet — a sub you've hired for next week, material you've ordered but not received | A job can look fine on actual spend and still be headed for trouble because of what's already committed |
| Margin today | Contract price minus actual minus committed | The number that answers 'am I still making money on this job, right now' — not at the end, today |
Committed cost is the one most contractors skip, and it's the one that turns a surprise into a preventable one. If you've ordered $4,000 of tile that hasn't shipped yet, that's not a future maybe — it's money the job owes as surely as a paid receipt, and your margin-today number is wrong without it.
A weekly 10-minute routine
This doesn't need to be a big system. Once a week, per active job, four things:
- Log anything that landed. Receipts from the truck, the glovebox, and email; hours worked; any sub invoice that came in.
- Add anything newly committed. A material order you placed, a sub you just hired for a start date — even if nothing has been paid yet.
- Check margin today against the budget by phase.Is the phase you're in running close to plan, or has it already eaten the finish phase's room too?
- Decide if anything needs to change this week — a scope conversation with the client, a tighter eye on the next material order, or nothing, because the job is on track.
Ten minutes a week per job is nothing next to the alternative, which is finding out everything at once, three months after the job is closed, when the only thing left to do is remember what happened. If you're not sure what margin-today number to aim for in the first place, see what a good profit margin for a construction company looks like, since the right target depends on your trade and your overhead, not on a number borrowed from someone else. And if the budget column in your weekly check is more guess than plan, the job cost calculator is the faster way to build a phase budget than doing it in a notebook.
A worked example: an $18,000 kitchen refresh
The numbers below are an example — a real-shaped kitchen refresh, not a specific client's job — built to show the method, not to claim a typical outcome. Contract price: $18,000. Budgeted margin going in: 28%, or about $5,040.
| Phase | Budget | Actual so far | Committed | Margin today |
|---|---|---|---|---|
| Demo + prep | $1,800 | $1,750 | $0 | Running $50 under |
| Cabinets + counters | $8,200 | $6,400 | $2,100 (counters ordered, not installed) | On track — $300 under combined |
| Plumbing + electrical sub | $3,000 | $1,600 | $1,400 (sub scheduled next week) | On budget |
| Finish + paint | $2,700 | $400 | $0 not yet ordered | Too early to say |
| Whole job so far | $15,700 planned | $10,150 spent | $3,500 committed | $18,000 − $10,150 − $3,500 = $4,350 margin today (24%) |
Notice what the committed column is doing: the counters are ordered but not installed, and the plumbing sub is scheduled but not paid. Neither of those costs has hit a bank statement yet, but both are real, and leaving them out would make this job look like it's carrying almost $8,000 more margin than it actually is. That's the exact gap that turns a fine-looking job into a bad surprise — except here it's visible in week two, not month three.
If the finish phase comes in over its $2,700 budget, this table shows it the week it happens, against a phase that still has room to absorb a small overrun or a hard conversation with the client about scope — not after the job is closed and the option to do anything about it is gone.
When a job starts going sideways
Watching these four numbers weekly means you catch trouble while it's still small enough to fix. A few patterns worth knowing:
- A single phase running hot early.If demo and prep already ate 15% more than budgeted before the harder phases even start, that's a signal to tighten up the rest of the job, not to hope it evens out.
- Change orders that aren't priced into the contract.A client adds scope — move an outlet, upgrade a countertop — and if that extra cost isn't added to the contract price the same day, your margin-today number quietly drops even though nothing went wrong on your end. A change order should adjust the effective contract so the job's margin still reflects what the client actually agreed to pay for. This is also where a markup-vs-margin mix-up bites hardest — see markup vs. marginif you're ever unsure which one you're actually adjusting when a change order changes the price.
- Committed cost creeping past budget before actual spend even shows it. This is the one a lot of tracking misses entirely, because it only looks at what's been paid. A budget-overrun warning that fires on committed cost, not just paid receipts, catches the problem while there's still a decision to make about the next order.
What the software does — and does not do
I built Job Cost Pro, a construction profit tracking app, around exactly this method, because doing it by hand in a notebook is where I fell short for years. Snap a receipt and the AI reads the store, the items, the tax, and the total, and files it to the right job — so actual spend updates itself instead of waiting for a Sunday-night data entry session. You get live profit and margin per job, budget-overrun warnings, and change orders that adjust the effective contract so margin stays true to what the client actually agreed to. When you're ready to hand a job's numbers to your accountant, a one-click tax package and QuickBooks-compatible export come out the other end.
On the Contractor tier, crew time feeds straight into labor cost, so the unbilled-hours gap from earlier in this post closes too. What it does not do: estimating or bids — this is a job costing tool for tracking a job you've already priced, not a bidding program, and it is not accounting software or a replacement for your bookkeeper. Free on the App Store today for iPhone: 3 projects, 50 receipts a month, full-quality AI scanning, voice capture, and 10 AI chat messages a month, no card required. Get it here. The web app works at jobcostpro.online in any browser, and an Android app is in testing today.
The job that taught me this was a $42,000 bathroom remodel I bid at 30% that came back at 12%, because $7,500 of receipts never made it in — the full breakdown is here. If you want the day-to-day system that feeds the four numbers above — the cost buckets, the one-page layout, the five-minute habit — that is the project cost tracker post.
One last thing, said plainly:none of this is tax or accounting advice. I'm a contractor who got tired of finding out how a job did three months late, not your CPA. Track the four numbers above so you know where a job stands while you can still do something about it, and bring the finished numbers to a professional for the parts that touch your taxes.
FAQ
How do you calculate profit on a job?
Take the contract price and subtract every cost the job has actually incurred (labor, materials, subs, permits) plus your share of overhead. While the job is still running, also subtract committed-but-unpaid costs — material ordered, subs scheduled — to get a margin-today number instead of waiting until every bill has arrived.
What is a good profit margin for a contractor?
It depends on your trade, your overhead rate, and your market — there is no single correct target to copy. See what a good profit margin for a construction company looks like for how to work out a number that fits your own costs instead of borrowing someone else's.
Why does my job look profitable but my year does not?
Usually overhead: the truck, insurance, software, and unbilled hours never get charged to any single job, so every job looks better on its own than the company does as a whole. A job can hit its direct-cost budget and still lose money once its real share of overhead is subtracted.
How often should I check job profit?
Weekly, while the job is still running. A ten-minute weekly check — log what landed, add what got committed, look at margin today by phase — catches a phase running hot or a change order that was never priced in while there is still time to act, instead of finding it all at once when the job closes.
Do I need software to track job profit?
No — the four-number method (budget by phase, actual, committed, margin today) works on paper or in a spreadsheet. Software mainly saves the time receipts and hours take to log by hand, and it can flag a budget overrun the same week it happens instead of the week you finally sit down and add everything up.