
Job costing is the process of assigning every dollar of labor, materials, subcontractors, and overhead to a specific job and cost code so you know — before the project closes — whether you're earning or burning margin. For custom home builders carrying 20.7% gross margins (NAHB Eye on Housing, full-year 2023), a single miscoded phase can erase the profit before you ever see it.
What job costing actually means — and why it is not just bookkeeping
Most builders think of job costing as a bookkeeping task. It is not. It is a management tool that tells you, in real time, whether a job will finish in the black or the red — while you still have time to act.
The mechanics are simple: every transaction gets tagged to a job number and a cost code. Cost codes divide the work into phases — site prep, foundation, framing, mechanical, finish — so you can see where a project is over or under budget at a granular level, not just in total.
What makes it hard is discipline. A $1.2M custom build might have 300 individual transactions across 18 months. Without a system that enforces job-and-code tagging at the point of entry, you end up with lump sums in the wrong accounts and a P&L that lies.
The three numbers every custom home builder must track every week
You do not need 40 reports. You need three numbers, reviewed every week, for every active job. These are the same metrics that separate the 12.0% net-margin "Best in Class" firms from the 6.7% average, according to the CFMA 2025 Construction Financial Benchmarker.
- Cost-to-date versus budget by phase — what you have spent in each cost code versus what you estimated. Variance here is your early warning signal.
- Earned value — the percentage of the contract you have actually completed, multiplied by the contract price. If earned value is behind cost-to-date, you are losing margin in real time.
- Overhead absorption rate — the dollar amount of indirect overhead (insurance, equipment depreciation, office, vehicles) assigned to this job so far, expressed as a percentage of direct costs. If this rate drifts above your bid assumption, your net margin is already shrinking.
Residential remodelers averaged 29.9% gross and 6.3% net in full-year 2024 per the NAHB Remodelers' Cost of Doing Business Study. That 23-point spread between gross and net is almost entirely overhead and owner compensation. Tracking your overhead absorption rate weekly is the only way to know whether that spread is holding on a live job.
How to set up job costing in QuickBooks for a custom home build
QuickBooks Online (QBO) handles job costing through its Projects feature (available on the Plus and Advanced plans). Buildertrend users get a parallel cost code structure built into the platform. Either way, the setup logic is the same.
- Create one project per job. In QBO, go to Projects → New Project. Name it with the lot number or address — "123 Ridgeline Dr" — not a client name that changes at closing.
- Build your cost code list before the first invoice arrives. Use a consistent numbering scheme: 01 = Site Work, 02 = Foundation, 03 = Framing, 04 = Roofing, 05 = Rough Plumbing, 06 = Rough Electrical, 07 = HVAC, 08 = Insulation, 09 = Drywall, 10 = Finish Carpentry, 11 = Cabinets and Counters, 12 = Flooring, 13 = Exterior, 14 = Landscaping, 15 = General Conditions.
- Enter the budget by cost code before breaking ground. QBO lets you set a budget per project. Enter your estimated cost for each phase. This becomes the denominator in your variance calculation.
- Tag every transaction at entry — not at month-end. When a subcontractor invoice arrives, it gets coded to the job AND the cost code the same day. Batching this to month-end means you are always looking at stale data.
- Run the Project Profitability report weekly. In QBO, Projects → select the job → Profitability. This shows budgeted versus actual by cost code. Export it to Excel if you want to model earned value alongside it.
Buildertrend users have an advantage here: the platform connects budget, purchase orders (POs), and subcontractor invoices in one flow, so the cost code tag happens at the PO stage rather than the invoice stage — one step earlier in the process.
What cost codes should a custom home builder use — and which ones hide the most money
The Construction Specifications Institute (CSI) MasterFormat divides construction into 50 divisions. That is too granular for most custom builders. A 15-code structure (like the one above) handles 90% of the tracking need. But three cost codes hide the most money, and they deserve special attention.
| Cost Code | Common Mistake | What Gets Lost | Fix |
|---|---|---|---|
| 03 — Framing | Mixing framing labor with framing lumber in one line | You cannot tell if labor or materials ran over | Split into 03a (Labor) and 03b (Materials) at setup |
| Sub invoices — all phases | Coding to a generic "Subcontractors" expense account | Phase-level variance disappears entirely | Every sub invoice gets the phase code, not the vendor category |
| 15 — General Conditions | Leaving equipment rental, dumpsters, and temp utilities in overhead | Overhead rate is inflated; job cost is understated | Assign job-specific general conditions to the job, not the company |
The general conditions error is the most expensive. Equipment rental, portable toilets, temporary power, and site supervision are direct costs of a specific job — not company overhead. When they land in overhead, your overhead rate looks higher than it is, your job margin looks lower, and you underbid the next job to compete.
Three job costing examples — a spec home, a custom build, and an addition
Theory only takes you so far. Here are three illustrative walkthroughs using realistic project sizes and the cost code structure above. These are framed as examples — your own numbers will differ — but the ratios and the failure modes are drawn directly from the benchmarks cited in this post.
The job you think lost money might have broken even. The job you think broke even might have lost money. You will never know which is which until every dollar has a cost code.
How to allocate overhead to jobs without distorting your gross margin
Overhead allocation is where job costing gets genuinely hard. The goal is to spread indirect costs — insurance, vehicles, owner compensation, office rent, software — across jobs in proportion to the work those jobs actually consumed.
The two most common methods for custom builders:
- Percentage of direct labor — multiply each job's direct labor dollars by a predetermined overhead rate. If your total annual overhead is $240,000 and your total direct labor is $800,000, your rate is 30%. Every dollar of direct labor on a job carries $0.30 of overhead. Simple, but it overstates overhead on sub-heavy jobs where you use little direct labor.
- Percentage of total direct costs — divide overhead by total direct costs (labor + subs + materials). This smooths the rate across job types and works better for custom builders who shift between self-perform and sub-heavy delivery.
The NAHB Eye on Housing data (full-year 2023) shows single-family builders averaging 20.7% gross and 8.7% net — a 12-point spread that is almost entirely overhead and owner compensation. If your gross-to-net spread is wider than 12 points, your overhead rate is likely too high or it is being applied inconsistently across jobs.
The fix: calculate your overhead rate at the start of each fiscal year using prior-year actuals, apply it to every job at setup, then reconcile at year-end to see if the rate held. The reconciliation tells you whether you over-absorbed (collected more overhead than you spent — rare, good) or under-absorbed (jobs didn't cover overhead — common, bad).
At Salisbury Bookkeeping, our fractional CFO team runs this reconciliation quarterly for construction clients, not just annually — because a year-end surprise on overhead absorption means 12 months of bids were wrong.
Why WIP tracking weekly — not monthly — is the real separator
A work-in-progress (WIP) schedule is a formal document that lists every active job, its contract value, its costs to date, its estimated costs to complete, and its over- or under-billing position. Most builders treat it as a month-end accounting task. The data does not support that cadence.
The CFMA 2025 Construction Financial Benchmarker reports that "Best in Class" construction firms average 12.0% net income before tax versus 6.7% for all respondents — a 5.3-point gap. Weekly WIP discipline is one of the primary operational differences between those two groups.
Here is what weekly WIP review catches that monthly review misses:
- A job that billed ahead of costs (overbilled) that is now burning through that cushion faster than expected
- A phase where a sub is on-site but the invoice hasn't arrived yet — so costs are understated today but will spike next week
- Material deliveries that were coded to a prior period's job by mistake
- Change orders that were approved verbally but not yet in the system — which means the job looks over budget when it's actually on track
Buildertrend and QuickBooks both support WIP exports. The discipline is the hard part, not the software. This is exactly why the fractional CFO service at Salisbury Bookkeeping runs a weekly WIP cadence for every construction client — not because the accounting requires it, but because the management does.
And for builders who want the monitoring automated, Top Builder AI is the six-agent system we built to automate workflows across every department of a contractor's business — its Financial Agent connects once to your QuickBooks and runs 30/60/90-day cash and margin tracking overnight, flagging cost overruns and overhead absorption variances the day they appear, with your team reviewing and approving every flag before action is taken.
What to do next — your four-step job costing audit this week
You do not need a new system to start. You need a new habit applied to the system you already have. Here are four concrete steps to take this week.
- Pull your last closed job and map every transaction to a cost code. Even retroactively, this exercise shows you where your current coding breaks down — which lines are catching everything because they're too broad, and which phases have no entries at all because they were lumped elsewhere.
- Separate framing labor from framing materials in your chart of accounts. If you have one "Framing" line today, add "Framing – Labor" and "Framing – Materials" as sub-accounts. This single change surfaces the most common source of phase-level overruns.
- Set your overhead rate for the current fiscal year. Take your prior-year total indirect costs, divide by prior-year total direct costs, and you have your rate. Apply it to every active job's budget today. Compare it to what has been absorbed so far on each job.
- Block 30 minutes every Monday to run the Project Profitability report in QuickBooks or the Cost Report in Buildertrend. Review every job with more than $25,000 in remaining work. Flag any phase more than 5% over budget. Decide: change order, adjust crew, or accept the variance. Put it in writing.
Stop running your back office on screenshots and Slack pings.
Top Builder AI is six self-learning AI agents that plug into your ServiceTitan + QuickBooks — Booking & Dispatch that beat ServiceTitan's own AI, plus Financial, Inventory, Workforce & Documents it has no answer for. They get sharper every week on a leash (you approve every change), and the numbers stay locked — deterministic and audited. Built and installed by the developer who answers when you call — a direct line, not a ticket queue. Founding-25: a one-time $8,000 install locked for life, 30 days of free feature requests, board-ready or it's free.
From the team at Salisbury Bookkeeping — construction bookkeeping + fractional CFO for contractors. See how Salisbury Bookkeeping helps contractors like you →
Frequently Asked Questions
- What is job costing in construction?
- Job costing is the process of assigning every dollar of labor, materials, subcontractor invoices, and overhead to a specific job number and cost code so you can measure actual costs against your estimate phase by phase. It gives you the ability to see — while a job is still active — whether you are earning or losing margin, and in which phase the variance is occurring.
- What is a cost code in construction job costing?
- A cost code is a numbered label that identifies a specific phase or type of work within a project, such as 03 for Framing or 06 for Rough Electrical. Assigning every transaction to a cost code lets you compare actual spending in each phase against your budget rather than looking only at total job costs.
- How do I set up job costing in QuickBooks Online for a custom home build?
- In QuickBooks Online Plus or Advanced, go to Projects and create one project per job named by address or lot number. Build a consistent cost code list before the first invoice arrives, enter phase-level budgets at setup, and tag every transaction to both the project and the cost code at the time of entry — not at month-end. Run the Project Profitability report weekly to track variance by phase.
- How do I allocate overhead to individual jobs without distorting gross margin?
- Calculate your overhead rate at the start of the fiscal year by dividing total prior-year indirect costs by total prior-year direct costs. Apply that rate as a percentage of direct costs to every job's budget at setup. Reconcile the rate quarterly — not just annually — to catch drift, especially in an environment where construction inflation is running 4%–5% as of 2026 per the Americas Construction Industry Outlook.
- What is a WIP schedule and why does it matter for custom home builders?
- A work-in-progress (WIP) schedule lists every active job's contract value, costs to date, estimated cost to complete, and over- or under-billing position. The CFMA 2025 Construction Financial Benchmarker shows "Best in Class" firms average 12.0% net income before tax versus 6.7% for all construction respondents — weekly WIP review is one of the primary operational differences between those two groups.
- Which three cost codes hide the most margin on a custom home build?
- The three highest-risk cost codes are framing labor (which should be separated from framing materials), subcontractor invoices (which should be tagged to the phase they belong to, not a generic subcontractors line), and general conditions such as equipment rental and temporary utilities (which are direct job costs, not company overhead, and should be assigned to the job accordingly).
- What gross profit margin should a custom home builder expect?
- According to NAHB Eye on Housing (full-year 2023), single-family home builders averaged 20.7% gross profit margin and 8.7% net profit margin. The 12-point spread between gross and net is primarily overhead and owner compensation. Builders who track job costs at the phase level and apply overhead consistently tend to preserve more of that gross margin through to net.
- Can job costing software automate variance detection on active jobs?
- QuickBooks and Buildertrend both support phase-level cost tracking and can produce variance reports, but the monitoring still requires a person to pull the report and review it. Automated variance flagging — where the system monitors cost-to-budget ratios daily and surfaces overruns the day they appear — requires an additional layer, such as the Financial Agent in the Top Builder AI system, which connects to QuickBooks and runs that monitoring overnight with your team approving every flag before action is taken.
