Updated October 2026
To see the profit on a job while it's still running, compare the contract plus its approved change orders with four costs: what's already on the books, what's been worked or bought but not entered yet, what's committed on purchase orders, and what it will take to finish. The difference is the profit the job is heading for. The books show only the first of those costs, and it runs weeks behind.
That lag is how a job can read like the best one of the year in week six and close at a margin well below what you bid. In the example below, an electrical job shows a 32.5% margin on the books in week six while it's heading for 16%, about $425 of profit once a typical share of overhead is paid. The rest covers labor cost, open orders, a weekly check and what QuickBooks will show you.
This guide to job costing for trade contractors is written for electrical, plumbing and HVAC shops of roughly 3 to 25 people. Most shops in these trades are small: of the 79,611 electrical contractors with employees in 2022, 89.7% had fewer than 20 employees, and so did 89.9% of the 107,004 plumbing and HVAC contractors, according to the Census Bureau's Statistics of U.S. Businesses.
What does a job's profit look like halfway through?
Halfway through, the profit on the books is usually too high, because revenue gets billed on schedule while costs arrive late. Take an example electrical job on a new custom home: a $40,000 contract planned at $31,200 of cost, plus a $2,500 change order for an EV charger circuit, carrying $1,900 of cost, that the client signed in week three. Planned profit is $9,400 on $42,500, a 22.1% gross margin.
By week six the shop has billed $25,500. Against that, the books show $17,200 of cost: one payroll run and the supplier invoices entered so far. That reads as a 32.5% margin.
Now count what hasn't landed. The crew has worked 66 hours since the last payroll, about $2,884 at a loaded rate of about $43.70 an hour (where that rate comes from is in the labor section). The supply house's monthly statement isn't in yet, and it carries $3,116 of counter pickups, mostly wire and boxes that weren't on the takeoff. The fixture and gear order is placed, $4,600 on an open purchase order. Finishing will take about 120 more hours plus $2,656 of material, $7,900 in all.
Add it up and the job is heading for $35,700 of cost against $42,500 of contract. That's $6,800 of profit, a 16.0% margin, and $2,600 short of plan.
Is a 16% gross margin enough for a trade shop?
Barely, once overhead is paid. Specialty trade contractors reported a 22.1% gross margin for 2025 in CFMA's 2026 Financial Benchmarker, with selling, general and administrative costs near 15% of revenue and net income of 7.5% before taxes (7.3% for firms under $10 million). If this shop's overhead takes the same 15 cents of each dollar, the job carries $6,375 of it and nets about $425.
The owner finds that out in week ten, when nothing can be done about it. In week six, with half the job left, there was still time to look at the counter pickups.
Why do costs show up weeks after the work?
Costs reach the books on their own billing cycles, not on the day the work happens. Labor waits for payroll. Supply-house purchases wait for the monthly statement. Revenue, meanwhile, goes on the books the day you invoice, so in the middle of a job revenue runs ahead and cost runs behind.
Intuit says as much about its own software. Its help article on tracking labor costs by project explains that payroll expenses "show up after you run payroll," while estimated hourly costs "show up right away. But they might be less accurate."
The usual late arrivals on a trade job:
- Hours the crew worked since the last payroll run.
- Counter pickups on a supply-house account, which come on the monthly statement.
- Special-order gear. It's often billed when it ships, which can be weeks after you ordered it.
- A lift rental or permit fee paid on a company card that nobody has coded to the job.
You know about every one of those on the day it happens. Record it against the job that day, at your best number, and replace the number when the real bill comes.
What does an hour of labor really cost a trade shop?
An hour of labor costs about 1.44 times the wage once benefits and payroll taxes are counted, going by construction-industry averages from the Bureau of Labor Statistics, and that's before unbillable time, trucks and tools. Track a running job at a loaded rate like that, or labor will look cheaper mid-job than it was in your bid.
In the BLS Employer Costs for Employee Compensation release for June 2026, construction employers paid $51.96 an hour in total compensation. Wages were $36.13 of that, and benefits $15.84, or 30.5%. Legally required benefits (Social Security, Medicare, unemployment insurance and workers' comp) came to $4.42. The 1.44 is our arithmetic: $51.96 divided by $36.13.
| Trade | Median hourly wage, May 2025 | At $51.96 ÷ $36.13 (about 1.44 times) |
|---|---|---|
| Electricians | $30.38 | $43.69 |
| Plumbers, pipefitters and steamfitters | $30.67 | $44.11 |
| HVAC mechanics and installers | $29.33 | $42.18 |
Not everyone puts those costs on the job. Ruth King, a business coach who has coached contractors for more than 40 years and is known as The Profitability Master, keeps them in overhead. "Personally, I don't put truck or payroll expenses in direct cost. I price by overhead cost per hour and net profit per hour," she wrote in ACPro in January 2025.
Either way can work. The one that fails is bidding on one basis and tracking on the other, say a loaded rate in the estimate and the bare wage in the running job, because then the two numbers aren't measuring the same thing and the job looks better than it is.
How do you count money you've committed but haven't been billed for?
Count it the day you commit to it. A purchase order for gear, a sub's quote you've accepted, a lift booked for next week: each is money the job will spend, so it belongs in the projected cost now, before any bill exists.
In the example, the $4,600 gear order is the largest single cost already committed that the books can't see yet. That one order is bigger than a typical job's whole profit after overhead. At CFMA's 7.3% net margin for specialty contractors under $10 million, a $42,500 job earns about $3,100.
The simplest system is a numbered PO with the job name on it for every order over a few hundred dollars, and a list of open POs per job. When the bill arrives, the amount moves from committed to spent. The projected total doesn't change, which is the point.
How often should you check a running job?
Check every open job once a week, after timesheets are approved and before payroll goes out. Fifteen minutes a job is enough if the costs were entered as they happened, and a monthly look tends to find the problem after the money is spent.
Small margins are why the habit pays. The average HVAC contractor's net profit was 6%, and small and mid-sized shops averaged 5%, in ACCA's Contractor of the Future study with Farmington Consulting Group, as ACHR News reported in January 2026. ACCA's target is 10%. At a 6% net margin, a two-point slip on every job takes a third of the year's profit.
- Approve last week's hoursBy job, at the same loaded rate you bid with.
- Enter every receipt and counter ticketA photo with the job name is enough until the statement comes.
- Add new commitmentsPOs placed and sub quotes accepted this week.
- Update what's left to finishHours and material, from whoever runs the job.
- Update the contractApproved change orders only. A change the customer hasn't signed stays out.
- Compare with the planWrite one line on why the projected profit moved.
Can QuickBooks show you profit by job?
Yes, within limits. QuickBooks Online's Projects feature shows profitability by project on the Plus plan, $140 a month at list price, and on Advanced, $340 a month, according to Intuit's pricing page. It works from what's been entered, so the lag above still applies.
Comparing a project's estimate with its actual costs needs Advanced. Intuit's help article on creating projects says that "if you use QuickBooks Online Advanced, you can also set up project estimates and track your estimate versus actuals." For labor, the same labor-cost article suggests entering a fully burdened hourly cost rate, so hours show on the project before payroll runs. Intuit was running a three-month discount on new subscriptions when we checked, and the prices above are the regular monthly ones.
A spreadsheet also works if somebody keeps it every week. Job-management software for contractors can do the projection for you, and most of it connects to QuickBooks so the books stay in the books. Our roundup of software for trade shops that quote and build jobs compares a few, and our guide to raising your gross profit margin covers the pricing side.
How does Trade Agent keep a job's profit current?
Trade Agent is job-costing and job-management software for home builders and the trade shops that work on their jobs, and it sends approved bills and expenses to QuickBooks Online against the job. Its AI assistant, Arti, reads the bills suppliers and subs email in before anyone opens the app.
The estimate you win becomes the job's budget. Each emailed bill is matched to the job and cost code when Arti is sure, and either way it waits in a review queue for approval. If a bill would take a budget line over, it says so before you approve it. Receipts snapped in the phone app (now in beta) go into the same queue. A bill counts against the job once it's approved, so the weekly approval in the check above matters here too.
Approved crew hours are costed at the hourly rate you set for each type of work, so you can enter a loaded rate. On a fixed-price job, the P&L opens on the profit it's heading for, with the contract (approved change orders included), what's been spent so far and what's left to spend before you break the plan.
Run the week-six job through it and the gap shrinks without closing. The 66 hours are costed once the timesheets are approved, so they don't wait for payroll. The $4,600 gear order shows as committed cost on its budget line, and the at-close forecast moves once committed and spent cost take a line past its budget. The counter pickups show up only if someone snaps the tickets at the counter. Otherwise they arrive with the supply-house statement, as they do now.
The phone app, in beta, shows each job's remaining budget, and the full P&L is in the web app. Overhead goes in as a rule you add yourself, a percentage of the job's cost, and you choose whether it counts against the job's profit. On the example job, CFMA's 15% of revenue works out to about 18% of cost.
Trade Agent isn't built for service dispatch or a flat-rate price book. A shop that runs mostly on same-day service calls is better off with field-service software.
The trades page follows one job from quote to invoice, and pricing is by quote. If you'd rather see your own week six, book a demo.

