A contractor with its own crews carries two labor-cost numbers. The first is the blended burdened rate: what an hour of a crew type should cost. It is the number you budget and bid with. The second is actual labor cost: what the work cost according to payroll. It is the number recorded on the P&L by job.
Dapt is built to produce the second number. It takes the hours crews record by job and cost code and runs them through payroll (ADP, Paychex and others). After payroll it posts the actual, fully burdened cost of every hour to the job in QuickBooks, Sage Intacct, NetSuite or JobTread, the day payroll runs. The P&L by job is built on what the crew cost, and the rate gets tested every period.
The link between them runs one way. Actual cost goes into the P&L by job. Reviewing that P&L against the budget shows where the rate was right and where it was wrong, and that review is what adjusts the rate for the next bid. Both numbers have to be kept current: the rate so that bids are priced right, the actual so that the review has something true to work from.
When the two drift apart and nobody looks, the consequences arrive in order. Bids are priced on a rate that no longer matches the crews. You win the jobs you underpriced and lose the ones you would have made money on. Job budgets stop predicting anything. Job P&Ls built on the same stale rate confirm the budget instead of testing it. Margin shows up at year end with no way to say which jobs, or which kind of work, produced it.
At estimating time the crew that will do the work has not been assigned. The estimator knows the crew type: two carpenters and a laborer for three weeks. So labor is priced with a blended burdened rate. That rate is an average wage for the crew type plus an allowance for employer payroll taxes, workers’ compensation, insurance and benefits. Twenty hours of carpentry at $50 is $1,000 of labor in the estimate.
That number does two jobs at once. It is the labor line in the price presented to the customer, and once the job is awarded it is the budget the project team is measured against. As you track progress, compare like with like: measure the job against the same burdened rate the budget was built on.
After payroll runs, the actual exists. It is who did the work, how many hours they worked, what they were paid, and what overtime, employer taxes, benefits and fringe added to it. The question changes from “what should this cost” to “what did it cost.” That is the number recorded on the P&L by job, because it is the money that left the company.
The actual does not replace the rate. It becomes part of the P&L by job, and reviewing that P&L against the budget is the process that informs and adjusts the rate. A company that never produces the actual has no way to find out its rate is wrong.
Every labor line is hours times a rate, so every labor variance is one of two things, or both. A thousand hours at $50 is a $50,000 budget. When actuals show $60,000, either the work took 1,200 hours at the rate the estimator assumed, or the budget rate was wrong and the hour actually cost $60. The first is a productivity problem and belongs to the foreman. The second is a rate problem that has to be fixed before the next bid.
The fixes are different. A report that shows only the total does not tell you what went wrong, and you are left flying blind, unable to improve.
A blended rate is an average. Payroll is what happened. These are the places they part.
How much of this is yours depends on where your labor comes from.
If you build mainly with trade partners, labor reaches you as an invoice. The partner’s crew mix, overtime, taxes and benefits are inside the partner’s price, and the partner carries that gap, not you. Your bids start from partner quotes. Partner costs do move after the quote. Scope is discovered on site, allowances resolve into real selections, material prices escalate during a long bid window, and change orders follow. But they move as documents you can see, price and pass through. Labor never does. The blended-rate gap is confined to your own staff: project managers, superintendents, punch crews. It is small, and it hides in overhead unless you classify it between direct and indirect labor. Your discipline belongs on the invoice: every partner bill coded to its job and phase, change orders priced before the work, retainage tracked by job.
If you self-perform, there is no invoice telling you what carpentry cost. Labor is your largest cost line, and it is the only one with no document attached. Every driver above applies to you, on both ends: a tested rate going into the bid, and the actual cost of payroll coming out of the job.
If you are bringing work in-house, the estimating history you carry was built on partner pricing, where labor arrived burdened and correct. Companies self-perform to capture the margin partners were earning. The first year of self-performed work is bid with a blended rate nobody has tested against a payroll, on what just became the largest cost line in the company, and the company now owns overtime, workers’ comp, benefits, crew mix, idle time and the job costing itself.
Suppose the estimating rate is $50 and the actual rate has moved to $54. On a 1,000-hour remodel that is $4,000 of margin gone before anyone steps on site, and the bid log will never show it. If the rate sits below actual, the bids you win are the ones you underpriced, and the market rewards the mistake with volume. If the rate sits above actual, you lose bids you would have made money on to a competitor whose rate is closer to their payroll.
The useful question is whether the rate is right for the kind of work being bid. A single blended rate is right only for the average job, and nobody bids the average job.
Company totals hide this. Two carpenters: the junior costs $40 an hour, the senior $60. The estimating rate is $50. The junior works a hundred hours on Job A: estimated $5,000, actual $4,000. The senior works a hundred on Job B: estimated $5,000, actual $6,000. Across the company, $10,000 estimated and $10,000 actual. The total is perfect and both jobs are wrong. When Job B is the kind of work that always needs the senior crew, the bidding assumption for that whole kind of work is wrong while the company average stays right.
So actual labor has to be read by the groups that drive cost: trade, crew type, project type, prevailing-wage versus private, division. The groups come from the same place the job and cost code do, the time record, so they cost nothing extra to keep. A group needs enough jobs behind it to mean something; three jobs of a kind is a signal to watch, a year of them is a rate.
Read at that level, month after month, the P&L by job teaches things no single job can. Which crews run over on which kind of work. Which foreman’s jobs carry the overtime. Whether prevailing-wage work needs its own rate or just its fringe added. Whether the junior crew’s savings on small jobs are real or are showing up later as callbacks. Which project types the company should stop bidding at all. None of that is visible in the total.
One week, twenty hours on a private remodel and twenty on a prevailing-wage school job that carries $17 an hour of fringe. The estimate used $50 for both.
The hours were right. The school job missed because the rate in the bid did not reflect prevailing-wage work. The fix is a rate for that kind of work. The foreman did nothing wrong.
All of the above assumes the actual number exists. Producing it is the hard part. Payroll tells you what each employee cost the company. Time tracking tells you where each employee worked. Job cost needs the two combined. An employee with 12 hours on Job A, 18 on Job B, 6 on Job C and 4 in the shop has wages, overtime, employer taxes, workers’ comp and benefits that all have to land on those four places in the right proportions. Multiply by ten, twenty, fifty or a few hundred employees, every pay period.
This is where most companies end up in a spreadsheet and a manual journal entry. It works, but it is slow. The spreadsheet grows a tab per pay period, the entries are keyed by hand, and the numbers arrive weeks after the work. Because it takes a bookkeeper a day per payroll, it happens quarterly, or at year end, or when the accountant asks. That day is the hidden cost of manual payroll, and it is why manual job costing does not scale. If producing the actual number is hard, it happens less often, and the estimator keeps bidding on old information. Done every payroll instead, the same work produces a current number and a current rate, and the review happens because the data is already there.
Automated job costing takes the hours by job and cost code, runs payroll on them, and posts actual labor cost to each job the day payroll runs, gross wages and burden on the right lines. The guide maps that end-to-end data flow. What follows from it:
With or without the automation, the discipline is the same; automation decides whether it costs a day a payroll or nothing.
The gap between the blended rate and actual cost is the signal. Without it, management says labor ran high. With both numbers, management knows which of the two things went wrong and what to change before the next bid.
A standard hourly cost for a crew type used to estimate, bid and manage a job: an expected wage plus allowances for employer payroll taxes, workers’ compensation, benefits and insurance. It is a planning number, not the payroll cost of a specific person on a specific job.
The bid carries the blended rate, so a rate below actual cost underprices every bid and wins work at a loss, and a rate above actual loses bids that would have paid. Recalibrating the rate from actual payroll cost, by crew type and kind of work, keeps the bid honest.
Because the report costs hours at a rate while payroll paid people. Crew mix, overtime, tax caps, workers’ comp class and fringe change actual cost per hour, and a rate holds still. Reconcile job-costed labor to the payroll register each period to find where the difference sits.
That is a choice, and either answer works if it is applied consistently. Fully burdened job cost shows the true margin; wages-only keeps burden in overhead and is simpler. Switching between them is what breaks reporting.
Yes. When time identifies the job and cost code before payroll runs, the payroll results come back split the same way and post to accounting by job with the register tied out. The reconciliation becomes automatic, the burden policy is applied by rule, and the observed burden rate is available every period for the estimating review.
Less. A partner’s price already carries the partner’s burden, so your labor costs arrive as invoices. The gap is confined to your own staff, and it grows the moment you start self-performing work.
Connect with our team for a guided technology discovery session. We know this stack well and can walk through how it would fit your payroll workflows, and what real-time job costing would look like for your jobs without changing how your teams work. Contact us to get started.