Excite Tax's answer for Utah contractors: track every cost by job. IRC §460(e) lets a contractor averaging up to $32 million use completed-contract on jobs due within 2 years.
Short answers
How should a construction company keep its books?
Excite Tax's answer: by job. Ordinary double-entry books, with every cost and every bill to the customer tagged to the job it belongs to, so each contract shows its own profit. Add retainage accounts, a work-in-progress schedule each month, and a clean line between materials the company installs and materials it resells, because Utah wants the books to account for both material sold and material consumed. The setup is below.
What is job costing, and how do I set it up?
Job costing is recording each cost against the contract that caused it: labor, materials, subcontractors, equipment and permits. Set each job up as a customer or project in the software, give every bill and timesheet a job, and compare cost to date with the estimate every month. A worked job-cost report, with the completion factor that drives it, is below.
Can a small contractor report a job when it's finished?
As its own receivable. When a customer holds back part of a progress bill, book the held amount to retainage receivable, not to ordinary receivables, and collect it at closeout; a contractor that holds back from its subs books retainage payable the same way. For tax it is still part of the price: gross contract price includes retainages whether or not they are due or have been paid. More below.
Construction bookkeeping is ordinary bookkeeping, by job
A construction company keeps the same books as any small business: a separate bank account, double-entry records and a monthly close. The books must show gross income, deductions and credits, and a business checking account kept apart from personal money is still the first step. What changes is the unit of measure. A contractor's question is rarely "did the company make money this month"; it is "which jobs made money, and which ones are eating the rest".
Three things make that harder than it looks. Jobs run across months and often across tax years. Customers hold back part of every bill until the job is done. And in Utah the contractor, not the customer, usually pays the sales tax on materials. Books that ignore any of the three give the owner a profit number that is wrong in a way that only shows up at year-end.
The chart of accounts a contractor needs
Start from a normal chart of accounts and add these. Keep job detail in the job or project field, not in hundreds of accounts; the accounts carry the type of cost, the job tag carries where it went.
Contracts receivable, for progress bills sent and not yet paid.
Retainage receivable, for amounts customers are holding back until closeout.
Retainage payable, for amounts held back from subcontractors.
Costs in excess of billings (an asset, often called underbillings): work done but not yet billed.
Billings in excess of costs (a liability, often called overbillings): work billed ahead of the work done.
Job costs, split by type: direct labor, labor burden, materials, subcontractors, equipment, permits and other direct costs.
Overhead kept apart from job costs: the office, the owner's truck, insurance that is not tied to one job.
Equipment and vehicles as fixed assets, with any loans against them as liabilities.
Job costing, step by step
Open a job for every signed contract, with its contract amount and its estimated cost by type.
Code every bill, receipt, card charge and timesheet to a job as it is entered, not at month-end.
Load labor with its burden (payroll taxes, workers' compensation and benefits) so a crew hour costs what it really costs.
Log change orders against the job as they are signed, and update the contract amount and the estimate together.
Each month, compare cost to date with the estimate, and bill against the schedule of values.
Run a work-in-progress schedule: percent complete, revenue earned, amount billed, and the over- or underbilling on each job.
At closeout, collect the retainage, pay the subs' retainage, and compare the final cost with the bid so the next estimate is better.
The $20,000 underbilling is the number owners most often miss: the job has earned $300,000 but only $280,000 has been invoiced, so the next bill is overdue. An overbilling, the opposite case, is money collected for work not yet done, and it belongs on the balance sheet as a liability, not in the profit. A job whose cost to date runs ahead of its percent complete is losing money, and the report shows it months before the final invoice does.
Excite Tax's example: a Provo remodeling company had gross receipts of $3.1 million, $3.6 million and $4.1 million in 2023, 2024 and 2025. The average of the 3 prior years is $3.6 million, far under the $32,000,000 limit for 2026, so a kitchen remodel it signs in 2026 and expects to finish within 2 years is exempt from the percentage of completion rule. The method is still a choice made on the return, and a change of method has its own rules; the method for this year's contracts is a question for whoever prepares the return, before year-end.
The methods and their trade-offs are laid out in cash vs accrual accounting. Whichever the return uses, the job-cost report above stays the same: it is the owner's view of the jobs, and every tax method is computed from the same coded costs.
Retainage and progress billing
Retainage is part of the price held back until the job is accepted. Booking it into ordinary receivables makes the aging report look worse than it is and hides what closeout will bring in. Keep it separate on both sides:
Progress bill sent: debit contracts receivable for the amount due now and retainage receivable for the amount held back; credit contract revenue for the whole bill.
Retainage released at closeout: debit the bank, credit retainage receivable. No new revenue; it was earned when the work was billed.
Retainage held from a sub: debit job cost for the whole sub invoice; credit accounts payable for the amount paid now and retainage payable for the rest.
The contractor or repairman who converts the personal property to real property is the consumer of tangible personal property regardless of the type of contract entered into--whether it is a lump sum, time and material, or a cost-plus contract.
Code each sub bill to its job and to the subcontractor cost line, and record the retainage held from it separately. Books kept that way produce the Form 1099-NEC totals from a single report in January instead of a hunt through the bank statements.