An $18,000 job that made $1,400: where construction money gets lost

You bid a bathroom remodel at $18,000. Material takeoff said $6,200. You figured 90 crew hours. Job closes, the deposit cleared, the final check cleared, and your bookkeeper tells you the job netted $1,400. So you ask the question every contractor asks eventually: why is my construction job losing money when the bid looked fine on paper?

It's almost never one big leak. It's five small ones nobody codes, nobody bills, and nobody catches until the job is closed and the crew is already on the next one.

Here's where the money actually goes, in the order I find it.

Leak one: labor burden you never priced

Most contractors bid labor at the wage they pay. A plumber at $32 an hour goes into the estimate at $32 an hour. That number is wrong before the truck leaves the yard.

Employer payroll taxes, workers' comp, general liability, vehicle cost, phone, and paid time off all ride on top of that wage. Depending on trade and state, burden commonly lands somewhere between 25% and 45% on top of base pay. Roofing and excavation sit high because comp rates are brutal. Cabinet installers sit lower.

Say your true burden is 32%. That $32 plumber costs you $42.24 an hour. Over 90 hours, you bid $2,880 in labor and spent $3,801.60. That's $921.60 gone from a job you thought was clean — on one trade, one job.

Decision rule: pick a burden multiplier, load it into your estimating template, and never bid a raw wage again. If you don't know your multiplier, that's the first number a bookkeeper should hand you.

Leak two: change orders you did the work on and never billed

This is the biggest one by dollar volume, and it's the easiest to fix.

Homeowner asks for a second hose bib while you're already in the wall. Foreman says sure. Two hours and $180 in fittings. Nobody writes it up. Multiply that across a six-week job and you've given away $2,000 of work you already paid for.

I've seen a remodeler pull three unbilled change orders out of a single kitchen — $640, $1,150, and $410. That's $2,200 on a job that had shown a $900 loss. Written up, that job made $1,300 instead.

Rule I'd enforce: no extra work starts without a signed change order, even a photo of a handwritten one texted from the truck. A foreman who can't get a signature calls the office. That's it.

Leak three: costs landing in the wrong job — or no job at all

Open your P&L. If you see one line called "Materials" with a big number under it, you have no idea which job made money. You have a company-level result and a bunch of guesses.

Job costing means every dollar gets coded to a job and a cost code — labor, material, subcontractor, equipment, permits, dump fees. When the supply house delivers to two sites off one invoice, that invoice gets split. When a guy runs three service calls, his eight hours get split across three jobs.

Without that, the $600 of lumber you bought for the Henderson job sits on the Ruiz job, Ruiz looks like a dog, Henderson looks like a winner, and you bid your next two jobs off bad information. That's how a losing job pattern repeats for a year before anyone notices.

Leak four: material waste and the price-change gap

You bid concrete in March at a quoted price. You poured in July. Nobody re-checked the price.

Suppose you bid 40 yards at $165 and poured at $181 — that's $6,600 bid against $7,240 actual, $640 you ate quietly. Add 8% waste over your takeoff and you're down again.

Track actual material cost against estimated material cost by job, every month. When the variance runs over 5% two jobs in a row, your pricing is stale, not your crew.

Leak five: overhead nobody assigns

Rent, office wages, insurance, software, the truck payment on the yard truck — these don't disappear because you didn't put them in the bid.

Suppose your annual overhead is $180,000 and you do $1.2 million in direct job costs. That's 15% overhead absorption. A job with $60,000 in direct costs carries $9,000 of overhead. If you bid a 20% markup and your overhead is 15%, your actual profit is 5% before a single surprise.

That's why "we're busy but broke" happens. Volume at the wrong markup just buys you more overhead.

How to find the leak on a job that's already sideways

Do this in order, on the worst job you've closed in the last 90 days:

  1. Pull every cost coded to the job. Then hunt the ones that weren't — check credit card charges, cash receipts, and supply house statements against the job's date range.
  2. Recalculate labor at fully burdened cost, not wage.
  3. List every field decision that changed scope. Match each to a signed change order. The unmatched ones are your number.
  4. Compare estimated vs. actual by cost code — labor, material, sub, equipment. One code usually owns 70% of the miss.
  5. Check retainage and final billing. Money you never invoiced looks identical to money you lost.

If your books are too far behind to run that exercise, fix that first. Catch-up and cleanup bookkeeping exists for exactly this — you can't job cost a year you never reconciled.

The subcontractor trap that turns into a tax problem

Small shops lean on 1099 subs to flex crew size. Fine. But if you're not tracking sub payments by job, you get hit twice: your job costs are wrong all year, and come January you're reconstructing who got paid what.

For tax year 2026, the Form 1099-NEC nonemployee compensation reporting threshold is $2,000 for tax years beginning after 2025. Form 1099-NEC must be furnished to the payee and filed with the IRS by January 31. If sub payments live in a shoebox instead of coded to jobs, you're doing that reconstruction under deadline — and you still won't know which job the money went to.

What clean job numbers actually change

Contractors who job cost properly stop bidding blind. You learn that your service calls carry 38% gross margin and your big remodels carry 19%, and you start chasing the right work. You learn which foreman burns hours. You learn which customer type generates unbilled extras.

That's the whole product: a monthly close where labor is burdened, costs are coded, subs are tracked, and payroll, AP and AR are reconciled into books you can trust — so the question "why did this job lose money" has an answer with a dollar sign on it, not a shrug.

Get the monthly rundown. Subscribe to the Stream Construction Accounting newsletter for job-costing breakdowns, contractor tax deadlines, and the margin mistakes we find in real books — sent to your inbox, no pitch.