The Short Version
I've never worked with a builder who had done job close reviews consistently and wasn't a better estimator for it. The data is sitting in JobTread or QuickBooks after every project closes. Most builders never look at it systematically. The builders who look at it — and build the patterns into their next estimate — stop repeating the same three or four expensive mistakes that are costing them 3–5 points of gross margin on every job.
Sound Familiar?
Signs you're not capturing what your completed jobs are teaching you:
- Your framing or concrete cost keeps coming in over budget — but your estimate for the next job uses the same numbers it always has
- You finished a job and can't say with confidence whether you hit your margin target or came in under
- You have a sense of which subs reliably hit their bid prices and which always have change orders — but no data to back it up
- You've made the same estimating mistake on multiple jobs (underestimating demo, miscosting site work, missing a scope category) without a systematic way to catch the pattern
- Your QuickBooks or JobTread has complete actual cost data from 12–36 completed jobs that you've never analyzed side by side
- Your estimates are built from memory, intuition, and the last job — not from a structured dataset of actual performance
What We Found
What a Job Close Report Is and What It's Not
A job close report is a structured comparison of budgeted costs versus actual costs by cost code on a completed project, combined with three or four interpretive conclusions about what the variance means for future estimates. It's not a financial statement. It's not a project debrief. It's a calibration document — its purpose is to update your estimating mental model with real data from the job you just finished.
The report should answer four questions:
- By cost code, where did actual costs exceed or underrun the estimate — and by how much?
- What drove the variances? (Labor productivity, material pricing, scope changes, sub performance, unforeseen conditions)
- Which variances are one-time events vs. patterns I should adjust for in future estimates?
- What's the realized gross margin on this project, and how does it compare to what I bid?
A good job close report takes 45–90 minutes to produce on a typical $300K–$700K project. The builders I work with who do it consistently find the time comes back tenfold in avoided estimating errors over the next 12 months.
The Pattern That Keeps Repeating
In my experience, most builders have two or three cost categories where they consistently underestimate — and they've been making the same error for years. The most common: framing labor (underestimating hours for complex geometries), site work (underestimating demo scope when existing conditions aren't fully verified before bid), and general conditions (underestimating supervision time on jobs that run longer than scheduled). These patterns don't fix themselves. The job close review is how you find them.
The 60-Minute Job Close Process
Here's the process I use with builders. It's designed to be completable in one sitting, with no tools beyond JobTread's cost report and a blank document or spreadsheet.
Step 1 (10 min): Pull the final job cost report from JobTread.
In JobTread, go to the completed project and run the Job Cost Report. This gives you estimated cost vs. actual cost by cost code. Export to PDF or spreadsheet. If your cost codes are clean and mapped to QuickBooks (see the cost code setup work we do), this report is ready to analyze. If your cost codes are a mess, this is also the moment that makes the case for fixing them — analyzing a report with 80 inconsistent codes is nearly impossible.
Step 2 (20 min): Tag each cost code variance.
For every cost code with a variance over $500 or 5% of that code's budget, write a one-line explanation: what drove the variance and whether it's recurring or one-time. Examples: "Framing — over by $8,400 — crew hit 11% more hours than estimated due to hip roof geometry, recurring for similar projects." Or: "Demo — over by $3,200 — unforeseen asbestos pipe insulation, one-time." Tag each variance: Estimating Error, Scope Change, Sub Performance, Unforeseen Condition, or Pricing Variance.
Step 3 (15 min): Identify the top three adjustments for future estimates.
From your tagged variances, identify the three that most warrant a change in how you estimate. These become your carry-forward adjustments. For the framing example above: "Add 10% labor contingency on hip and complex roofline estimates going forward." Write these in plain language, not just as numbers. They need to be readable when you're doing the next estimate six weeks from now.
Step 4 (15 min): Calculate realized gross margin and compare to bid.
Realized gross margin = (Contract value - Total actual direct costs) / Contract value. Compare to the gross margin you bid. If there's a gap, understand why: was it scope creep that wasn't recovered as change orders? Field labor overrun? Sub costs above bid? This question is the bridge between the job close report and your change order and field management processes — those are separate problems, but the job close review surfaces them.
If you want a template to run this process, the job costing systems work we do includes a job close report template that's pre-mapped to your cost code structure.
Building a Job Close Database That Makes You a Better Estimator Over Time
A single job close report is useful. A database of 20 job close reports is transformative. Here's how to build it without it becoming an ongoing project management burden.
Create a simple spreadsheet with one row per completed project and columns for: project type, total contract value, estimated gross margin, realized gross margin, and one column per major cost code category with the budget variance percentage. It takes 5 minutes to add a new row after you've already done the 60-minute review. After 12 months, you have a dataset that shows you your estimating accuracy by project type, by cost category, and by size range.
The patterns that emerge from this database are the most valuable estimating calibration tool a builder can have:
- By project type: Bath remodels might show consistent 4% margin underperformance vs. full-home renovations. That's a pricing signal — you're probably underestimating the administrative overhead per revenue dollar on smaller jobs.
- By cost category: If mechanical rough-in consistently comes in 12–18% over budget, either your sub is consistently bidding low and hitting you with change orders, or your scope description is consistently missing something. Either way, you now know to add a line to every mechanical bid that asks for specific inclusions and contingencies.
- By sub: Tracking which subs regularly hit their bid price vs. which ones consistently come in over is the most actionable data you can collect. After 8–10 jobs, you'll know which subs to call first and which to use only as backup bids you don't expect to award.
The Compounding Value of Consistent Data
Builders who do job close reviews consistently for 24 months typically see 2–4 points of gross margin improvement — not from charging more, but from estimating more accurately and stopping the margin leakage that was happening on every job. At $1.5M in revenue, a 3-point gross margin improvement is $45,000 in additional profit annually. That pays for a lot of 60-minute reviews.
One implementation note: the job close review is easiest to protect when it's a calendar event, not an intention. Schedule it for 30 days after practical completion on every project. Put it on the calendar the day you award the contract. At 30 days post-completion, you have final actual costs, the project is not yet a distant memory, and the financial close is recent enough to be accurate.
Build a Job Costing System That Actually Improves Your Estimates
The job close process is one piece of a complete job costing system. If your cost codes aren't set up to support it, or your JobTread isn't producing accurate actual cost reports, a strategy call is the place to start.
Book a Strategy Call →Frequently Asked Questions
A job close report compares estimated costs to actual costs by cost code on a completed construction project. Its purpose is to identify where the estimate was accurate, where it was over or under, and what drove each variance. The insights from a job close report are used to calibrate future estimates — adjusting for systematic underestimates in specific cost categories, sub performance patterns, or scope interpretation errors that repeat across projects.
In JobTread, navigate to the completed project and open the Reports section. Select the Job Cost Report, which shows estimated cost vs. actual cost by cost code. Export to PDF or spreadsheet for analysis. For the report to be useful, your cost codes must be consistently applied throughout the project — if actual costs are miscoded or uncoded, the comparison will be incomplete. The time to build clean cost code habits is during the job, not at close-out.
Every completed project, without exception. The job close review is a 45–90 minute process on a typical $300K–$700K project. Skipping it on any project means you're leaving calibration data on the table. If you can only do one thing to improve your estimating accuracy over 12 months, consistent job close reviews — done on every project, stored in a running database — will have the largest impact.
The four most common cost overrun categories I see across builder operations: framing labor (underestimating hours for complex geometries and structural conditions), site work and demo (unforeseen existing conditions not verified before bid), general conditions and supervision (underestimating time on projects that run longer than scheduled), and mechanical rough-in (scope interpretation differences between estimate and sub bid). Tracking your own variance patterns over 12–24 projects will tell you which categories are your personal risk areas.