Home/The Deciphire Ledger/Bookkeeping for Contractors: A Practical Guide
Bookkeeping for the tradesBookkeeping for Contractors: A Practical Guide
The six things construction bookkeeping has to do that ordinary bookkeeping does not.
Most bookkeeping advice assumes you sell a product or bill by the hour. Construction does neither. You sell a promise to complete something, get paid in pieces over months, have money held back until the end, and carry costs across jobs that overlap.
That is why generic bookkeeping breaks here. The entries are not harder. There are just six things the books have to do that ordinary books never have to do at all.
1. Job costing that ties to the ledger
Every direct cost belongs to a job: labor, material, subcontractors, equipment, permits, and rework. Without that, the profit and loss can only tell you the company made money. It cannot tell you which job made it or which one gave it back.
The common failure is not the absence of job costing. It is job costing that lives in the estimating or project software and never reaches the accounting file. Two systems, two answers, and no reconciliation between them.
A profitable year can contain a job that quietly gave back a quarter of it.
Margins are thin enough that this matters. General contractors typically run 12% to 16% gross margin, specialty trades 15% to 25%, and well run companies land 5% to 8% net. 12% to 16% gross margin for general contractors, 15% to 25% for specialty trades, with 5% to 8% net for well run companies. James Moore and Co., citing CFMA benchmarks One misjudged job type can consume the whole net.
2. Retainage tracked where you can see it
A share of every invoice gets held back until completion. Retainage of 5% to 10% is standard, and 10% is the cap on private projects in Texas. 10% retainage required on private Texas projects, with 5% to 10% typical elsewhere. Levelset retainage guide
Buried inside accounts receivable, retainage does two bad things. It overstates what is collectable, and it hides how much cash is being held across all active jobs at once. Across several jobs that is often a payroll or two sitting on someone else's balance sheet.
Retainage receivable and retainage payable belong on their own lines. Then you can answer how much is outstanding and which jobs are holding it.
3. Progress billing against the schedule of values
You bill as work progresses, against a schedule of values agreed at the start. Two things have to stay coordinated: what you have billed, and what you have earned.
When billing runs ahead of the work, that is over billing, and it is a liability rather than a windfall. When the work runs ahead of billing, that is under billing, and it is unrecorded revenue and a cash drag. Both are normal. Neither is safe if nobody is measuring it.
4. Change orders recorded when they happen
The most expensive habit in construction bookkeeping. Work gets authorized in the field, done immediately, billed weeks later, and sometimes never. The cost lands against the original job, so margin on that job looks worse and nobody can explain why.
Change orders need to be captured when approved, so cost and revenue land in the same job and the same period. This is a process problem more than an accounting problem, which is why fixing it means changing the field workflow, not just the ledger.
5. Full labor burden allocated to jobs
Wages hit the job. Payroll taxes, workers compensation, general liability, and benefits often sit in overhead. That single split makes every job look better than it is.
Depending on the trade and the state, burden commonly adds a large fraction on top of base wages, and workers compensation alone is a serious rate in construction classifications. If burden is not allocated, your bid model is working from the wrong labor number, and you will keep winning the jobs you should have lost.
6. Work in progress reporting
Over billing and under billing, by job, every month. This is the report lenders and bonding agents ask for, and it is the one most contractors produce only under deadline pressure.
It is also a management report. A pattern of under billing means cash is being financed out of your own pocket. A pattern of over billing means future months are already spent.
Evidence
The environment does not leave much margin for unreliable numbers.
63%
of construction firms had a project postponed, scaled back, or canceled in the past six months
49%
of construction payments were not made on time under the original contract
Levelset and TSheets National Construction Payments Report (2019)
56.5%
of construction businesses started in 2020 were still operating five years later, though 79.7% survive year one
Why the stakes are high right now
63% of construction firms had a project postponed, scaled back, or canceled in the past six months. 63% of construction firms had a project postponed, scaled back, or canceled in the past six months. AGC of America and Sage Construction Outlook Payment timing is unreliable: 49% of construction payments were not made on time under the original contract. 49% of construction payments were not made on time under the original contract. Levelset and TSheets National Construction Payments Report (2019) And survival rates are sobering, with 79.7% of construction establishments surviving the first year and 56.5% reaching five years. 56.5% of construction businesses started in 2020 were still operating five years later, though 79.7% survive year one. US Bureau of Labor Statistics Business Employment Dynamics
None of that is fixed by bookkeeping. But every one of those pressures is easier to navigate with job level margin, a real cash outlook, and statements a lender accepts on the first pass.
What good construction books look like
You should be able to answer these in minutes, not days:
- Margin by job, by job type, and by crew
- Total retainage outstanding, and which jobs are holding it
- Over and under billed position by job
- Committed cost against remaining budget on active work
- Change orders approved, billed, and unbilled
- Loaded labor cost per hour, by trade and classification
- A cash outlook that accounts for retainage release and payment terms
If any of those takes a week to assemble, the books are recording history rather than supporting decisions.
Practical steps in order
1. Fix the chart of accounts first. Direct cost separated from overhead, with consistent cost categories. Nothing else works until this does. 2. Get job identifiers into the ledger. Whether by integration or a documented import path, the accounting file needs to know which job a cost belongs to. 3. Allocate burden. Pick a documented method and apply it consistently. Approximately right and consistent beats theoretically perfect and occasional. 4. Pull retainage out of receivables. Its own accounts, both sides. 5. Give change orders a workflow. Approved, captured, billed, reconciled. With a named owner. 6. Start reporting work in progress monthly. Before a lender asks, not after.
Cash basis for tax does not change this
Many contractors file on a cash basis. That is a tax question and it belongs with your tax professional. It does not change what you need to manage the business. Keep the accrual detail, the job cost, and the work in progress reporting for management, and give your tax professional what they need for the return. Those are two uses of one set of records, not two sets of books.
Where to start
If most of this list sounds familiar as a gap rather than a practice, start by finding out what is reliable today. The Financial Clarity Assessment takes about six minutes and scores five areas including reporting and cash flow control. You can also read how our team handles contractor engagements, or book a 30 minute call and describe the jobs you are running now.