How should a construction company keep its books?

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.

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.

Job costing, step by step

  1. Open a job for every signed contract, with its contract amount and its estimated cost by type.
  2. Code every bill, receipt, card charge and timesheet to a job as it is entered, not at month-end.
  3. Load labor with its burden (payroll taxes, workers' compensation and benefits) so a crew hour costs what it really costs.
  4. Log change orders against the job as they are signed, and update the contract amount and the estimate together.
  5. Each month, compare cost to date with the estimate, and bill against the schedule of values.
  6. Run a work-in-progress schedule: percent complete, revenue earned, amount billed, and the over- or underbilling on each job.
  7. At closeout, collect the retainage, pay the subs' retainage, and compare the final cost with the bid so the next estimate is better.

A worked job-cost report

Excite Tax's example: a St. George framing contractor signs a $400,000 job, a price that includes the retainage the customer will hold back, and estimates $320,000 of cost. By December 31 it has incurred $240,000 of cost and billed $280,000, and the customer has held back 5% of every bill as retainage. The measure of progress is cost to date divided by estimated total cost.

One job at December 31 (completion factor and earned revenue, 26 CFR § 1.460-4(b)(2))

LineAmountHow it is figured
Contract price$400,000Includes retainage
Estimated total cost$320,000From the bid, updated for change orders
Cost to date$240,000Every coded bill and timesheet
Percent complete75%$240,000 ÷ $320,000 (cost to date ÷ estimated total cost)
Revenue earned to date$300,00075% × $400,000 (completion factor × contract price)
Billed to date$280,000Progress bills sent, retainage included
Underbilling (costs in excess of billings)$20,000$300,000 earned − $280,000 billed
Retainage receivable$14,0005% of $280,000, part of the contract price whether or not paid
Gross profit earned to date$60,000$300,000 earned − $240,000 cost

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.

Which tax method can a contractor use?

The job-cost report is for running the business. The tax return has its own rules. A long-term contract is a contract to build, install or construct property that is not completed within the tax year it is signed, and income from a long-term contract is figured under the percentage of completion method.

Most small contractors are outside that rule. IRC §460(e) exempts any residential construction contract, and any other construction contract the contractor expects, when it is signed, to finish within 2 years, if the contractor meets the § 448(c) gross receipts test for that year. For tax years beginning in 2026, that test is met when average annual gross receipts for the 3 prior years do not exceed $32,000,000. A construction contract means building, construction, reconstruction or rehabilitation of real property, or installing an integral component of it or improvements to it, so remodels and trade work count, not only new buildings.

An exempt contract may use the percentage of completion method, the exempt-contract percentage of completion method, the completed-contract method or any other permissible method, such as cash or accrual. Under the completed-contract method, the whole contract price and all its costs are reported in the year the job is completed. A job signed in October 2026 and finished in March 2027 is then all 2027 income, retainage included, because the price counts holdbacks and retainages whether or not they have been paid.

A sole proprietor or other contractor that is not a corporation or partnership applies the gross receipts test as if each of its trades or businesses were a corporation or partnership. A home construction contract is one where 80 percent or more of the estimated costs are for dwelling units in buildings of 4 or fewer units and their site work, which is how most Utah home builders and remodelers fall under the residential rules.

Checking the gross receipts test

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:

For tax, retainage is not income deferred until it is paid. Gross contract price includes holdbacks and retainages the contractor is entitled to receive, whether or not they are due or have been paid, and under the percentage of completion method total contract price includes holdbacks, retainages and cost reimbursements. A cash-method contractor's timing follows the money, which is one more reason to know which method the return uses.

In Utah: sales tax on construction materials

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.
Utah Admin. Code R865-19S-58, Materials and Supplies Sold to Owners, Contractors and Repairmen of Real Property

In plain words: on a furnish-and-install job the Utah contractor is the end buyer of its lumber, drywall and fixtures. It pays sales tax to its supplier, and the tax is a job cost, coded to the job like the materials themselves. The sale of real property is not subject to sales tax, nor is the labor performed on real property, so the customer's invoice carries no sales tax at all.

A contractor that only builds, and buys every item from suppliers that charge Utah tax, needs no sales-tax licence unless it also sells materials directly. One that also sells (a door shop that installs some doors and sells others over the counter, say) has to split the two in its books: tax on items bought tax-free and converted to real property must be accrued and remitted, and the books must account for both material sold and material consumed. That split, taxable sales on one side and installed materials on the other, is the Utah line in a contractor's chart of accounts.

Paying subcontractors

Get a Form W-9, with the taxpayer identification number, from every sub before the first payment, and keep proof of their licence and insurance in the same file. At year-end, nonemployee compensation of $2,000 or more is reported on Form 1099-NEC for tax years beginning after 2025, and Form 1099-NEC is due January 31. Payments to a corporation, including an LLC taxed as a C or S corporation, generally need no Form 1099-NEC, which is why the tax classification on the sub's W-9 matters.

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.

A month-end routine for a contractor

  1. Reconcile every bank, card and loan account; see what bank reconciliation is.
  2. Check that every bill, card charge and timesheet carries a job code.
  3. Post change orders and update each job's estimate.
  4. Run the work-in-progress schedule and book the over- and underbillings.
  5. Age contracts receivable and retainage receivable separately.
  6. Review each job's cost to date against its estimate, and flag any job over budget.

The rest of the close is the same as any business's: the month-end close checklist covers it, and the year-end bookkeeping checklist covers what the return needs. Books that have fallen behind on job codes are easier to fix a month at a time than a year at a time; see how to fix messy books.

When to hand this to a preparer

Hand the books over when keeping them costs more hours than the business can spare, or when they stop agreeing with the bank.

Construction bookkeeping is not a service Excite Tax lists yet; bring these records to whoever keeps the company's books.

Sources

  1. 26 U.S. Code § 460, Special rules for long-term contracts (as amended through Pub. L. 119-21) · retrieved September 2026
  2. IRS Rev. Proc. 2025-32, section 4.30 (inflation adjustments for 2026) · retrieved September 2026
  3. 26 CFR § 1.460-4, Methods of accounting for long-term contracts · retrieved September 2026
  4. Utah Admin. Code R865-19S-58, Materials and Supplies Sold to Owners, Contractors and Repairmen of Real Property · retrieved September 2026
  5. Utah State Tax Commission, Publication 42 (Rev. 7/26), Sales Tax Information for Sales, Installation and Repair of Tangible Personal Property Attached to Real Property · retrieved September 2026
  6. IRS, Instructions for Forms 1099-MISC and 1099-NEC (12/2026) · retrieved September 2026
  7. IRS, About Form W-9, Request for Taxpayer Identification Number and Certification · retrieved September 2026
  8. IRS Publication 583 (12/2024), Starting a Business and Keeping Records · retrieved September 2026

Ranked and explained on the sources page.