Bookkeeping for Home Builders: How to Track Job Costs, WIP, and Cash Flow
Ressio Insights/Bookkeeping for Home Builders: How to Track Job Costs, WIP, and Cash Flow

Bookkeeping for Home Builders: How to Track Job Costs, WIP, and Cash Flow

Home builders lose margin in the gap between job costs and month-end books. How job costing, WIP reporting, and draw schedules keep a project's true cost visible.

Ressio Staff

Ressio Staff

October 9, 2026

TL;DR: Bookkeeping for home builders is not the same discipline as bookkeeping for a typical small business, because a builder's real unit of profit is the job, not the calendar month. Track cost by cost code and job, recognize revenue on a percentage-of-completion basis, run a WIP report every period, and keep draw and retainage cash separate from actual profit. Get those right and the numbers on the screen finally match what's happening on the job site.

Why Bookkeeping for Home Builders Isn't Small-Business Bookkeeping

A retail shop or a consulting firm has one real question each month: did we make money? A single P&L, run on a normal schedule, answers it well enough.

A builder is running multiple businesses at once, one per active job. You can be profitable for the year while three of five active jobs are quietly bleeding money, and a monthly company-wide P&L won't tell you which three.

That's the core difference. Accounting for home builders has to answer "is this job on track" as often as it answers "is the company on track." The job, not the month, is the real unit of profitability, and everything else here follows from that.

A generalist bookkeeper builds books around the month, the rhythm most businesses run on. A builder's books need to run around the job, with the month as a secondary view.

Cost Codes and Job-Level Attribution

Job-level bookkeeping starts with cost codes: a label attached to every dollar, tying it to both a category of work and a specific job.

Take a lumber delivery. In a generic chart of accounts, it's recorded as "materials expense," end of story. In builder bookkeeping, it's recorded as framing materials against Lot 14, one line in a job that already carries a foundation cost, a permit cost, and an unbilled line for the electrician.

That distinction answers the question a builder cares about: what did this specific house cost, against what was budgeted. Without job-level attribution, "materials expense" for the month tells you nothing about whether Lot 14 came in on budget or Lot 9 quietly ran over.

Most builders group cost codes into divisions that mirror the build: site work, foundation, framing, mechanical and electrical, plumbing, finishes, with labor and materials tracked separately within each. What doesn't change: every dollar gets a job and a category, or the numbers stop meaning anything.

Percentage-of-Completion: Why a Mid-Build Statement Means Anything

Here's the problem it solves. A builder signs a $450,000 contract, collects a deposit, and starts spending on site work and foundation.

If revenue is only recognized when cash is collected or the job closes, the books show a loss for months, then a sudden windfall at closing. Neither number describes what's happening on the job.

Percentage-of-completion recognizes revenue in proportion to how much of the job is done, most commonly measured by costs incurred to date against total estimated cost. Spend 30 percent of the projected job cost, recognize roughly 30 percent of the contract revenue. The statement now tracks the build instead of the calendar, and a builder isn't guessing at profitability until the job closes and it's too late to correct course.

The right method depends on the business's size and how contracts are written. What matters here is why it exists: so a statement pulled in month four of an eight-month build tells you something true.

WIP Reporting: The Builder's Real Balance Sheet

A work-in-progress, or WIP, report is where percentage-of-completion gets checked against reality. For every open job, it compares what's been billed to the client so far against what's been earned based on percent complete.

When billed exceeds earned, the job is overbilled: the builder has collected ahead of the work performed, and that cash is an obligation, not profit in the bank. When earned exceeds billed, the job is underbilled, work is done that hasn't been invoiced, its own cash flow problem.

WIP resultWhat it meansHow to treat it
OverbilledBilled is more than earnedAn obligation, not profit
UnderbilledEarned is more than billedWork done but not yet invoiced

Run every period, monthly at minimum, a WIP report is the closest thing a builder has to a real-time balance sheet on active work. It's also usually the first document a lender or bonding company asks for, because it's the fastest way to see whether a project pipeline is healthy or quietly underwater.

Draw Schedules: A Draw Landing in Your Bank Is Not Profit

This is the trap that catches builders who otherwise have solid books: a draw hits the account, and it feels like income.

A draw is a payment released against a milestone already completed, and usually costs already spent to get there. It isn't new revenue, it's reimbursement, often partial, for work already financed out of pocket. Booking the full draw as profit on arrival overstates how the job is doing, sometimes badly enough to mask a job that's losing money.

The correct treatment ties the draw back to percentage-of-completion and the WIP report rather than treating it as a standalone event. If the draw matches earned revenue for that stage, the job is tracking. If it's larger than the work performed, that gap is a liability, not a windfall, and it belongs on the books that way rather than spent as margin.

Builders who track draws this way stop getting surprised near the end of a job, when the final milestones are smaller than the cash left to collect.

Retainage: Work Completed, Billed, and Withheld

Retainage is a percentage of each payment, often 5 to 10 percent, that a client or lender holds back until the project is complete or a warranty period runs out. It gives the paying party leverage to make sure the last details get finished.

From a bookkeeping standpoint, retainage is work completed and billed but not yet collectible. It shouldn't disappear into general accounts receivable, or get treated as uncollected the way a normal past-due invoice would. It needs its own line, a retainage receivable, because it runs on its own timeline tied to project completion, not a normal 30- or 60-day cycle.

Ignore this and cash flow projections run short near the end of a job, because retainage often releases well after the work that earned it, and year-end financials can overstate how much revenue was collected.

Chart of Accounts Structure for a Builder

A builder's chart of accounts has to support job-level reporting on top of normal financial reporting. A few pieces show up in almost every builder's setup:

  • Job cost sub-accounts under each major category (materials, subcontractors, permits, equipment), pulled either by category across jobs or by job across categories.
  • A WIP asset account, tracking the gap between costs incurred and revenue recognized.
  • Overbilling and underbilling accounts, holding the difference identified in the WIP report.
  • Retainage receivable, separate from standard accounts receivable.
  • Retainage payable, if the builder holds back retainage on subcontractors.

None of this replaces a normal chart of accounts, it sits alongside it, and it's the part a generic setup usually leaves out, which is why so many builders bolt job costing on after the fact instead of building it in.

Production Builders vs Custom Builders

The mechanics above apply to every home builder, but the emphasis shifts with the business model.

Bookkeeping for Production Home Builders

Bookkeeping for production home builders is a breadth problem. A production builder is running a limited set of repeated plans across a community, sometimes dozens of homes at once, and the value of the books comes from comparability across jobs, not depth on any single one.

The question that matters most: is Lot 14's framing cost in line with Lot 9's, on the same plan, and if not, why. That comparison only works if cost codes are applied consistently across every job in the community, which makes standardized coding more important than granular detail on any one house.

Bookkeeping for Custom Home Builders

Bookkeeping for custom home builders runs the other direction. There's no comparable second job to check a number against, so the discipline has to come from depth on the one project in front of you.

The biggest risk on a custom build is change orders quietly eroding margin. Each one can look small: a countertop upgrade, an added window, a wall moved six inches.

Tracked loosely, none feel significant. Tracked against the original budget by cost code, the cumulative effect on a single home's margin is often the real story of whether that job made money.

We covered this in more depth in how builder bookkeeping helps custom home builders.

Where General Accounting Software Falls Short

Most general accounting software for home builders handles the basics: invoicing, bill pay, bank reconciliation, a standard P&L. What it usually doesn't do natively is job costing at this depth, percentage-of-completion recognition, or a WIP report that updates with costs and billings.

Builders often end up managing job costs in a spreadsheet, reconciled by hand, a process that breaks down quietly as job volume grows, until a job that looked fine turns out to have been over budget for months.

The better approach is software built around the job as the core unit, not the transaction. In Ressio, we track budgets, costs, and change orders at the job level and sync them into your accounting system, so the project dashboard and the bookkeeper's numbers match. Our construction management software comparison covers how the major platforms differ on job costing, and our builder-focused platform overview covers how that job-level data connects back to the field.

In Ressio, a bill is entered once, against a job and a cost code, and our QuickBooks integration posts it to QuickBooks Online accounts payable with the vendor, amount, cost code and project already mapped. Cost codes map one-to-one to your QuickBooks Products & Services, so every cost lands in the right account without anyone retyping it.

Ressio synced to QuickBooks Online: a bill for Apex Framing #2241 at $18,400, a Draw 3 invoice for Baumann at $42,000 and a lumber yard expense at $3,210, each marked synced
The $18,400 framing bill and the draw 3 invoice are already in QuickBooks, posted from the job they belong to.

Invoices come from the same place. Each invoice is generated from the job budget with approved change orders and retainage already in the billable total, and it syncs to QuickBooks as a customer invoice when you send it.

Here is a hypothetical month-end for a builder with four jobs open. The framing sub's $18,400 bill went in against the framing cost code on one job the day it arrived, and draw 3 went out from that job's budget with its approved change orders in it, so both are already in QuickBooks.

When the bookkeeper sits down to build the WIP report, the Ressio budget already shows committed and actual cost on every cost code, and percent complete against billed on each cost item, the same comparison a WIP report is built on. The first week of the month goes on reading the numbers, not on typing them in.

Ressio percent complete against billed for framing, plumbing, cabinets and electrical, with framing and electrical flagged underbilled 15 percent
Percent complete against billed, per cost code: the same comparison the WIP report is built on, without rebuilding it.

The real test of any bookkeeping setup for builders: does cost code data flow from the field to the books, or is someone retyping it?

Want to see cost codes flow from the field to the books without retyping? Book a Ressio demo and see how job-level costs reach your accounting system.

The Takeaway

  • A builder's real unit of profitability is the job, not the month. Monthly statements can hide jobs that are losing money.
  • Cost codes attach every dollar to a specific job and category, which makes job-level reporting possible.
  • Percentage-of-completion is what makes a mid-build statement mean anything.
  • A WIP report, run every period, is the fastest way to see whether jobs are overbilled or underbilled.
  • A draw hitting the bank is reimbursement, not new profit. Treat any gap between draws and earned revenue as a liability.
  • Retainage is earned, billed, and outstanding money. It needs its own line on the books, tracked to its release date.
  • Production builders need consistency across repeated jobs. Custom builders need depth on the one job in front of them, especially around change orders.

Frequently Asked Questions

What's the difference between bookkeeping for home builders and regular small business bookkeeping?

Regular small business bookkeeping tracks income and expenses by month. Bookkeeping for home builders tracks cost by job, because a builder can be profitable for the year while losing money on one specific house. The job, not the month, is the unit that has to reconcile.

What is a cost code in construction bookkeeping?

A cost code ties every transaction to both a category of work and a specific job or lot. A lumber delivery isn't a generic materials expense. It's framing materials against Lot 14, so the builder can see what that house cost.

What is percentage-of-completion accounting and why does it matter for a builder?

It recognizes revenue in proportion to how much of a job is finished, usually measured by costs incurred against total estimated cost. Without it, a mid-build statement just shows whatever cash moved that month, which says little about whether the job is profitable.

What is a WIP report and how is it different from a profit and loss statement?

A work-in-progress, or WIP, report compares billed amounts to earned amounts on every open job, showing whether each is overbilled or underbilled relative to work completed. A standard P&L can't show this, because it treats the business as one operation instead of a portfolio of jobs at different stages.

Is a construction draw considered profit when it lands in the bank?

No. A draw is a payment against work already performed and money already spent, not new income. Treating it as profit on arrival is one of the most common ways builders overstate how healthy a job is.

What is retainage and how should it be recorded?

Retainage is a percentage of each payment, often 5 to 10 percent, held back until the project is complete or a warranty period ends. It should sit on the books as its own receivable, earned but not yet paid, rather than folded into general accounts receivable.

Ready to see how job-level cost tracking connects to your books? Book a free demo and see how it works for your builds.

One Connected System.

See Ressio in a free demo. No pressure, no lengthy sales cycle — just a real look at how it works for your business.