Why your job margin at close is rarely the margin that holds
The margin you report at substantial completion ignores punch list labor, callbacks, and warranty repairs. Here is how much those costs eat and how to track them.

A general contractor we work with finished a commercial kitchen remodel and marked the job complete at 18 percent margin. The contract was $320,000. Direct costs through substantial completion ran $262,400. By every measure the project manager tracked, it was one of the better jobs that year.
Nine months later, when we ran the final job cost report, the margin was 12 percent. The $18,400 gap came from labor and materials posted after the job was marked complete: punch list work that stretched over two weeks, a refrigeration callback that required a licensed subcontractor, and tile repairs that took four additional days. None of it had been charged to the job number.
What punch list and warranty costs are
Punch list costs are the labor and materials needed to complete or correct deficiencies before the owner signs the final completion certificate. They come after substantial completion, which is the moment a project looks finished and the contractor invoices the final draw.
Warranty costs are the labor and materials required to fix failures during the warranty period, typically one year after final completion. Every project produces some warranty work. The question is not whether it will happen, but whether it gets charged to the job that generated it.
Most contractors absorb both categories into overhead. The job is marked complete. The crew moves to the next project. When a callback comes in three months later, the labor gets charged to whatever job the crew is currently working on, or to a general overhead account. The originating job never sees the cost.
What drives the gap between reported and actual margin
Punch list scope consistently exceeds the estimate. Owner walkthroughs find issues the superintendent did not anticipate. HVAC balancing fails the first inspection. Electrical trim work requires a return visit. Tile does not match the approved sample. Each item is small. Two weeks of crew time at four people is not.
Callbacks are not linked to the originating job. A plumbing failure six months after final completion brings a plumber and two hours of drywall patching. The plumber’s invoice goes to subcontractor expense. The drywall labor goes to general labor. Neither gets traced back to the job that caused the failure.
Invoices post after the job closes. Materials ordered during the final week of a project arrive two or three weeks later. If the cost tracking system treats the job as closed on the date of substantial completion, those late invoices post to overhead. They belong to the job.
Warranty parts run through a general materials account. A repair trip for $200 of tile or $80 of plumbing fittings gets expensed to a general materials account. The cost is real. It does not appear in job cost.
What the numbers looked like
Here is the kitchen job at substantial completion and after all post-completion costs were captured.
| Line item | At substantial completion | After full close-out |
|---|---|---|
| Contract revenue | $320,000 | $320,000 |
| Materials | $98,000 | $98,000 |
| Labor and burden | $88,400 | $99,600 |
| Subcontractors | $76,000 | $80,800 |
| Job-specific overhead | $0 | $2,400 |
| Total job cost | $262,400 | $280,800 |
| Gross margin | $57,600 (18%) | $39,200 (12.3%) |
The $18,400 gap consisted of $11,200 in punch list crew labor, $4,800 in warranty subcontractor work, and $2,400 in overhead that belonged to this job rather than the general pool.
Why the next bid is where this hurts
Close-date margins are what most contractors use to evaluate job performance and calibrate the next bid. If kitchen remodels are reported at 18 percent but the real margin after all costs is 12 percent, the bids for similar work are underfunded by 6 points.
At $320,000 per job, 6 points is about $19,200. Over a year with eight similar projects, that is $153,600 in margin the bid model assumed was there and was not. The practical result is that the contractor prices kitchen remodels at levels that do not recover the actual cost of doing them, and the P&L at year-end never explains why.
How to track post-completion costs accurately
For construction clients we work with, every job stays open in the cost tracking system for at least 90 days after final completion. Crew time and materials charged to punch list and warranty work during that period post to the original job number, not to overhead.
At the end of the warranty period, we run a final job cost report. That number is what goes into the bidding cost model. Not the close-date number.
Best practices for construction firms
- Keep the job number active for at least 90 days after final completion. Punch list and warranty labor and materials post to the job, not to overhead.
- Create a warranty callback log that records the date, job number, and brief description for every callback. Use it to run a year-end review of which project types generated the most post-completion work.
- Track punch list hours as a separate labor category within each job. Knowing the average punch list hours for a given project type produces a more accurate labor estimate for the next bid.
- Review close-date margin versus final margin once a year across completed projects. A consistent 4 to 6 point gap means the close-date margin is systematically overstated.
- When a callback comes in, charge the crew time to the originating job first. If the job is closed in the system, open it for the posting, then re-close it.
Three questions worth asking
- What is the job number policy for crew members doing punch list and warranty work, and does the system enforce it or allow posting to unrelated active jobs?
- What is the average final margin on your most common project type, measured from full close-out rather than the date of substantial completion?
- How many labor hours were charged to warranty and callback accounts in the last 12 months, and how many originating jobs did those hours belong to?
If the last question is difficult to answer, the post-completion costs are running through overhead, and the bid model is using margins that are higher than the business actually earns.
Send us a job cost report for your three most recent completed projects of the same type. We will show you where the post-completion costs are going and what the real margin looks like.
- CONTRACT REVENUE$320,000 billed in full at substantial completion
- DIRECT JOB COST$262,400 in materials, labor, and subcontractors
- REPORTED MARGIN18 percent, or about $57,600
- JOB CLOSEDFile marked complete, next project started
- PUNCH LIST LABOR$11,200 of crew time completing deficiencies
- WARRANTY CALLBACKS$4,800 in subcontractor callbacks over year one
- OVERHEAD ABSORBED$2,400 of job-specific overhead misallocated
- REAL MARGIN12 percent, or $39,200, not $57,600
Want a second set of eyes on your books?
30 minutes on Zoom. We'll look at your books and tell you what's working and what isn't.
This is the work we do every day. See bookkeeping for construction.
Book a call