Construction bookkeeping goes wrong in a way you can see from the doorway. The job cost report and the income statement disagree, nobody can say by how much, and the argument that follows is about the estimate when it should be about the ledger.
Construction bookkeeping is ordinary bookkeeping plus a second set of books. Every cost is recorded twice, once by general ledger account and once by job and cost code, because a contractor's books have to answer a question a normal chart of accounts never asks. What did this job consume, in the same categories the job was bid in, including the costs nobody wrote a check for this month.
That is a structural problem rather than a data entry one, and the structure starts at the cost code. A cost code is the second address every job cost carries. The general ledger account says what kind of cost it is, and the cost code says which piece of the bid it belongs to.
Construction Bookkeeping Runs on a Subsidiary Ledger
The job cost ledger is a subsidiary ledger, which means it carries detail that a control account in the general ledger summarizes. Because every cost posts to both places at once, the job cost detail has to agree with the general ledger account that controls it, which is the work-in-progress balance for jobs still open and the period's job cost activity for everything charged this month. That tie is the whole control.
When a firm takes over a contractor's books, the first test is whether the tie holds for this month and last month. If it does not, the job reports are commentary rather than accounting, and every percentage built on top of them inherits the gap.
Cost codes only work when they mirror how the job was bid. The estimator prices work in assemblies, the field buys and spends in those same assemblies, and the schedule of values, which is the priced breakdown of the contract sum, bills in them. Where accounting uses a different structure, someone reconciles three lists by hand every month. The billing mechanics that sit on top of those codes are walked through in construction accounting outsourcing.
Three Cost Tiers, and the Rules That Draw the Lines
The method the contract is reported on decides which allocation rule applies to a contractor's costs. On the percentage of completion method, a taxpayer must allocate costs to each long-term contract in the same manner that direct and indirect costs are capitalized to property produced under section 1.263A-1(e) through (h), which means all direct costs and certain indirect costs properly allocable to the contract, being all costs that directly benefit or are incurred by reason of the performance of that contract (Treasury Regulation 1.460-5(b)(1)). For an exempt construction contract reported on the completed contract method, a taxpayer must allocate all direct costs as defined in section 1.263A-1(e)(2)(i) and all indirect costs either as provided in section 1.263A-1(e)(3) or as provided in the list the regulation supplies for that route (Treasury Regulation 1.460-5(d)(1)). A percentage of completion taxpayer can also elect the simplified cost-to-cost method, under which the completion factor rests on only direct material costs, direct labor costs, and depreciation, amortization, and cost recovery allowances on equipment and facilities directly used to manufacture or construct the subject matter of the contract (Treasury Regulation 1.460-5(c)(1)).
The percentage of completion and exempt contract routes lean on the same definition of a direct cost. Direct material costs include the cost of those materials that become an integral part of specific property produced and those materials that are consumed in the ordinary course of production and that can be identified or associated with particular units or groups of units of property produced, and direct labor costs are the costs of labor that can be identified or associated with particular units or groups of units of specific property produced (Treasury Regulation 1.263A-1(e)(2)(i)). In a cost code list, that is the tier where a crew's hours, a materials ticket and a subcontractor's invoice land.
The second tier belongs to a site rather than to a line item, and the regulations let you treat it that way. If an administrative, service, or support function is performed solely at the jobsite for a specific long-term contract, the taxpayer may allocate all the direct and indirect costs of that function to that contract, and if the function is performed at the jobsite solely for the taxpayer's long-term contract activities, those costs may be allocated among all the long-term contracts performed at that jobsite (Treasury Regulation 1.460-5(b)(2)(vii)(B)). That paragraph is what a general conditions code group is for, meaning the site-level costs a job carries that no single line item owns, like the superintendent's time or the temporary power feeding the site. The word doing the work in the regulation is "solely".
The third tier is the general and administrative layer, and on one of the two exempt contract routes a contractor is allowed to leave it off the job. A contractor allocating indirect costs under the list the regulation supplies is not required to allocate general and administrative expenses attributable to the performance of services that benefit the taxpayer's activities as a whole, and the examples given are payroll expenses and legal and accounting expenses (Treasury Regulation 1.460-5(d)(2)(ii)(D)). A contractor that allocates its indirect costs under section 1.263A-1(e)(3) instead does not get that pass, because service costs are defined there as a type of indirect cost illustrated by general and administrative costs, and the ones that directly benefit or are incurred by reason of the taxpayer's production activities are required to be capitalized (Treasury Regulation 1.263A-1(e)(4)(i)(A) and (e)(4)(ii)(A)). Which contracts qualify as exempt is the small contractor and home construction test covered in construction accounting outsourcing.
On a percentage of completion contract the third tier is less clean, because service costs that benefit both the contract work and the business as a whole have to be split between them. The regulation describes a defensible split rather than prescribing one. A taxpayer may use any other reasonable method of allocating service costs if, for its long-term contracts considered as a whole, three things hold. The total service costs allocated do not differ significantly from the total that section 1.263A-1(f)(2) or (3) would have allocated, service costs are not allocated disproportionately to contracts expected to be completed in the near future because of the method, and the method is applied consistently (Treasury Regulation 1.460-5(b)(2)(vii)(C)).
The test bites on the size of the pool as well as on its timing, so a contractor's overhead method has to survive both questions. Is the total close to what specific identification or a burden rate method would have produced, and are the jobs about to close quietly absorbing it?
Where the Estimating Department's Time Goes
Bidding cost is where the tiers stop agreeing with each other, and a cost code list has to be built knowing that. On that same exempt contract list, a contractor is not required to allocate marketing and selling expenses, including bidding expenses (Treasury Regulation 1.460-5(d)(2)(ii)(A)).
A contract on the percentage of completion method can read the other way. If a taxpayer reasonably expects to enter into a long-term contract in a future taxable year, the taxpayer must capitalize all costs incurred prior to entering into the contract that will be allocable to that contract, and the example the regulation gives of such a cost is bidding and proposal costs (Treasury Regulation 1.460-4(b)(5)(iv)).
So the same estimator's week can be a period expense on one contract and a capitalized cost on another, inside one firm, in one month. The cost code list needs a bid code that can be reclassified to a job later, rather than one that assumes the answer at the moment of entry.
Labor Burden Belongs to the Job, in Pieces
Labor burden is the cost of an employed hour beyond the wage itself. The statutory rates are settled elsewhere, with the employer's Social Security and Medicare shares counted out in cpa firm outsourcing cost savings and the federal unemployment piece in the offshore staffing cost calculator. What a job cost ledger has to settle is a different question, which is which pieces of burden count as part of the hour and which do not.
Direct labor costs include all elements of compensation other than employee benefit costs, and the elements it lists include basic compensation, overtime pay, vacation pay, holiday pay, sick leave pay, shift differential, payroll taxes, and payments to a supplemental unemployment benefit plan (Treasury Regulation 1.263A-1(e)(2)(i)(B)). Payroll taxes ride with the wage, which argues for posting them to the cost code the hour was charged to rather than into a pool.
Benefits go somewhere else, and where depends on the contract. Employee benefit expenses are named among the indirect costs required to be capitalized, and the list includes worker's compensation and premiums on life and health insurance (Treasury Regulation 1.263A-1(e)(3)(ii)(D)). On the alternative route for an exempt construction contract reported on the completed contract method, that same worker's compensation sits on the list a contractor is not required to allocate (Treasury Regulation 1.460-5(d)(2)(ii)(J)).
One blended add-on rate cannot hold both halves of that. Post benefit and insurance costs to their own burden code, because they can be allocated on a different basis from wages, and because a firm truing them up at year end needs to see the accrual apart from the payroll it rode in on.
Equipment Cost Recovery, and the Idle Rule
Owned equipment reaches a job through an internal rate, usually per hour or per day, credited back to an equipment account that carries the real ownership cost. The rate is a book device, and the ledger's job is to make it visible: what the account absorbed, what it recovered, and what the difference was.
The tax counterpart has a stated ceiling. Under that same exempt contract list, allocable indirect cost includes depreciation, amortization, and cost recovery allowances reported for the taxable year for financial purposes on equipment and facilities, to the extent allowable as deductions under chapter 1 of the Internal Revenue Code (Treasury Regulation 1.460-5(d)(2)(i)(J)). Book depreciation caps it, which is one more reason the fixed asset schedule and the equipment rate have to be built from the same asset list.
The idle rule is the one that surprises people. Cost recovery allowances on temporarily idle equipment are not required to be capitalized, and equipment is temporarily idle when a taxpayer takes it out of service for a finite period, but equipment is not considered temporarily idle during worker breaks, non-working hours, or on regularly scheduled non-working days such as holidays or weekends, during normal interruptions in the operation of the equipment, when equipment is enroute to or located at a job site, or when under normal operating conditions the equipment is used or operated only during certain shifts (Treasury Regulation 1.263A-1(e)(3)(iii)(E)).
Read plainly, a machine standing on a site over a long weekend is not idle. A machine parked in the yard between jobs may be. Yard time has to be visible somewhere in the ledger rather than buried inside a job, and a rate charged by calendar days on site sits closer to that line than one charged only by metered hours.
Committed Cost Is a Balance, Not an Entry
A commitment is money the contractor has agreed to spend and has not yet spent, meaning the open balance of a purchase order and the unperformed balance of a subcontract. It is not a payable, because nothing has been delivered. It is not a cost, because nothing has been incurred. It is still one of the most useful numbers on a job report, because it turns part of the estimate into an obligation somebody has signed.
Incurred is a defined term, and that definition is why a commitment stays outside the cost column. Incurred has the meaning given in section 1.461-1(a)(2), regardless of a taxpayer's overall method of accounting (Treasury Regulation 1.460-1(b)(8)). Under that rule a liability is incurred in the taxable year in which all the events have occurred that establish the fact of the liability, the amount of the liability can be determined with reasonable accuracy, and economic performance has occurred with respect to the liability (Treasury Regulation 1.461-1(a)(2)(i)).
Economic performance has a timing rule of its own, and on a long-term contract paying early can move it. Where a liability arises out of the providing of services or property to the taxpayer, economic performance occurs as the services or property is provided, and where that liability is an expense attributable to a long-term contract for which the taxpayer uses the percentage of completion method, economic performance occurs as the services or property is provided or, if earlier, as the taxpayer makes payment in satisfaction of the liability (Treasury Regulation 1.461-4(d)(2)).
A nonrefundable advance paid to a subcontractor before the crew arrives can therefore reach the tax cost column while the job cost report still shows nothing, but only where the fact of the liability is already established and its amount can be determined with reasonable accuracy. A refundable deposit cannot, because payment for this purpose does not include an amount transferred as a loan, refundable deposit, or contingent payment (Treasury Regulation 1.461-4(g)(1)(ii)(A)). That distinction is worth a note on the payment itself, because the two look identical in the bank feed.
Materials have a trigger of their own, and it is a document the bookkeeper already handles. The costs of direct materials must be allocated to a long-term contract when dedicated to the contract, and a taxpayer dedicates direct materials by associating them with a specific contract, including by purchase order, entry on books and records, or shipping instructions (Treasury Regulation 1.460-5(b)(2)(i)). A purchase order written against the wrong job is a costing error before anyone opens the invoice.
Commitments earn their keep because the estimate they feed gets graded. An estimate of total allocable contract costs must include costs attributable to delay, rework, change orders, technology or design problems, or other problems that reasonably can be predicted considering the nature of the contract and prior experience, and it does not include any contingency allowance for costs that are not reasonably predicted, such as third-party litigation, extreme weather conditions, strikes, and delays in securing required permits and licenses (Treasury Regulation 1.460-4(b)(5)(iii)). A cost-to-complete built from open commitments plus a considered allowance for rework is defensible. A flat contingency percentage is closer to the thing the rule excludes.
Sales and Use Tax Turns on Whether the Contractor Consumes or Sells
Whether a contractor is the consumer or the seller of the materials it installs is a classification the state makes, and it changes what a material invoice costs before anyone codes it. California states the general case: construction contractors are consumers of materials which they furnish and install in the performance of construction contracts, and either sales tax or use tax applies with respect to the sale of the materials to or the use of the materials by the construction contractor (California Department of Tax and Fee Administration, Regulation 1521(b)(2)(A)1).
The same regulation sorts what a contractor installs into three categories. Materials are construction materials and components, and other tangible personal property incorporated into, attached to, or affixed to, real property by contractors in the performance of a construction contract and which, when combined with other tangible personal property, loses its identity to become an integral and inseparable part of the real property, while fixtures are items which are accessory to a building or other structure and do not lose their identity as accessories when installed. Construction contractors are retailers of fixtures which they furnish and install, and tax applies to their sales of the fixtures (California Department of Tax and Fee Administration, Regulation 1521(a)(4), (a)(5) and (b)(2)(B)).
Machinery and equipment is the third category, meaning property intended to be used in the production, manufacturing or processing of tangible personal property, or in the performance of services, that is not essential to the fixed works, building or structure itself. A construction contractor is the retailer of machinery and equipment even though it is furnished in connection with a construction contract (California Department of Tax and Fee Administration, Regulation 1521(a)(6) and (b)(2)(C)). For a mechanical or electrical contractor that is the bucket most likely to be miscoded.
The materials side then has an exception that flips the same posting back. If the contract explicitly provides for the transfer of title to the materials prior to the time the materials are installed, and separately states the sale price of the materials, exclusive of the charge for installation, the contractor will be deemed to be the retailer of the materials. On a time and material contract, which is one that sets forth separately a charge for the materials or fixtures and a charge for their installation, billing the customer an amount for sales tax computed on a marked up billing for materials is assumed, in the absence of convincing evidence to the contrary, to make the contractor the retailer (California Department of Tax and Fee Administration, Regulation 1521(a)(7) and (b)(2)(A)2).
Texas turns on the form of the contract instead. New construction jobs may be performed under a lump-sum contract, meaning one price for the entire job, or a separated contract, meaning itemized charges for materials and labor. Under a lump-sum contract you pay tax on all your supplies, materials, equipment, and taxable services when you buy them and you do not charge your customer tax, while under a separated contract you give your suppliers resale certificates instead of paying tax on materials you incorporate into the customer's real property, then collect state sales tax plus any local tax from your customer on the amount you charge for the materials (Texas Comptroller of Public Accounts, Real Property Repair and Remodeling, Publication 94-116).
The bookkeeping follows the classification rather than the invoice. Where the contractor is the consumer, tax paid to the supplier is part of the material's cost to the job and belongs inside the job's material code, and a purchase from a supplier that charged no tax leaves a use tax accrual to self-report. Where the contractor is the retailer, whether of a fixture, of machinery and equipment, or of materials sold under a title transfer contract, the same purchase is a resale and the tax billed out is a liability rather than a cost. Filing frequency for those returns is a separate mechanic, covered in the bookkeeping checklist.
Two Cost Populations, One Set of Books
A contractor's books carry two populations of cost, and confusing them is how a clean ledger still produces a report nobody trusts. Job cost as coded is everything charged to the job in the structure the job was bid in, and it is what the field, the estimator, the bank and the surety read. Allocable contract cost is the tax population, and the regulations decide its membership.
They do not have to match, and the rules say so in both directions. Exempt construction contracts accounted for using a method other than the percentage of completion method or the completed contract method are not subject to those allocation rules, other than the requirement to allocate production period interest (Treasury Regulation 1.460-5(a)). A taxpayer that adopts or elects a cost allocation method must apply that method consistently for all similarly classified contracts until it obtains the Commissioner's consent to change, and a taxpayer-initiated change is permitted only on a cut-off basis, for contracts entered into on or after the year of change (Treasury Regulation 1.460-5(g)).
So the reconciliation is a workpaper, not an argument to have every spring. Keep the job cost ledger in the structure the work is bid and billed in, then bridge from it to allocable contract costs once a year on a schedule that shows every addition and every removal. Coding the job ledger to the tax definition instead hands the estimator a report that no longer matches the bid, which is the worse trade for a contractor.
The statement the surety and the bank read is built on the first population. The work-in-progress schedule that carries it, and the bonding rules written against it, are covered in construction accounting outsourcing.
Rebuild One Job Before You Change Anything
Take one contractor client and one open job. Pull the estimate, the cost code list, the open purchase orders and subcontracts, and this month's job cost report, then rebuild the report from the ledger itself.
Three questions answer themselves on the way through. Do the codes in accounting exist in the estimate? Is burden posted in pieces the firm can defend, or as one blended figure? Do commitments live anywhere the ledger can see, or only in a spreadsheet on somebody's desktop?
If your firm carries contractor books and you want to see this work done on your own files first, our Free 40-Hour Proof Pilot is a fixed block of your own representative work, prepared on your SOPs and put through full review, so your reviewer grades real output before any client file is committed. Don't trust us. Test us.
