A contractor can be busy every day of the year and still not know which jobs made money. The bank balance looks fine one month and tight the next. A big project wraps up and somehow there is less cash than when it started.
That is usually not a sales problem. Many times it is a books problem. Bookkeeping for Contractors is different from bookkeeping for a shop or an office business. You pay for labor and materials up front, bill in stages, and pay some bills after the job is done.
Here is the short answer. Good contractor bookkeeping tracks three things a standard setup usually doesn’t need: the cost of each job, the retainage you are still owed, and the timing gap between paying out and getting paid.
Why is contractor bookkeeping different?
A regular small business can get by with one or two income streams and a fairly short list of expenses. A contractor usually can’t do that because of the following three reasons:
- Every job is its own little business. It has its own budget, labor, materials, and subs. Lump them together and you can’t tell a winner from a loser.
- Billing happens in stages. Progress billing means revenue lands in pieces, not when the work is “done.”
- Part of what you earn is held back. Retainage means a slice of each payment sits with the owner or general contractor until the job closes.
What is job costing and why does it matter?
Job costing means tagging or classifying every cost to the job it belongs to: labor hours, materials, equipment, permits, and subcontractor bills. Most accounting software can do this. QuickBooks Online’s Plus and Advanced plans, for example, let you assign each bill, check, or expense line to a project.⁵ However, it only works if every bill and timesheet actually get tagged.
Once costs are tracked by job, you can run a simple report for each one:
| Line | What it tells you |
|---|---|
| Contract amount (plus approved change orders) | What the job should bring in |
| Costs to date, by category | Where the money has gone so far |
| Billed to date | What you have invoiced |
| Gross profit by job | Whether this job is worth repeating |
That last line is where good decisions come from. If kitchen remodels clear a healthy margin and small repairs lose money once you count drive time, your bids should change. Without job costing, you are just guessing at pricing.
Change orders matter here too. Extra work that never makes it onto an approved change order is work you did for free. Log every change order against the job the day it is approved.
What is retainage and how do you track it?
Retainage is the percentage of each progress payment the owner or general contractor holds back until the work is finished and accepted. It protects the person paying. It also means your books can show a profitable job while your bank account says otherwise.
Here is a made-up example to show the effect. On a $100,000 job with 5% retainage, $5,000 stays with the owner until closeout. Your profit report counts it. Your checking account doesn’t.
For public construction contracts in Virginia, the law sets a limit. Under the Virginia Public Procurement Act, a contractor on progress payments must be paid at least 95% of the earned sum when payment is due, with no more than 5% retained. A subcontract on a public project that provides for similar progress payments is covered by the same rule.¹ Private contracts set their own retainage terms, so read yours before you sign.
On the bookkeeping side, retainage should be tracked as its own receivable, by job, not buried in your general accounts receivable. That way:
- You know exactly how much is owed to you at closeout.
- You remember to bill for it. Retainage that nobody tracks is easy to forget.
- Your cash forecast doesn’t count money you can’t touch yet.
How do contractors manage cash flow?
Contractors fund the work before the customer pays for it. Payroll goes out every week or two. Suppliers want payment on their terms. Progress payments arrive on the owner’s schedule, minus retainage.
A few habits close that gap:
- Bill on schedule, every time. A late progress invoice is a late payment.
- Match billing to costs. If you have spent 60% of a job’s budget but billed only 40%, you are financing the owner’s project.
- Look 60 to 90 days ahead. List upcoming payroll, supplier bills, and expected payments by week. Surprises shrink when you can see them coming.
- Reconcile monthly. A cash forecast is only as good as the books under it. If you are months behind, a catch-up bookkeeping project comes first.
What do you owe the IRS for subcontractors?
Most contractors pay subs, and the IRS paperwork starts the day you hire them.
- Get a Form W-9 before the first payment. If a payee doesn’t give you a correct taxpayer ID, you are generally required to withhold 24% of payments as backup withholding.²
- The 1099-NEC threshold changed this year. For payments made in 2026, you report payments to a non-employee of $2,000 or more. For payments made before 2026, the threshold was $600.³ You must also file a 1099-NEC for anyone you backup-withheld from, no matter the amount.³
- Make sure a “sub” really is a sub. Treating someone as a contractor when the IRS would call them an employee is expensive to fix later. Our post on 1099 vs. W-2 worker classification breaks down the difference.
Does a long-term contract change how you report income?
It can. How a contractor reports income for tax purposes can depend on how long a contract runs and how large the business is. The federal rules for long-term contracts sit in section 460 of the Internal Revenue Code.⁴ That section includes an exception for certain construction contracts expected to be completed within two years, which also depends on a gross receipts test.⁴ This is not a do-it-yourself call. Talk it through with your tax preparer before year-end, and bring job-level numbers to that meeting.
What should a contractor fix first?
If your books feel out of control, start here:
- Set up every active job in your accounting software.
- Tag every bill and timesheet to a job going forward.
- Pull retainage out into its own receivable, by job.
- Collect a W-9 from every sub you’ve paid this year.
- Reconcile bank and credit card accounts every month.
Contractor bookkeeping services in Richmond, Chesterfield, and Midlothian
P&L Business Solutions provides monthly bookkeeping for small businesses in Richmond, Chesterfield, and Midlothian, Virginia. Our bookkeepers keep your books current and reconciled, so your numbers are ready at tax time. Our bookkeeping pricing page shows what ongoing work costs, and our business tax filing services can work from those same books.
Call 804-561-1600 or book a time to talk it through.
- Code of Virginia § 2.2-4333, “Retainage on construction contracts.” law.lis.virginia.gov
- Internal Revenue Service. “Backup withholding.” irs.gov
- Internal Revenue Service. “Am I required to file a Form 1099 or other information return?” irs.gov
- 26 U.S.C. § 460, “Special rules for long-term contracts.” law.cornell.edu. See also IRS Publication 538, “Accounting Periods and Methods.” irs.gov
- Intuit. “Add existing expenses to a project in QuickBooks Online.” quickbooks.intuit.com