
By: Jeff Heybruck
Picture a contractor who just wrapped up a kitchen remodel. The estimate called for a 28 percent margin. The job report in the project management app shows 31 percent. Good job, good crew, and the next three bids go out priced the same way.
Then year-end arrives. Revenue is up, the schedule was full all year, and somehow there’s less money in the bank than there was twelve months ago.
We hear some version of this story often, especially from construction, trades, and project-based service businesses. The jobs usually aren’t being costed wrong, exactly. They’re being costed partially. Some costs land on the job, some land in general overhead, and some never get connected to the work at all. The result is a margin that looks precise and is consistently too high.
That’s incomplete job costing. It’s one of the more expensive forms of bad data, because it feeds directly into how you price, how you staff, and which work you go after next.
What Job Costing Is Supposed to Tell You
At its core, job costing answers one question: did this job make money, and how much? Answer that accurately across enough jobs and business owners can answer the bigger ones. Which types of work are worth chasing? Which customers are profitable and which ones are busy work? Are estimates realistic, or are those winning bids simply the cheapest?
A company-wide Profit and Loss can’t answer those questions. It shows how the business did overall, but it blends the best jobs and the worst ones into a single number. A strong commercial project can hide three residential jobs that lost money, and it would never be seen at the company level.
That’s why job costing matters. It’s also why getting it half right can be worse than not doing it at all.
Getting it half right can be worse than not doing it at all
Where the Missing Pieces Usually Hide
Incomplete job costing rarely comes from one big omission. It’s a handful of smaller gaps that all push in the same direction, making jobs look more profitable than they are:
- Labor at the wage rate instead of the true cost. An employee who earns $30 an hour costs considerably more once payroll taxes, workers’ comp, insurance, and paid time off are added. If only the wage hits the job, every job is understated.
- Overtime that never makes it to the job. Time gets tracked by hours, the job is costed at a standard rate, and the overtime premium ends up in general payroll expense instead.
- Materials pulled from the shop. Inventory or leftover stock used on a job often never gets charged to it, because nobody bought anything new. Or, the opposite is true; all those trips to Lowe’s or Home Depot don’t get coded to the job.
- The small stuff. Fuel, dump fees, permits, equipment rentals, and the quick supply run that goes on a company card and gets coded to a general expense account.
- Change orders that aren’t tracked separately. The extra work gets done, the extra cost gets absorbed, and the extra revenue may or may not get billed.
- Costs that arrive after the job is closed. A late subcontractor invoice, a warranty callback, or a punch-list visit two months later. If the job report was reviewed the week it finished, those costs never factor into what you learned from it.
- No overhead allocation at all. Even with every direct cost captured, a job’s gross margin still has to cover the trucks, the office, the insurance, and the owner’s salary. A job that looks fine at 20 percent gross margin may not be fine if overhead runs 22 percent.
None of these are unusual, and most owners will recognize at least two or three. Individually, each one shaves a point or two off the real margin. Together, they can turn a winning job into one the business would have been better off passing on.
Why Half a Picture Is Worse Than None
An owner with no job costing at all usually knows it. They price carefully, watch the bank balance, and treat their margins with some healthy suspicion.
An owner with incomplete job costing has something more dangerous: a report that looks finished. It has numbers for every job, a margin percentage, maybe a nice chart. It gets used to make real decisions, and those decisions inherit every gap in the data:
- Bids get priced off inflated margins, so the business keeps winning work at prices that don’t cover the full cost.
- The wrong work gets prioritized. The job types that look most profitable may simply be the ones where the most costs go missing.
- Estimators never get honest feedback. If the actual costs never fully land on the job, there’s no way to see that the estimate was off, so the same mistake repeats on the next bid.
- Growth makes it worse. More jobs at an overstated margin means more volume and less profit, which is exactly how a business gets busier and poorer at the same time.
In our post on rogue data entry, we touched on a related issue: many businesses believe they’re job costing because they track POs and hours in a project management app. Those tools are useful for running the job. But a PO isn’t what was actually charged, and hours times a standard rate isn’t what was actually paid. The real cost lives in the accounting system, and that’s where job costing has to be done.
The real cost lives in the accounting system, and that’s where job costing has to be done.
Job Costing in QuickBooks
Most small business owners use QuickBooks, and the good news is that it can handle real job costing. Depending on the version, jobs are set up as Projects or as jobs under a customer, and every bill, expense, and timesheet can be assigned to one. The catch is that QuickBooks only reports what it’s given. If a cost isn’t tied to the job when it’s entered, the job report will never show it.
A few practices make the biggest difference:
- Assign costs at the point of entry. Every bill, credit card charge, and receipt that belongs to a job should be tagged to that job when it’s entered, not sorted out later. That includes the fuel and the supply runs.
- Get the full cost of labor onto the job. If payroll runs through QuickBooks and time is tracked by job, labor can flow onto the project automatically. If payroll is processed somewhere else, someone needs to get those costs onto the job deliberately, and at the burdened rate, not just the wage.
- Use items for materials. Charging materials through items, including stock pulled from inventory, keeps them visible on the job instead of buried in a general expense account.
- Track change orders separately. Keeping them distinct from the original estimate shows you whether the extra work was priced and billed correctly.
- Review jobs after the final costs come in. The job profitability reports are only as complete as the moment you run them. A second look 60 to 90 days after completion catches the late invoices and callbacks.
One thing QuickBooks won’t do on its own is tell you what share of your overhead each job needs to carry. It will show a job’s gross profit, which is useful, but deciding whether that gross profit is enough is an analysis step. That’s where a CFO-level view of the numbers comes in.
See the Whole Job
Job costing done halfway gives numbers that look trustworthy but still give bad guidance. Done completely, it’s one of the most valuable reports a project-based business can have, because it shows you exactly which jobs actually made money and which ones should have.
If job reports look healthier than the bank balance, Lucrum can help close the gap. We’ll set up your QuickBooks file to capture the full cost of every job, help your team build the habits that keep it accurate, and give you the margin analysis you need to price and plan with Confidence in the Numbers.



