A job can look busy, keep crews moving, and bring money into the bank while still losing money. That is the hard lesson many owners learn when they rely on a monthly bank balance or a company-wide Profit & Loss statement alone. Job costing for contractors answers the more useful question: Did this specific job make the profit we expected?
For a contractor, every estimate is a promise about labor, materials, equipment, subcontractors, and time. If the actual cost of those items is not tracked against the estimate, it is difficult to know whether pricing is working, which crews are productive, or where margins are slipping. Accurate job costs turn bookkeeping from a record of the past into information you can use while work is still underway.
What Job Costing for Contractors Actually Measures
Job costing assigns income and direct costs to a specific project, customer, or work order. At a minimum, it compares what you estimated with what you actually spent and earned. The result is a clear view of gross profit by job rather than one blended number for the entire business.
Direct costs are the expenses that can be tied to a particular job. Materials purchased for a kitchen remodel, wages paid to technicians on a service installation, equipment rentals, permits, and subcontractor invoices are common examples. Revenue should also be assigned to the same job, including approved change orders.
Overhead is different. Office rent, insurance, administrative payroll, software, vehicles, and marketing keep the business operating but cannot always be assigned neatly to one project. They still matter. A job may show a healthy gross profit but fail to contribute enough to cover the business’s overall operating costs. Good job costing separates direct job performance from company overhead, then helps you account for both when setting prices.
Why a Strong Estimate Is Not Enough
An estimate gives you a starting point. Job costing tells you whether the starting point was realistic.
Consider a roofing contractor that bids labor at $8,000 and materials at $12,000, expecting a $10,000 gross profit after direct costs. Halfway through the job, extra tear-off work, weather delays, and an unrecorded material pickup add $4,000 in cost. If those expenses are only categorized as general labor or supplies at month-end, the owner may not see the issue until long after the final invoice is paid.
When costs are captured promptly, the business can respond. The owner can document a change order, adjust crew scheduling, review purchasing decisions, or at least use the lesson when pricing the next similar project. The goal is not to make every job perfect. It is to avoid repeating expensive surprises without understanding why they happened.
Job costing is also valuable when jobs appear profitable on paper but strain cash flow. A project with strong margins can still create pressure if you buy materials early, pay payroll weekly, and wait 45 days for a customer payment. Looking at job costs alongside billing status and cash requirements gives owners a much more practical view of the work in progress.
The Information You Need to Track
The best system is detailed enough to support decisions but simple enough that the field and office can follow it consistently. For most small contractors, the foundation is a unique job name or number used on estimates, purchase orders, time records, bills, and customer invoices.
Labor is often the largest variable. Track employee hours to the correct job, not simply to a broad payroll category. The cost should reflect more than an employee’s base wage when possible. Payroll taxes, workers’ compensation, benefits, and other labor-related costs affect the real cost of sending that person to a job site.
Materials should be assigned to the project when purchased or received. This requires discipline with supplier receipts, credit-card purchases, and items picked up by a crew member. If a material purchase serves several jobs, split it using a reasonable method and document the basis. Guessing at the end of the month is less reliable than recording the allocation when the purchase is fresh.
Subcontractor invoices, equipment rentals, permits, disposal fees, and job-specific travel are also commonly missed. These costs may be small individually, but they can materially change the margin on a tight bid. Change orders deserve the same attention on both sides: record the added cost and the added revenue. Otherwise, a legitimate adjustment can make a job look worse than it was.
Build a Process the Team Will Actually Use
Job costing is not only a bookkeeping task. It depends on information moving from the field, purchasing, payroll, and project management into the books. A process that asks employees to complete complicated paperwork after a long day will usually fail. The better approach is a few clear habits, followed consistently.
First, establish job numbers before work begins and make them visible on estimates, work orders, purchase orders, and invoices. Next, require labor time to be assigned to a job and, when useful, a cost category such as rough-in, installation, or punch-list work. Finally, set a regular schedule for collecting receipts and reviewing vendor bills so costs are not sitting in personal text messages or glove compartments.
For businesses using QuickBooks Online, customers, projects, classes, and expense categories can help organize information, but the software setup should reflect how the company operates. A remodeling business may need cost categories for labor, materials, subcontractors, and permits. An HVAC company may need clearer separation between service calls, replacements, and maintenance agreements. More detail is not always better. If reports are too complicated to review, the system is not serving the owner.
A monthly close is necessary, but monthly review alone may be too slow for longer or higher-value jobs. Active projects often deserve a weekly or biweekly check-in. Compare actual labor hours and committed costs with the estimate, identify work not yet billed, and ask whether any change orders need approval. This is where job costing becomes a management tool rather than a historical report.
Use the Results to Price and Manage Better
A completed job-cost report should lead to practical questions. Which type of work consistently produces the strongest margin? Are material allowances too low? Do certain jobs require more supervision than the estimate assumes? Are callbacks, rework, or warranty visits quietly reducing profit after the project is considered complete?
The answers may point to a pricing change, but not always. Sometimes the issue is purchasing, crew training, scheduling, scope control, or customer selection. For example, a contractor might learn that small jobs have good percentage margins but consume too much travel and administrative time. Another may find that larger projects are profitable only when deposits and progress billings are collected on schedule.
It also helps to distinguish between one-time problems and patterns. A single job can run over because of hidden site conditions. Five jobs with the same labor overrun likely indicate that the estimating standard needs attention. Good records make that distinction possible.
Common Mistakes That Hide Job Profitability
The most common problem is treating all costs as general operating expenses. If labor, materials, subcontractors, and equipment are not tied to jobs, the company may know its total profit but not the source of that profit or loss.
Another mistake is recording only bills received from vendors. Credit-card purchases, employee reimbursements, inventory pulled from stock, and owner-paid expenses can all belong to a job. Leaving them out makes a project appear more profitable than it really was.
Owners also sometimes confuse cash received with revenue earned. Deposits and progress payments affect cash flow, while job profitability depends on the value of work performed and the costs incurred. Your bookkeeping method and reporting needs may vary based on your tax setup and financial reporting practices, but management reports should clearly show what has been billed, collected, spent, and committed.
Finally, avoid waiting until year-end to clean up job costs. By then, the opportunity to correct a bid, pursue a change order, or address a purchasing issue has usually passed. Timely, reconciled books matter because job reports are only as reliable as the transactions behind them.
How to Calculate Job Profitability
Job costing becomes most useful when you turn the numbers into a clear profit calculation for each job. Work through it in two stages: gross profit first, then net job profit after overhead.
Step 1: Find gross profit before allocating overhead
Once direct costs are recorded, calculate gross profit:
Job revenue – direct job costs = gross profit
For example, assume a $28,000 project had $9,000 in materials, $5,200 in fully loaded labor, $3,500 in subcontractor costs, and $800 in rentals, permits, and delivery fees. Total direct costs are $18,500.
The job’s gross profit is $9,500:
$28,000 – $18,500 = $9,500 gross profit
The gross profit margin is calculated this way:
Gross profit / job revenue x 100 = gross profit margin
In this example, $9,500 divided by $28,000 equals a gross profit margin of roughly 34%. That number is useful, but it is not yet the final answer to whether the job made money for the business.
Step 2: Account for overhead to find true job profit
Overhead includes the costs required to operate the business whether one job is active or ten are active. Common examples include office payroll, bookkeeping, software, insurance, advertising, phones, vehicles not assigned to one job, rent, utilities, licenses, and general management time.
These costs do not always fit neatly onto a single customer invoice, but every job needs to contribute toward covering them. If jobs consistently produce gross profit but do not generate enough gross profit to cover overhead, the company can stay busy and still struggle financially.
A simple way to allocate overhead is to calculate an overhead rate based on a meaningful driver. For a labor-focused service business, direct labor hours may be the best driver. For a materials-heavy contractor, revenue or direct costs may make more sense. There is no single right method for every business. The useful method is one that reflects how your business actually uses resources and is applied consistently.
Suppose your annual overhead is $240,000 and your team has 6,000 productive billable labor hours per year. Your overhead recovery target is $40 per productive hour. If the example job used 160 total crew hours, it should carry $6,400 in allocated overhead.
The true job profit becomes:
Gross profit – allocated overhead = net job profit
$9,500 – $6,400 = $3,100 net job profit
That is an 11% net job profit margin, not 34%. Both figures matter. Gross margin helps assess the direct execution of the job. Net job profit shows how much the work contributed after supporting the business that delivered it.
Accurate job profitability depends on clean books underneath it. For the broader foundation, including separating finances, cash flow, and the core reports, see our guide to bookkeeping for contractors.
Make Job Costing a Regular Operating Habit
Contractors do not need a large accounting department to gain useful job-costing insight. They need a defined setup, consistent source documents, accurate payroll and expense coding, and a regular review rhythm. The work is worth it because better visibility supports better estimates, stronger margins, and fewer surprises when a project closes.
MilesP Bookkeeping helps contractors organize financial records and reporting around the questions owners need answered: where money is going, which jobs are producing profit, and what needs attention before a small issue becomes an expensive pattern. When you can see the real financial story behind each job, you can lead the next one with more confidence.

