Bookkeeping for Contractors: Track Job Costs and Profit

By Billy Eldridge, MBA· ·5 min read ·Bookkeeping Basics
Contractor in a hard hat reviewing job costs on a tablet at a pickup truck on a construction site

Bookkeeping for contractors comes down to one habit: tag every dollar that comes in or goes out to the job it belongs to. When each material receipt, labor hour and subcontractor bill is attached to a specific project, you can see which jobs made money and which ones only kept you busy. Add monthly bank reconciliations and a clean split between business and personal spending, and your books become something you can bid from, borrow against and get bonded on.

Why Contractor Books Are Different

One profit and loss report rarely tells a contractor the whole story. You might have three jobs running, a deposit in from a fourth, and materials on a trailer for a fifth.

If all of that lands in one pile, the company total can look fine while one job quietly loses money. Job costing is how you pull the pile apart.

Billy Eldridge, who runs BDE Bookkeeping Solutions, kept the books for a family concrete construction company for years. Whether it’s concrete, framing, HVAC or roofing, the money is in the jobs, so the books need to be organized by job.

Job Costing Basics in QuickBooks Online

QuickBooks Online has a Projects feature built for this. According to Intuit, Projects is available on QuickBooks Online Plus and Advanced. Each project is tied to a customer and gathers that job’s estimates, invoices, bills and expenses in one place.

Set up one project per job

Create a project for each job, not just each customer. A general contractor you work for all the time might give you five jobs a year, and you want to see each one on its own. If your company file wasn’t built with this in mind, a proper QuickBooks setup makes everything after it easier.

Tag costs as you record them

When you enter a bill, check or expense, pick the project in the Customer/Project field. That one step is the whole system. Skip it, and the cost lands in the company total with no job attached.

Once costs are tagged, the project reports show profit margin for each project, time cost by employee or vendor, and unbilled time and expenses. On Advanced, you can also compare your estimate to what the job actually cost.

Materials vs. Labor vs. Subcontractors

Knowing what made up a job’s cost is what helps you bid the next one. Keep three buckets separate:

  • Materials: concrete, lumber, shingles, ductwork and job-specific rentals.
  • Labor: your own crew’s wages, tracked by time entries so hours land on the right project.
  • Subcontractors: outside crews you pay to do part of the work.

Picture a spreadsheet with one row per job and three columns of cost. If labor on a job runs well over your estimate, you know where to look when you price similar work. Labor costs start in payroll, so it helps when your payroll support and your job costing work from the same records.

Collect W-9s Before You Pay Subs

Get a signed Form W-9 from every subcontractor before the first payment. It gives you their legal name and taxpayer ID, which you need if they require a Form 1099-NEC at year end.

The threshold changed recently. According to the IRS page Am I required to file a Form 1099 or other information return?, it is $600 for payments made before 2026 and $2,000 for payments made in 2026, with inflation adjustments after that. Not every payee needs a 1099, so ask your tax preparer which subs do.

Progress Billing and Retainage in Plain English

Progress billing

Bigger jobs are often billed in stages: a share when the footings are poured, more at framing, the rest at completion. QuickBooks Online calls this progress invoicing. You split an accepted estimate into several invoices as the work moves along, and each one links back to the original estimate.

Retainage

Retainage is money the customer holds back from each progress payment until the job is finished and accepted. You’ve earned it, but you won’t see it for a while.

The risk is that it gets forgotten. Record it so it shows as an amount still owed to you, and review it at the end of every job. The same applies if you hold retainage from your own subs. A steady follow-up routine, like the one in our post on getting customers to pay invoices on time, keeps that money from slipping through the cracks.

Keep Business and Personal Separate

Run all job spending through a business bank account and business card. When truck fuel, the supply house run and family groceries all hit the same card, someone has to sort them out later, and job costs get muddy.

If you pay a business expense personally, note the job name and reimburse yourself from the business account.

Managing Cash Flow Between Jobs

Contractors often pay for materials and labor weeks before the customer pays them. Add retainage and slow-paying general contractors, and you can be profitable on paper and still short on cash. A few habits help:

  1. Ask for deposits on jobs where materials are a big share of the cost.
  2. Send progress invoices the day each stage is done, not at month end.
  3. Watch what customers owe you and what you owe suppliers, by job.
  4. Set aside cash in good months for the gaps between jobs.

Why Reconciled Books Matter for Bids, Bonding and Loans

Reconciling means matching your books to your bank and card statements every month, so you know the numbers are complete.

  • Bids: real job cost history is your best guide for pricing the next job.
  • Bonding: the SBA says that to use its surety bond program, you must meet the surety company’s credit, capacity and character requirements. Clean financials make that conversation easier.
  • Loans and equipment financing: lenders usually ask for financial statements, and statements built on unreconciled books raise questions.

If your books are months behind, bookkeeping cleanup and catch-up can get them current before you need them.

Frequently Asked Questions

Which QuickBooks Online plan do I need for job costing?

Intuit lists Projects on QuickBooks Online Plus and Advanced. Advanced adds project estimates and estimate-versus-actual tracking.

Do I need a W-9 from every subcontractor?

It’s good practice to get one before the first payment, since it gives you the name and taxpayer ID needed for a Form 1099-NEC. Your tax preparer can tell you which subs actually need a 1099.

What is retainage?

Retainage is part of each progress payment that the customer holds back until the job is complete. It’s still money owed to you, so track it until it’s collected.

Does BDE Bookkeeping Solutions file my taxes or 1099s?

No. BDE does not prepare business tax returns or file 1099s. BDE keeps your books organized and reconciled, which gives your tax preparer cleaner records to work from.

If you’d rather spend your time on job sites than on receipts, monthly bookkeeping starts at $119/month. You can also start with a free bookkeeping review — Billy goes over your books and tells you what he sees and what he would do to fix them.

Keep reading