By Daniel Jahn, CPA — Contractor’s Ledger
Most specialty trade contractors can tell you how much the company made last year. Very few can tell you which specific jobs drove that profit — and which ones quietly lost money.
That’s a job costing problem. And it’s one of the most expensive problems a contractor can have, because without job-level profitability data, every new bid is based on gut feel instead of actual performance.
This guide explains how job costing works, what needs to be set up correctly, and how to use job cost data to make better decisions.
What Is Job Costing?
Job costing is an accounting method that tracks revenues and costs at the individual job or project level, rather than just at the company level.
Instead of one big bucket called “Cost of Goods Sold,” job costing breaks your costs down by:
- Job (which project did this cost belong to?)
- Cost type (labor, materials, subcontractors, equipment, overhead)
- Phase or cost code (which part of the job — rough-in, trim, etc.)
The result is a job cost report that shows, for each project: what you estimated, what you actually spent, and the variance between the two.
Why Job Costing Matters for Trade Contractors
Better bids. When you know that your labor cost on commercial electrical rough-in consistently runs 8% over estimate, you can adjust your next bid accordingly. Contractors who don’t track job costs are always bidding on hope.
Early warning on over-budget jobs. A job cost report pulled mid-project can show you that material costs are running 15% above estimate while the project is still open. That’s time to recover — by reducing scope, accelerating billing, or having a change order conversation with the GC.
Identifying which work types are actually profitable. Many contractors are surprised to discover that the work type they do most of isn’t their most profitable. Job costing reveals the truth.
Bonding and prequalification. Larger GCs and surety underwriters increasingly want to see job-level profitability data. A contractor who can demonstrate consistent, documented profitability across completed jobs is a lower bonding risk.
The Building Blocks of a Job Cost System
1. Chart of Accounts Built for Construction
A general bookkeeper will set up your chart of accounts the same way they’d set up any small business. Revenue goes in one or two buckets. Expenses go in categories like “labor,” “materials,” “overhead.”
A construction-specific chart of accounts maps your costs to how you actually bid and build work. For a plumbing contractor, that might mean separate cost categories for:
- Labor (hours, rates, fringes)
- Materials (pipe, fittings, fixtures)
- Subs (licensed sub labor)
- Equipment (rented or allocated from owned fleet)
- Burden (payroll taxes, workers comp, insurance)
This structure makes your financial data usable for actual decision-making.
2. Cost Codes That Match Your Estimating
The most powerful job costing systems mirror the way you estimate. If your estimator breaks a commercial HVAC project into: underground, ductwork, equipment, piping, controls, and startup — your cost codes should match those same phases.
When your cost codes match your estimate, you can produce a report that shows, phase by phase, whether you’re over or under your budget. This is where job costing becomes genuinely useful rather than just an accounting exercise.
3. Consistent Cost Allocation
Job costing only works if costs get coded to jobs consistently. That means:
- Every invoice coded to a job when it’s entered, not weeks later
- Every labor hour allocated to the right job (often done through time cards or a simple time-tracking app)
- Every material purchase assigned to a project at the time of purchase
The biggest job costing failure isn’t poor software — it’s inconsistent cost allocation. If 30% of your costs end up in an “unallocated” or overhead bucket, your job cost reports don’t tell you anything useful.
4. Regular Job Cost Reviews
Job cost data has limited value if you only look at it after the job closes. The real power is in reviewing job cost reports for open projects — ideally monthly — so you can identify problems while there’s still time to address them.
A simple job cost review should answer:
- Is this job on budget?
- Are any cost categories running significantly over estimate?
- Has the scope changed but the contract value hasn’t been updated?
- Is there work performed that hasn’t been billed yet?
Estimated vs. Actual: The Core Job Costing Report
The most important job cost report compares estimated costs to actual costs, by category and phase, for each open project. Here’s a simplified example for a plumbing job:
| Cost Category | Estimated | Actual to Date | % Complete | Projected Final | Over/Under |
|---|---|---|---|---|---|
| Labor | $45,000 | $28,500 | 65% | $43,800 | Under $1,200 |
| Materials | $32,000 | $24,100 | 75% | $32,133 | Over $133 |
| Subs | $12,000 | $8,400 | 70% | $12,000 | On budget |
| Equipment | $4,000 | $3,100 | 78% | $3,974 | Under $26 |
| Total | $93,000 | $64,100 | — | $91,907 | Under $1,093 |
This report tells you the job is running slightly under budget overall, that materials costs are tracking a little high, and that labor is performing well. You can act on that information — or at minimum, not be surprised at the end.
Common Job Costing Mistakes
Not separating overhead from direct job costs. Overhead (rent, insurance, administrative staff, vehicle costs) shouldn’t all go directly to jobs. It should be calculated as a burden rate and allocated proportionally, or tracked separately and compared to revenue. Mishandling overhead distorts your job margins.
Only reviewing completed jobs. By then it’s too late to fix anything. Review job cost reports monthly for open projects.
Using a chart of accounts designed for non-construction businesses. A retail-style P&L with a single “COGS” line and “Payroll” expense tells you nothing about job profitability. The chart of accounts has to be built for construction.
Inconsistent coding. Materials purchased for Job A get coded to Job B. Labor from Job B’s crew accidentally gets allocated to Job C. These errors compound over time and make your job cost reports unreliable.
How Contractor’s Ledger Sets Up Job Costing
We build job costing systems for specialty trade contractors from the ground up. That means:
- Restructuring your chart of accounts for your specific trade
- Building cost codes that mirror your estimating structure
- Training your team on how to code invoices and time correctly
- Setting up reporting templates you can actually use
- Reviewing job cost reports with you monthly
For contractors who have been using a general bookkeeper with no construction experience, the difference between before and after is often dramatic. Within 60–90 days, you have data you can actually use to bid and manage work.
See our job costing service or get a free financial review.
Daniel Jahn is a licensed CPA and founder of Contractor’s Ledger, a construction accounting firm serving specialty trade contractors nationwide.
Related Resources: