Every contractor estimates jobs. Fewer contractors go back after completion to find out whether the estimate was right.
This is a costly habit. Not because any single job where you missed the estimate is catastrophic (though some are). It is because the patterns in your estimating errors repeat job after job until you look at the data and break them.
A job cost post-mortem is a structured review you do after a job closes. It compares what you estimated to what actually happened. It takes 10 to 20 minutes per job. The goal is not to assign blame for cost overruns. It is to build data that makes your next similar job more accurate.
This post walks through how to use a post-mortem template on a real example, and how Bit & Grain's built-in P&L tracking automates most of the data collection.
Download the Template
Download the job cost post-mortem template as a PDF. It includes fields for all the key categories: estimated vs. actual on materials, labor, subcontractor costs, overhead, and the final margin calculation. There is a section for variance notes and a lessons learned box.
You can print it, fill it in, and keep it in a job folder. Or use it as a reference to build the same review into your job management software.
A Real Example: The Sunroom Addition
Let me walk through a fictional but realistic example. A contractor named Dan builds a sunroom addition for a residential client. His estimate:
- Labor: 120 hours at $65/hour = $7,800
- Materials: $4,200 (framing, windows, roofing, insulation)
- Subcontractor (electrician): $800
- Overhead allocation: $600
- Total cost estimate: $13,400
- Quoted to client: $17,000
- Estimated margin: $3,600 (21%)
This is a reasonable estimate for this type of job.
After completion, here is what the post-mortem found:
- Labor: 148 hours at $65/hour = $9,620 (+$1,820 vs. estimate)
- Materials: $5,140 (+$940 vs. estimate)
- Subcontractor: $1,100 (+$300 vs. estimate)
- Overhead: $600 (on budget)
- Total actual cost: $16,460
- Revenue (including one billed change order for $800): $17,800
- Actual margin: $1,340 (7.5%)
Dan's estimated margin was 21%. His actual margin was 7.5%. On a $17,000 project, that is a $2,260 difference. Three more jobs like this in a year and he is working for almost no margin.
Breaking Down the Variances
The post-mortem's value is in understanding WHY the variances happened.
Labor (+$1,820). Dan was 28 hours over estimate. The post-mortem notes reveal: the window framing took 12 hours longer than estimated because two windows required custom shimming the original plans had not accounted for. A two-day rain delay pushed the project timeline and added half a day of crew coordination overhead. The client asked for a scope addition (adding a ceiling fan junction box) that Dan absorbed without a change order.
Materials (+$940). The framing lumber order was based on an estimate from three months before the job started. Lumber prices had increased 8% in the interim and Dan had not refreshed the quote. That accounts for about $320 of the overage. The rest came from two additional trips to the supply house for items that were not on the original list.
Subcontractor (+$300). The electrician added charges for a code compliance item that was not in the original scope. Dan had not gotten a written quote before the sub started work.
What the Post-Mortem Tells You to Do Next Time
For each variance, the question is: what would I do differently on the next similar job?
On labor: Build a contingency buffer for custom framing work. For any job involving non-standard windows or doors, add 15% to the framing labor estimate. Write up a change order for client-requested additions in real time, not after the fact.
On materials: Refresh material pricing within 2 weeks of job start for any estimate that was prepared more than 6 weeks earlier. Track the two "extra trip" items to identify which categories are consistently under-estimated.
On subcontractors: Require written quotes before any sub starts work. Add a contingency line for code compliance on all electrical subcontracts.
Applied to the next similar job, these adjustments would have added about $2,000 to the estimate. That job would have been priced at $19,000 instead of $17,000, and the actual margin would have been closer to 15% rather than 7.5%.
This is the value of the post-mortem: not fixing the current job, but making the next one more accurate.
The Categories That Matter Most
There are six categories where most of the variance in trade job costing shows up:
1. Labor hours. The most common source of underestimation. The fix is tracking actual hours on every job, comparing them to estimates, and building adjustment factors into your estimating for job types where you consistently run over.
2. Material cost increases. Commodity prices move. If you are estimating from memory or from an old quote, you are absorbing price increases you did not account for. Refresh material pricing close to job start.
3. Unlogged change orders. Work you did that was not in the original scope and was not formally billed. This is the most preventable source of margin erosion. Write the change order in the moment. Never absorb scope additions.
4. Subcontractor overruns. Get written quotes. Build a contingency. Review the sub's scope with them before they start to identify potential additions.
5. Supply house runs. Small purchases that are not logged to a job. Track every receipt, even the small ones.
6. Overhead allocation. If your overhead estimate is wrong (too low), you are understating your true cost. Review your overhead calculation annually.
How to Use the Template After Every Job
The discipline that makes post-mortems work is doing them consistently, not just on the jobs that went wrong. If you only review the bad jobs, you miss the patterns in the good jobs that make them profitable.
Block 15 minutes at invoice time for every job over a certain size (say, any job over $3,000). Open the post-mortem template, pull up the job P&L, and fill in the numbers. It takes less time than you think once the data is in the system.
The hardest part is the first few times when you do not have the data easily accessible. That is the argument for the next section.
How Bit & Grain Makes This Easier
The manual post-mortem process requires that you actually have the data to fill in the template. Labor hours logged. Receipts assigned to the job. Change orders recorded. If those records do not exist, the post-mortem is a guessing exercise.
Bit & Grain's job management system is designed to make the data collection automatic. Materials are logged to the job as they are purchased (via Grain AI receipt scanning or manual entry). Labor hours are tracked against the job. Change orders are created within the job record and tied to the invoice. By the time the job closes, the P&L is already populated.
The post-mortem then becomes: open the job, compare the estimated line items against the actual line items, write the variance notes. The calculation is already done.
The estimate and invoice workflow keeps estimated vs. actual side by side, so you can see the comparison without manually pulling numbers from multiple sources.
If you are running a business without job-level cost tracking, the post-mortem template is a reason to start. The data you collect job by job is the foundation for better estimates, better margins, and a clearer picture of which job types actually make money for your business.
Getting Started
Download the job cost post-mortem template and try it on your most recently completed job. Fill in the estimated numbers from your quote, add the actual numbers from your records, and look at the variance.
If you find yourself wishing you had better actual data (more detailed materials tracking, logged labor hours), that is the signal to look at a job management system that collects those records automatically.
Bit & Grain is free to start. The job P&L tracking and receipt scanning are included in the free tier. You do not need to be on the Pro plan to see whether the data collection solves the problem you have.
When to Do the Post-Mortem
The best time to do a job cost post-mortem is at invoice creation, not at job close. These two things often happen at the same time, but if there is a gap (if you close the job but delay billing for some reason), do the post-mortem before you create the invoice.
The reason: the post-mortem may reveal unbilled items (a change order that was absorbed, a material cost that was not included in the last invoice). If you catch those items before invoicing, you can include them. If you do the post-mortem after the invoice is sent, billing the client for something they were not expecting creates friction.
The 15-minute post-mortem at invoice time is also the right moment because the job is fresh. You remember what happened, where the variances came from, and what you would do differently. Wait a week and those details fade.
Using the Post-Mortem Data Over Time
A single post-mortem is useful. A year of post-mortem data is transformative.
After 12 months of consistent post-mortems, you will have a dataset that answers questions like:
- What is my average actual margin vs. estimated margin, by job type?
- Which job types consistently have labor overruns? By how much?
- Which material categories are most likely to come in over budget?
- What is my actual overhead rate vs. what I am allocating in estimates?
These are not questions most contractors can answer. They operate on feel: "I feel like I make good margin on kitchen work" or "bathroom jobs seem tight lately." The post-mortem data replaces that intuition with real numbers.
A contractor who knows their actual margin by job type can price strategically: take more of the high-margin job types, price the low-margin ones higher, or stop taking the ones where the actual margin is consistently negative.
This is the difference between running a reactive business (accepting jobs as they come and hoping the margin works out) and running a strategic one (understanding your cost structure well enough to make deliberate choices about which work to take).
A Note on Simplification
The template covers everything: materials, labor, subcontractors, overhead, change orders. For a simple job (a single day of work, one person, minimal materials), you do not need all of those categories.
Scale the post-mortem to the job. For a $500 one-day job, a 5-minute review is enough: "Did I bill for everything? Did I charge the right rate? Was there anything I absorbed that I should have billed?" That is it.
The full template is for larger, multi-week projects where the variance risk is higher. Do not let the template's comprehensiveness discourage you from doing a simplified version on smaller jobs.
The Connection to Estimating
The post-mortem template feeds directly into your estimating process, but only if you actually use the data. Here is a practical method:
For your three most common job types (by volume), keep a running average of actual vs. estimated margin from your post-mortems. Review this average quarterly. If your actual margin is consistently 15% below your estimate on one job type, your estimate for that job type needs a 15% buffer.
This is simple math, but it requires the data. The post-mortem template is where you collect that data. Bit & Grain's job P&L tracking makes the data collection automatic so the template becomes a review tool rather than a data entry tool.
Over time, your estimates get tighter, your actual margins get closer to your targets, and you stop being surprised by what jobs actually made.
Download the free template and try it on your next completed job.
