Job-Costing Gap-Finder
$39
Delivered by email after checkout.
Secure checkout via Square — all major cards accepted
You can copy this method and do it yourself. Pull last 10 closed jobs. Enter estimate vs actual. Tag the leak bucket. Sort the losers. Buy Now is the packaged Notion table with the columns and formulas already built, so you are not making the spreadsheet from a blank grid.
This is the $39 utility on the profit-leak spine. Compare estimate (or Xactimate) vs actual cost on a sample of recent jobs. Surface margin leak by line category. Natural next step when the Profit Leak Scorecard says Zone 2 (job costing & margin) is your worst zone.
Why the lag kills you
By the time most owners know a job lost money, they have already done six more like it. Cash in the bank is timing. Gross margin per job is the only number that tells the truth, and most $1M-$15M shops cannot name it until the bookkeeper closes the month three or four weeks later.
You do not lose money on one weird job. You lose it on a type of job you keep taking. The playbook’s example: a 30% water-mit job that needed 45%, run forty of them on $600K of revenue, and you gave away $90,000 of gross profit. A bad pattern, not a bad month. Fast costing exposes the pattern.
The table to build
One row per job. These columns:
- Job (name or file number)
- Loss Type: Water, Fire/Smoke, Mold, Storm, Contents, Reconstruction, Other
- Invoiced $
- Estimated Cost $
- Actual Cost $
- Labor Over/Under $
- Equipment Over/Under $
- Materials Over/Under $
- Subs Over/Under $
- Cost Variance $: estimated cost minus actual cost (formula)
- Gross Margin %: (Invoiced – Actual Cost) ÷ Invoiced (formula)
- Biggest Leak: Labor, Equipment, Materials, Subs, Scope/Estimate, or None
- Notes: who estimated, which crew, anything that explains the gap
Do not clean the numbers up. Enter what actually happened.
The four cost buckets
Labor is the #1 leak, three ways. Hours running over estimate. Unbilled drive and idle time (truck leaves at 7, tarp goes down at 9:15). Crews stretching a “full day” on T&M. None of it shows unless you cost labor against the estimate, job by job.
Equipment is the silent under-track. Units sitting on a job that closed days ago, still not picked up, never billed for the extra dry days. You own 40 air movers; on any given week some are “lost” on completed jobs, off-rent, earning nothing.
Materials is smaller but real. Over-ordering, the partial pallet that walks off, the antimicrobial you used and forgot to line-item. A 5-8% materials slippage on a materials-heavy reconstruction job adds up across a year.
Subs is margin compression you agreed to. Sub invoice higher than what you billed the carrier. Verbal scopes. Change orders not documented. A 10% markup when the job needed 20%.
How to run ten jobs
- Pull invoices, labor hours, equipment logs, and sub invoices for your last 10 closed jobs.
- Enter one row each. Invoiced, estimated cost, actual cost, and the four over/under columns.
- Let Gross Margin % and Cost Variance $ calculate. Sort low margin to high. The jobs at the top are the money-losers. Name them.
- Cross-check labor. Flag every job where actual hours beat estimate by more than 10%. Look for the pattern: same job type, same crew, same estimator.
- Tag Biggest Leak on each row. Be honest. If the work was performed and never priced, that is Scope/Estimate, not Labor.
- Pick the one money-loser with the biggest gap. Write a single sentence: what leaked, and in which bucket. That sentence is your first plug.
Catch the loser at 50%, not at month-end
On every significant job, run a mid-job margin check at the halfway point. Pull actual labor hours and equipment days to date. Compare them against where they should be for percent complete. If a $40K job is 50% done and you have already spent 70% of the labor budget, you have a right-now problem: tighten the crew, escalate the scope with the adjuster, or stop the bleed.
Close-out cost within 3-5 days of the final visit. Every job. No exceptions. While the crew remembers, while the equipment log is fresh, while you can still bill the carrier for that supplement. That turns job costing from a rear-view report into a steering wheel.
If Scope/Estimate keeps winning
Filter Biggest Leak = Scope/Estimate. Sort by Cost Variance. Group by Loss Type and by estimator (use Notes). You are hunting the repeating miss: detach & reset, PPE, monitoring labor, containment, equipment days, after-hours, content manipulation. Name the estimator-plus-job-type combination with the biggest consistent negative variance. That is this week’s coaching conversation.
What good looks like
- Gross margin ≥ 45% on a blended basis, and you know it by number, not by feel.
- Job margin known within days of close, not weeks.
- No surprise losers. Every significant job gets a mid-job check.
- Labor costed against estimate on every job. Equipment never sits off-rent on a closed file.
Log this batch’s blended margin as your baseline. Update it monthly so margin is a trend line you watch.
If you want the packaged table
You can build the columns in any spreadsheet. Buy Now is the Notion database delivered by email after checkout: the fields, the Loss Type and Biggest Leak selects, and the Gross Margin % and Cost Variance formulas already in. Duplicate it and enter the ten jobs. Same Square button at the top of this page.
Leave a Reply