CONSTRUCTION JOB COSTING STANDARDS FOR SUBCONTRACTORS.
Job costing for commercial subcontractors works when cost codes mirror the estimate, labor is burdened correctly, costs are entered within 48 hours of being incurred, and the data gets read in a monthly WIP meeting that produces decisions. Most subcontractor job costing fails on at least two of those four. Generic accounting software runs job costing the same way for every industry, which is why construction-specific structure counts.
If your job costing is producing data nobody acts on, the problem is rarely the software. It's the structure of the cost codes, the discipline of the entry, and the cadence of the review. All three are cheap to fix and none of them requires buying anything. The reason they stay broken is that each one sits with a different person: the estimator owns the codes, the field owns the entry timing, and the owner owns whether the review happens at all. Nobody owns all three, so nothing gets fixed.
WHAT IT MEANS.
Construction job costing is the practice of tracking costs by individual job and by cost code within each job.
This is a structure problem before it's a software problem. Generic accounting packages run job costing the same way for a law firm and a concrete sub, which is why two companies on identical software get completely different answers out of it. The construction-specific part is entirely in how the codes are built, how labor is burdened, and how fast the data comes in.
WHERE JOB COSTING BREAKS DOWN.
The cost codes in accounting don't match the estimate
The single most common breakdown is estimate-to-actual misalignment. The estimator builds the bid using one set of cost categories and the bookkeeper enters actual costs using a different set. Six months later nobody can compare bid to actual at the cost code level, which means nobody knows where the margin is going. Across 48 trade specializations, fewer than one in four subs runs matched lists.
The labor burden in the bid isn't the real burden
Labor burden is the multiplier that turns a wage into the true cost to the company, and most subs have been estimating with the same rate for three or four years. Real burden drifted higher because workers' comp went up, health insurance went up, and payroll taxes moved to a new threshold. A bid burden 8 to 20 cents low on every labor dollar eats most of the margin on a labor-heavy job before the crew mobilizes.
Costs get entered two to four weeks late
Job costing data that's two weeks old is too stale to act on. A pay app cycle is 30 days, so a material problem caught at day 4 can be corrected, while the same problem caught at day 18 has already cascaded into a labor delay, a schedule slip, and a change order conversation that should have happened two weeks earlier. Most subs run weekly time sheets and lose the granularity that makes the data usable.
The reports exist and nobody reads them
Job costing produces data, and without the right reports on a set cadence that data sits in the system unused. Closeout reports that go unread are why subs keep repeating the same estimating mistakes year after year. The point of all this structure is a monthly meeting that produces decisions somebody is accountable for.
WHAT IT LOOKS LIKE IN DOLLARS.
Typical burden rates for commercial subs run 1.30 to 1.40 for concrete and structural, so a $28 an hour wage costs the company $36 to $39 per productive hour. Electrical runs 1.35 to 1.50. Civil and earthwork with prevailing wage exposure runs 1.45 to 1.65. SWPPP with a light labor profile runs 1.25 to 1.32.
The CFMA standard formula is total labor cost divided by total productive hours, and productive hours means hours billable to jobs rather than gross hours paid. A worker paid for 2,080 hours a year with 80 hours of PTO and 40 hours of training has 1,960 productive hours. The burden gets divided over 1,960, not over 2,080.
If a sub estimates with 1.30 burden and actual burden is 1.42, every project loses 12 cents on every labor dollar billed. On a $1M project with $400K of labor, that's $48K of margin gone before the job starts. Nothing in the field caused it and nothing in the field can recover it.
THE FOUR THINGS THAT HAVE TO BE TRUE.
The cost code list in the accounting system has to mirror the cost code list in the estimating system line for line. If the estimate breaks labor into site prep labor, footing labor, wall labor, and flatwork labor, then the accounting system carries those same four codes. If the estimate burdens labor at 1.32, the accounting system burdens labor at 1.32. The rebuild takes about two weeks and immediately makes every job costing report comparable to the estimate, and the first WIP after a clean rebuild almost always catches a labor or material overrun on an active job early enough to do something about it.
Burden is total labor cost divided by total productive hours, where labor cost includes payroll taxes, workers' comp, general liability, health insurance, retirement contributions, paid time off, and every other employer-paid benefit. Recalculate the real number annually and push the new rate into the next bid cycle. A rate that hasn't moved in four years is a memory.
Labor gets entered the day after the work happens, material costs the day the invoice comes in, and equipment costs weekly at minimum. That takes three operational changes. Daily time sheets by cost code by job rather than weekly, which runs about 8 minutes per supervisor and pays back in the first month. One person owning vendor invoice intake every morning and routing invoices for approval by 10am, which drops entry lag from 5 to 12 days down to 1 to 2. And owned equipment allocated to jobs weekly on a cost-per-hour basis instead of at month end.
First, the job profitability report by job, monthly, carrying contract value, billings to date, costs to date, estimated cost to complete, percent complete, earned revenue, current margin, and projected margin at completion. Second, estimate against actual by cost code by job, weekly on jobs over $500K, which is the report that catches a $30K labor overrun at day 21 and not at closeout. Third, labor productivity by crew by job in hours per unit, whether the unit is a cubic yard, a square foot, or a linear foot. Fourth, a closeout report comparing final actual to final estimated for every cost code, used to update the estimating system and the burden rates for the next bid.
THE OUTPUTS, NAMED.
FLAT MONTHLY FEE. NO SURPRISES.
Three tiers, priced by your trailing twelve month revenue. Which one you're in depends on how much of the work you want off your desk. No hourly billing, no payroll, and no add-ons.
| Last 12 months revenue | Monthly fee |
|---|---|
| Up to $1M | $1,900 to $2,900 |
| $1M to $3.5M | $2,600 to $3,900 |
| $3.5M to $6.5M | $3,800 to $5,700 |
| $6.5M to $9.5M | $5,100 to $7,100 |
| $9.5M to $12.5M | $6,100 to $8,500 |
| $12.5M to $15.5M | $7,400 to $11,000 |
| $15.5M to $18.5M | $9,400 to $13,500 |
| $18.5M+ | Quoted individually |
Range reflects the three tiers below. Which one you're in depends on how much of the work you want off your desk. No payroll. No hidden line items.
You stop guessing.
You get the CFO work. Job costing built against the way you estimate, a 13 week cash forecast, monthly WIP, and a meeting every month that ends in decisions rather than a report.
Your bookkeeper keeps doing the books.
You stop touching the books.
Everything in Core, and we run the bookkeeping and the controllership as well. Nobody in your office is answering coding questions or chasing a reconciliation at month end.
We do the books. No payroll.
Every job shows its margin while it's still running.
Everything in Executive, plus the job costing and WIP platform set up, loaded with your cost codes, and managed for you every month. You never have to learn it.
We do the job costing.
