Trade guide

Bookkeeping for General Contractors

General contracting is the most complex bookkeeping case in the trades. You are billing against draw schedules, holding retainage from subs while clients hold it back from you, tracking a dozen open jobs at once, and cutting 1099s to a rotating cast of subcontractors. Generic bookkeepers consistently get the revenue wrong, the receivables wrong, and the job margins wrong. Here is how trade-native bookkeeping handles a GC operation.

Quick answer
  • Retainage held by the owner is not collected revenue. It sits in its own receivable account until the project closes out and the funds actually clear.
  • Progress billing on a draw schedule means revenue is earned in stages. Your books need to reflect what has been billed versus what has been completed so over-billing and under-billing are visible every month.
  • Work in Progress tracking shows open job balances: costs incurred, amounts billed, and the gap between them so you and your CPA are never guessing at the end of the year.
  • High-volume subcontractor management means W-9s collected up front, payments tracked by sub all year, and 1099 totals ready to confirm in January, not scramble for.

Why general contracting books break with a generic bookkeeper

A single-trade shop has one revenue stream and one primary cost type. A GC has a schedule of values, multiple active jobs with different completion percentages, retainage withheld on both sides, change orders that shift scope mid-job, and a subcontractor roster that changes project to project. A generalist bookkeeper typically books every draw as revenue the day it hits the bank, ignores retainage as a separate item, and has no job-level view at all. The result is books that overstate revenue, misstate receivables, and give you no visibility into which jobs are actually making money.

  • Draw receipts split correctly between earned revenue and retainage held
  • Subcontractor invoices matched against lien waivers before cost is posted
  • Change orders captured as scope adjustments, not surprise line items at job close
  • Materials, direct labor, and sub costs separated by project using Class or Location
  • Permit fees, inspection costs, and bonding expenses tracked against each job

Retainage: the line item most GC books get wrong

Retainage is the percentage an owner holds back from each payment application until the project reaches substantial completion. It is not income you have earned and collected. It is a receivable that stays open until the owner releases it. At the same time, when you hold retainage back from your subcontractors, that is a payable you owe them at closeout. Generic bookkeepers routinely book both sides of retainage as if cash had changed hands, which overstates cash receipts, understates outstanding receivables, and creates a reconciliation nightmare at job close.

We set up dedicated retainage receivable and retainage payable accounts in QuickBooks so every payment application is split correctly from day one. The balance on each account ties to the open job list, and nothing falls through the cracks at project closeout.

Progress billing, draw schedules, and WIP

On a fixed-price or AIA-style contract, you bill against a schedule of values: a line-by-line breakdown of what each portion of the work is worth. Each payment application shows how much of each line item is complete, how much has been billed to date, and how much retainage has been held. Booking a draw as a lump-sum deposit ignores all of that structure.

We track your open jobs so the books show costs incurred versus amounts billed on each project. That gives you a Work in Progress view: jobs where billings are ahead of costs (over-billed, which is a liability) and jobs where costs have outrun billings (under-billed, which is a receivable). This structure is what your CPA needs at year end and what you need every month to spot a job going sideways before it closes.

Job costing across a multi-trade project

Every GC project has costs from multiple sources: your own crew, direct material purchases, owned equipment, and a stack of subcontractors covering concrete, framing, mechanical, electrical, drywall, and finish trades. We set up Class or Location tracking in QuickBooks so every cost hits the right job and the right category. At the end of each month you see gross margin by project, not just a company-wide number. On the Crew plan and up, that job-level view is built into every monthly close. Complex multi-entity GC structures are scoped on the Builder plan.

Subcontractors, W-9s, lien waivers, and 1099s at scale

A GC on an active commercial project may pay twenty or more subcontractors in a single month. Each one needs a W-9 on file before the first check goes out, a conditional lien waiver matched to each payment, and a running payment total tracked through the year. Waiting until January to sort out which subs crossed the 1099 threshold is a compliance problem and a relationship problem, because chasing missing tax IDs from subs who have moved on is painful.

We collect and log W-9 status for every sub as they are added, track payments through the year in QuickBooks, and have 1099 totals ready to confirm well before the filing deadline. Full 1099 preparation and filing support is included on the Shop plan.

Change orders and margin protection

Change orders are where GC margins disappear if the books are not keeping up. An approved change order increases the contract value and may add costs immediately. An unapproved change order adds cost with no corresponding revenue until it is executed. We track approved change orders as contract adjustments and flag pending ones so your open job balances reflect what is actually under contract, not just the original bid.

What most GC bookkeeping gets wrong

Retainage counted as collected revenue

The single most common GC bookkeeping error. The owner holds back a percentage on every draw. That held amount is a receivable, not cash in hand. Booking it as revenue overstates income, misleads your cash position, and creates a mess at job close when the retainage finally releases.

No WIP or over/under-billing visibility

On a long-duration project, the gap between what you have billed and what you have actually completed is a real number with real consequences. Overbilling is a liability you may have to make good on. Underbilling is a receivable you are not collecting fast enough. Without a WIP schedule updated monthly, neither is visible until it becomes a problem.

Change orders dropped into miscellaneous income

A change order is a contract amendment. It has its own scope, cost, and margin. Booking it as miscellaneous income or leaving it unrecorded until the job closes masks whether the change was priced correctly and makes job-close reconciliation significantly harder.

Subcontractor payments without lien waiver matching

Paying a sub without a conditional lien waiver in hand exposes the project to double claims. We track lien waiver receipt against each payment so nothing posts until the paperwork is in.

1099 cleanup in January

High-volume sub rosters make January 1099 cleanup painful. Missing W-9s, changed addresses, and subs who merged or changed entity type all take time to resolve under a hard filing deadline. The fix is W-9 collection at first engagement and running payment totals all year.

Which plan fits a general contracting business

  • Truck, solo operator, 1 to 2 accounts, simple job tracking
  • Crew, growing crew, job costing, FSM sync included
  • Shop, payroll, 1099 subs, AR/AP, priority close
  • Builder, multi-entity, high volume, custom mapping

Compare all plans & add-ons →

General contractor bookkeeping FAQ

Do you track retainage as a separate receivable and payable?

Yes. We set up dedicated retainage receivable and retainage payable accounts in QuickBooks so every payment application is split correctly. Retainage held by the owner sits as a receivable until it is released. Retainage you hold from subs sits as a payable until you release it at closeout.

Can you handle progress billing and AIA-style draw schedules?

Yes. We track each payment application against the schedule of values so the books reflect what has been billed to date versus what is still owed. That ties directly to the WIP schedule your CPA needs at year end.

What is a WIP schedule and do you prepare one?

A Work in Progress schedule shows the status of every open job: costs incurred, amounts billed, and the over- or under-billing balance. We build and update this as part of the monthly close on the Crew plan and up so you have a current job-by-job snapshot every month, not just at year end.

How do you handle job costing across multiple subcontractors and trades?

We set up Class or Location tracking in QuickBooks so every cost, whether it is your own crew, a material purchase, or a subcontractor invoice, hits the right job and the right cost category. You see gross margin by project every month on the Crew plan and up.

Can you manage high-volume 1099 subcontractors?

Yes. We track W-9 status for every sub at the time of engagement, log payments through the year, and have 1099 totals ready to confirm before the filing deadline. Full 1099 preparation and filing support is included on the Shop plan.

How do change orders get recorded?

Approved change orders are recorded as contract amendments that update the job revenue and cost budget. Pending change orders are flagged separately so open job balances reflect only what is under executed contract. That keeps your job margins and receivables accurate as the project evolves.

Do I keep my QuickBooks file?

Always. We work inside your own QuickBooks Online subscription. If you ever leave, you keep the file and a clean set of workpapers. No proprietary ledger, no hostage data.

My books are behind and year end is coming. Can you catch up?

Yes. Our 6-month prepaid option includes a catch-up cleanup so you start current. We scope the backlog up front so there are no surprises.

Books built for general contracting work

Trade-native categories, job costing, and a CPA-reviewed close by the 15th. You keep your QuickBooks file.

100% Contractor FocusCPA-Reviewed Monthly ClosesBooks by the 15th GuaranteeClass-Preservation SLAYou Own Your QuickBooks FileFSM-to-QuickBooks Sync100% Contractor FocusCPA-Reviewed Monthly ClosesBooks by the 15th GuaranteeClass-Preservation SLAYou Own Your QuickBooks FileFSM-to-QuickBooks Sync