Industry Bookkeeping
Contractor Accounting: A Beginner’s Guide
Contractor accounting connects the general ledger to jobs, cost codes, contracts, commitments, billing, and cash. Monthly profit alone cannot show which jobs created margin, used working capital, or accumulated unapproved work.
Contractor accounting connects the general ledger to jobs, cost codes, contracts, commitments, billing, and cash. Monthly profit alone cannot show which jobs created margin, used working capital, or accumulated unapproved work.
The useful unit of review is therefore both the company and the job.
Job costing is the foundation
Job costing assigns applicable labor, materials, subcontractors, equipment, permits, and other direct costs to the job and cost code under a documented policy. Capture the job reference at source when possible and review uncoded items before close.
Missing job references weaken margin analysis and often require later research through purchase orders, receipts, time records, and project documentation. Preserve those sources and assign an owner to unresolved coding.
Direct cost versus overhead
Direct costs are caused by a specific job and disappear if the job does not happen. Overhead continues regardless: the yard, the office, insurance, the estimator, the accounting software.
Gross margin measures revenue against direct cost. It tells you whether the work itself is priced correctly. Net margin measures what is left after overhead, and it tells you whether you have enough of the right work to carry the business. Contractors who track only one of these are missing half the picture, and it is usually the overhead half.
Overhead recovery
Every job needs to contribute to overhead. If you price on direct cost plus a markup without knowing what overhead requires, you can win every bid and still lose money across the year.
The mechanics are straightforward: total annual overhead, divided by an appropriate base such as direct labor hours or direct cost, gives a rate to apply to jobs. Whichever base you use, apply it consistently. Changing method mid-year makes job comparison meaningless, and comparison is the point.
Work in progress
Jobs spanning more than a month create a timing problem. You incur cost in one period and bill in another, so a month can show heavy cost and little revenue, or the reverse, without anything being wrong.
A work in progress schedule reconciles this by comparing cost incurred and revenue earned against amounts billed, job by job. It reveals over-billing, which flatters current results and creates a hole later, and under-billing, which understates performance and hurts cash. Both are invisible on a P&L.
Retainage
Retainage should remain separately identifiable from ordinary due amounts, with contract terms, release conditions, expected dates, and counterparty balances reconciled. The exact presentation depends on the contract and applicable accounting policy.
The monthly reports that matter
- Job cost report: budget versus actual by cost code, per open job
- Job profitability, for completed jobs, after overhead allocation
- Work in progress schedule
- Committed costs on open purchase orders
- Retainage schedule
- Financial statements on a close date you can rely on
If you receive only the last item, you have bookkeeping without contractor accounting.
The change order problem
Work performed on a verbal change order is cost incurred against revenue you may or may not be able to bill. Capturing the cost against the job immediately is not optional; whether and when the associated revenue can be recognized depends on your recognition method and the status of the approval, which is worth confirming rather than assuming.
Contractors who absorb change order costs into the original job without tracking them lose the ability to see how much unbilled work they are carrying.
Build the job master before posting
Create one approved job record with customer, contract, scope, original value, approved changes, billing method, project manager, start date, expected completion, tax treatment flags, and cost-code structure. Prevent duplicate job names and record who can open, change, or close a job.
Tie time, purchasing, subcontractor invoices, equipment, and expense claims to that record. Review uncoded and closed-job activity before the period is finalized.
Reconcile WIP, commitments, and billing
For open work, compare budget, actual cost, committed cost, approved contract value, approved change orders, billing, collections, retainage, and the accounting method used. Reconcile the job schedule to the general ledger instead of maintaining an independent spreadsheet total.
Separate operational measures from accounting recognition. Percent complete, earned revenue, billings, and over- or under-billing depend on the contract, facts, and reporting framework. Preserve the calculation and reviewer approval.
Control change orders and closeout
Record proposed, submitted, approved, rejected, and billed changes separately. Do not treat unapproved scope as certain revenue. Assign an owner to missing approval and show the related cost exposure in the job review.
At closeout, resolve remaining commitments, final invoices, retainage, warranty obligations, asset returns, and open disputes. Compare final margin with the approved estimate and retain the explanation for material variance.
Monthly contractor control checklist
- Job and cost-code references are complete
- Payroll and subcontractor costs reconcile to source records
- Open purchase orders and commitments are current
- WIP and billing schedules reconcile to the ledger
- Retainage and change orders remain separately visible
- Job forecasts show current cost to complete
- Completed-job margin is reviewed against estimate
Frequently asked questions
Do I need job costing for small jobs?
For high-volume short-duration service work, costing at the work-order level is usually sufficient and less burdensome than full job costing. The principle is the same: know which work makes money.
Why is my bank balance low when the P&L looks fine?
Common causes are under-billing on open jobs, retainage held, and costs incurred on work not yet invoiced. All three appear on a WIP schedule and none appear on a P&L.
How should I allocate overhead?
Pick a base that reflects what drives your overhead, most commonly direct labor hours, and apply it consistently. A consistent imperfect method beats an inconsistent precise one.
What should a contractor review before closing the month?
Review uncoded costs, payroll, subcontractors, commitments, approved changes, billing, retainage, WIP, and cost-to-complete estimates, then reconcile the job schedules to the ledger.
Should every expense be assigned to a job?
Assign costs when the source and policy support a job relationship. Keep true overhead separate and document the allocation method used for management reporting.
How should unapproved change orders be reported?
Track the scope, cost, requested amount, status, evidence, and owner separately. Recognition and billing depend on the contract, approval, facts, and applicable accounting policy.
Turn this guide into action