Job costing for contractors: how to know your margin before the job closes

By Zia Nawaz, Owner & General Contractor, Eiffel Builders Inc.7 min read

Job costing means tying every dollar you spend to the job that caused it, while the job is still open. Not at year end. Not when your accountant sorts the shoebox in March. While there is still work left that you could price, schedule, or bill differently.

The arithmetic is not the hard part. Margin is contract value minus what the job has actually cost you, divided by contract value. On a $48,000 job that has consumed $38,460, that is $9,540, or roughly 19.9%. The hard part is having cost numbers current enough to be worth dividing.

Below: the four buckets you track, how to budget them before the crew shows up, how often to look, where small contractors lose margin without noticing, and how to spot a job going bad while you can still fix it.

What job costing actually is

Most contractors track money at the company level. Money in, money out, one bank account, one tax return. That tells you whether the year was good. It does not tell you which jobs paid for it and which ones ate it.

Job costing puts a layer underneath that. Every hour, every receipt, every sub invoice gets coded to a job number, and each job becomes its own small business with its own profit and loss. Do it for a season and the patterns show up: the remodels carry the company, the small service calls barely break even, one repeat client has negotiated you into unprofitable work.

A job you are costing weekly can still be steered. A job you cost after the final invoice is just a story about money you already lost.

The four cost buckets

Almost everything that hits a job falls into four buckets. Each behaves differently, and treating them the same is where most homemade spreadsheets go wrong.

BucketWhat goes in itHow to treat it
LaborHours worked by your own crew, at what those hours truly cost youUse a burdened rate, not the base wage, and post hours as they are approved.
MaterialsLumber, fixtures, fasteners, rentals, dump fees, job fuelCode it at the moment of purchase, off the receipt, while someone still remembers the job.
SubcontractorsAnything you pay another company to perform on the jobBook it as committed the day you award the work, not the day the invoice arrives.
OverheadInsurance, truck payments, phones, office rent, your own salaryDo not chase it job by job. Recover it as a flat percentage on every job, checked yearly against reality.

Subs create the false picture most often. An unbooked $7,500 sub award is a $7,500 hole in your margin that stays invisible until the invoice lands, usually at the end when nothing can be done about it.

Labor is the bucket people get wrong

If you pay a carpenter $28 an hour, that hour does not cost you $28. It costs $28 plus payroll taxes, workers comp, benefits, and the unproductive time you pay for anyway. That total is the burdened rate, and it is the only rate that belongs in a job cost.

Work out your own multiplier rather than borrowing one, since it varies by trade, state, and comp class. Take a year of payroll cost for one worker, including every tax and premium, divide by the hours that were actually billable to jobs, and redo it annually.

The difference is not cosmetic. If your burden runs a third on top of wages, a job showing an 8% margin on base wages is underwater once labor is costed properly.

Setting a budget before the crew shows up

A job cost with nothing to compare it against is just a number going up. The budget makes it useful, and it comes straight out of the estimate you already built.

  1. Break the estimate into the same four buckets. If it is one lump sum, split it now — you cannot track against a number with no parts.
  2. Convert labor to hours, not just dollars. Hours are what a crew lead can check against; dollars mean nothing to someone holding a nail gun.
  3. Write down the sub numbers you quoted, and mark them committed as soon as each sub accepts.
  4. Apply your overhead percentage as a line, so the job carries its share of the truck and the insurance.
  5. Subtract the total from contract value. That difference is your planned margin, and it becomes the number you defend for the rest of the job.

A worked example

Take a $48,000 bathroom and hall remodel. Round numbers, made up to show the shape of the thing.

  • Labor: 240 hours at a $55 burdened rate = $13,200
  • Materials: $12,000
  • Subs, electrical and plumbing: $7,500
  • Overhead recovery at 12% of contract: $5,760
  • Budgeted cost: $38,460. Planned margin: $9,540, or 19.9%

Week four. By the schedule you are at the halfway mark. Labor has booked 210 hours, or $11,550, which is 87% of the labor budget. Materials are at $10,400 and subs are committed at $7,500. The crew lead, asked directly, says the job is about 60% done.

Divide 210 hours by 0.6 and you get 350 hours to finish: $19,250 of labor rather than $13,200. Hold everything else steady and the job costs $44,510. Margin falls to $3,490, or 7.3%. Not losing money, but earning less than half what it was sold for.

Nothing went badly wrong here. Nobody stole anything. Labor simply ran long, which is the ordinary way margin dies. And it is only week four, so you can still tighten scope, move a slower hand onto another job, or bill the extras.

The extras matter. Say the crew moved a shut-off valve and added two recessed lights, roughly $2,600 of work nobody wrote up. Bill it and contract value becomes $50,600 against $44,510 of cost: $6,090, or about 12%. One conversation, most of the margin back.

How often to check

Weekly, on anything running longer than two weeks. Monthly is too slow — a four week job finishes before the first review, and a twelve week job has burned a third of its labor before anyone looks. Daily is more attention than it deserves; costs are too lumpy day to day to mean much.

Pick a fixed slot, Friday afternoon or Monday morning, and give each active job five minutes. Three questions: what percentage of the labor budget is spent, what percentage of the work is done, and was anything performed that never got billed. If the first number is ahead of the second, you have a problem worth an hour of thought. That is the whole discipline — not a report, a short repeated look.

Where the margin actually leaks

The losses are rarely dramatic. They are the same three leaks, over and over.

  • Change orders built but never billed. A client asks for something on a Tuesday, the crew says yes because saying yes is their job, and nobody writes it up. The work is real, the cost is real, the invoice never happens. This is the largest leak on most residential jobs.
  • Hours that never reach a timesheet, or reach it wrong. A sheet filled out Friday from memory rounds up on the days someone remembers being tired, and lands on the wrong job whenever a crew split its day between two sites.
  • Receipts that live in the truck. A materials run that never gets coded makes the job look better than it is, right up until the card statement arrives. Uncoded receipts also tend to get missed at tax time, so you pay for them twice.

All three are capture problems, not accounting problems. Nothing fixes them if the information never leaves the site. The fix is making capture take seconds, at the moment it happens, by the person it happened to.

Telling a job is going bad while you can still fix it

Costs going up is not a warning sign. Costs are supposed to go up. These are the signals worth acting on.

  • Labor spent as a percentage of budget is ahead of work completed as a percentage of scope. Ask the crew lead for the completion figure; do not guess it from your desk.
  • Materials pass budget before the job is framed or roughed. Early overruns there almost never recover later.
  • The same job keeps needing extra half days. One is weather. Three is an estimate that was wrong about the work.
  • Nobody can tell you what got done last Thursday. Missing daily records and missing margin travel together.
  • You are into the last 20% of scope with under 10% of contract value left. Punch list eats hours at a rate nobody budgets for.

The response is usually one of four: bill the extras, cut scope by agreement, change who is on the job, or accept the number and price the next one properly. Doing nothing is also a choice, and it is the expensive one.

Doing this without living in a spreadsheet

A spreadsheet works fine for two or three jobs if somebody keys it in every week. Past that, the entry work is what fails, not the math. The alternative is costs that arrive already coded, so the weekly review is reading rather than typing.

SiteLedger is one way to do that: logged hours post as labor at each worker's rate, scanned receipts post as materials, and margin against contract value stays visible while the job is open. Plenty of contractors get to the same place with a well kept spreadsheet and a strict Friday habit. The method matters far less than doing it before the job closes.

Common questions

How do you calculate job margin?
Take the contract value, subtract everything the job has cost you, and divide the result by the contract value. A $48,000 job that has cost $38,460 leaves $9,540, which is a margin of about 19.9%. Use burdened labor rates and include committed subcontractor amounts, or the number will flatter you.
Should overhead be assigned to individual jobs?
Not line by line. Trying to split an insurance premium across eleven jobs costs more time than it returns. Apply overhead as a flat percentage to every job so each one carries its share, then check once a year that the percentage still covers what the business actually spends.
How often should I review job costs?
Weekly for any job running longer than about two weeks. Monthly is too slow to change anything on a short job. Give each active job five minutes and compare labor spent against work completed.
What is the difference between base wage and burdened rate?
Base wage is what lands in the worker's pay. Burdened rate adds payroll taxes, workers compensation, benefits, and paid non-productive time. Only the burdened rate belongs in a job cost, because a job showing a thin margin on base wages is often losing money once burden is included.
Why do small contractors lose margin most often?
Three reasons, in order: change orders that were built but never billed, hours that were worked but never logged correctly, and receipts that never leave the truck. All three are field capture problems rather than accounting problems, so they are fixed at the moment the work or the purchase happens.