Skip to main content

Profit in Bloom

Job, Crew & Service Profitability
Checklist, Template

The Estimate-to-Actual Job Review

Compare what you estimated with what the job actually required, identify the cause of meaningful variances, and turn the review into better future estimates.
8–10 minutes to read; the workbook supports a recurring 30–45 minute review.
Working Asset

Estimate-to-Actual Job Review Workbook

Compare what you estimated with what the job actually required, identify meaningful variances, document likely causes, and assign corrective actions.

XLSX · Ungated · Editable spreadsheet

The estimate you approved was a budget. It committed the job to a set number of labor hours, a materials figure, a certain amount of equipment time, and a contribution it was supposed to clear. An estimate-to-actual job review sets that budget against what actually happened, works out why the two diverged, and decides what to change on the next job. Scoring a finished job is the easy part. The work that pays is tracing the cause behind each meaningful gap and feeding a correction forward, so the same variance stops repeating.

This is a job-level diagnosis-and-correction process, not a pricing exercise, and it assumes you already have a working definition of job cost in place: the cost categories, the field-hour cost you apply, and the conventions you use to book materials, equipment, and subcontractors. Building that model is separate work, covered in the Resource on what a landscape job actually costs. Here we take the structure as given and ask a narrower question. Where did actual results diverge from the plan, why, and who owns the fix?

The review runs in two modes. An in-progress review looks at live jobs while you can still influence how they end. A job-close review confirms the final result and captures the lasting lessons once the late costs have landed. Both rely on the same comparison and the same cause logic; what separates them is timing, and how much you can still do about what you find.

What the review decides, and what it does not

It is worth being clear about the review’s boundaries before you run it, because the discipline depends on them.

The review decides which variances are material, what caused each one, and what specific corrective action feeds forward, owned by a named person and due by a set date. That is its job, and the whole of it.

What it does not do is set price. When a variance shows the estimate was systematically too low, the review records that an estimating or pricing problem exists and routes it to the pricing decision, which is owned elsewhere. It stops at naming the problem. It does not recommend a markup, a margin target, or a new price.

It also leaves company-wide overhead alone. The review works with job-traceable cost only, meaning the labor, materials, equipment, and subcontractor cost you can tie directly to the job. Gross contribution, as used here, is job revenue minus that job-traceable cost. How overhead gets recovered across the company, and what net profit the business needs to earn, are real questions, but they belong to overhead-recovery and pricing work rather than to a single job’s variance. Fold overhead allocation into a job review and you bury the operating signal you were trying to read.

What an estimate-to-actual job cost review compares

The estimate, converted into a job budget, is the baseline, and everything gets measured against it. The dimensions worth comparing are the ones that actually explain how a job performed:

  • Labor hours and labor cost
  • Materials
  • Equipment
  • Subcontractors
  • Revenue, including change orders
  • Gross contribution (revenue minus job-traceable cost)
  • Schedule, where it drives cost

One prerequisite makes or breaks the comparison: the estimate and the actuals have to run on the same cost-code structure. If the estimate groups cost one way and the accounting system groups it another, every comparison turns into a manual reconciliation and the review stalls. Consistent cost codes from estimate through closeout are what let you compare like with like without rebuilding the numbers each cycle.

Keep quantity, rate, and extended amount distinct, labor most of all. Hours are the quantity, the cost you apply per hour is the rate, and the two multiplied give the extended dollar amount. A job can land right on its total labor dollars while missing badly on hours, because a lower rate masked the overrun, or the other way around. The dollar total by itself hides that. A labor problem lives in the hours or in the rate, not in the blended total, which is why you have to pull them apart.

The same logic carries across the other categories. Materials split into usage and price, equipment into planned use and actual use, subcontractors into what was scoped and what was billed. In every case the extended dollar figure is the result, and the explanation sits in the quantity and rate underneath it.

Reading a variance: quantity, rate, dollars, and percent

A labor variance is worth breaking into two parts. The first is productivity, measured in hours: did the crew take more or fewer hours than the estimate assumed? The second is rate: whether the cost applied per hour differed from the estimate. They point in different directions. A productivity gap sends you toward the crew, the sequencing, the site, or the scope, while a rate difference points to crew mix, pay changes, or how the rate in your job-cost model was built. Don’t recompute that rate here; take it from the model you already have. In the review, all you need to see is which component moved.

Read dollars and percent together, because either one alone can mislead. A small percentage on a large job can still be a dollar figure worth chasing, and a large percentage on a tiny line can be immaterial. Looking at both keeps you from acting on noise or waving off a real leak.

A variance is a signal to investigate, not a verdict. A number outside the expected range tells you to look; it does not tell you what you will find. That is why the cause step matters more than the size of the gap.

Two data conditions have to stay separate. A genuine zero variance means you captured the actuals and they matched the estimate. Missing means the actuals simply are not in yet: a sub has not invoiced, a credit has not posted, time has not been coded. Both can appear as a small or zero number on the report, and they mean opposite things. Reading Missing as a genuine zero is how a job looks fine one month and swings the next. Label each input as Known, Estimated, or Missing. That is a data-quality classification, not a confidence score about whether the job will turn out well. It tells you how much of the picture is actually real yet.

Materiality is something the company sets, not something an outside benchmark hands you. You decide the dollar and percentage thresholds that make a variance worth reviewing, based on your job sizes, your margins, and how much variance you are willing to leave unexamined. There is no universal acceptable-variance percentage, and this review does not pretend to supply one. A threshold lifted from a vendor’s marketing is not a standard; it is a guess about a different set of jobs.

Finding the cause: a cause-code structure

Coding the cause is what turns a report into changed behavior. The same dollar variance can come from very different places, and the right fix depends entirely on which one it is. A structured set of cause codes keeps the review consistent from job to job and from one reviewer to the next. Seven codes cover the field-level causes that matter:

* **Estimate.** The bid itself was wrong. Illustrative: the takeoff called for 8 cubic yards of mulch, but the beds needed 12, so the estimate was short before the crew ever arrived.
* **Scope.** The work changed from what was priced, with or without a change order. Illustrative: the client asked the crew to add a short drain line mid-install, the crew did it, and no change order was written. Revenue never caught up to the added cost.
* **Production.** How the work was executed: crew productivity, sequencing, travel, site conditions. Illustrative: a second crew sat idle waiting on the first to finish grading, and the lost hours landed on the job.
* **Purchasing.** What was paid, wasted, or over-ordered. Illustrative: plant material was bought at retail rush pricing instead of the nursery rate the estimate assumed.
* **Rework.** Doing the same work twice. Illustrative: an irrigation zone failed inspection and had to be re-trenched, adding hours and material that were never in the plan.
* **Weather.** Lost or slowed field time from conditions. Illustrative: rain pushed a grading day, and the crew demobilized and remobilized, adding travel and setup hours.
* **Data error.** Miscoded or mistimed cost, not a real operating problem. Illustrative: a crew’s hours were logged to the wrong job, or a sub invoice had not posted, so labor looked on-budget while true cost was understated.

Data error earns a rule of its own. When you find one, fix it before you trust anything else in the review. A miscoding does not just distort its own line; it corrupts the comparison for every category it touches. Clean the data first, then read the operating variances, or you risk assigning a corrective action to a problem that never happened.

The examples above are illustrative. They show what each code covers and are not measured results from a real job.

From exception to corrective action

This is where the whole system earns its keep. Every material exception you review should produce one corrective action, one accountable owner, and one due date. Leave any of the three out and the review is a discussion, and the same variance comes back next quarter.

The corrective action has to point forward to wherever the fix actually lands. A production cause belongs to how the next similar job gets planned, staffed, or sequenced. A purchasing cause belongs to how material is sourced or ordered. A scope cause is really a change-order question: how added work gets priced and authorized before the crew performs it. An estimate cause sends you back to the estimating assumptions for that type of work, and a data-error cause to coding practice. Whatever the cause, the action names the person responsible and the date it is due, and it lives somewhere the next review can find it.

Keep the review’s work separate from decisions that belong elsewhere. If the cause is a systematically low estimate or a pricing gap, the review’s responsibility is to record that the problem exists and route it to the pricing decision. It does not set the new price or the target margin. That call belongs to the pricing Resource, which weighs the full picture a single job review cannot see. Try to fix price inside one job’s variance review and you skip that analysis, which usually produces a reaction instead of a decision.

Closing the loop is what makes the review worth repeating. The learning you accept should turn up in the next estimate or production plan for that kind of work, and the following review then checks whether it worked: did the hours come back in line, did the change orders get written, did the material cost hold. An action log nobody revisits is not a corrective loop. It is a list.

Two review modes: in-progress and job-close

The in-progress review runs on a regular cadence through the season and looks at live jobs while you can still change how they end. That is the entire point of it. A job trending over on hours at the halfway mark still gives you room to move a crew, tighten scope, reorder material, or reset the schedule. For that to work, the in-progress view has to run off committed cost and estimated cost to complete, not posted actuals alone. Posted actuals can trail the field by days or weeks, and a review that waits on them can miss the window to act.

The job-close review comes after the job is finished and, more to the point, after the late costs have landed. It confirms the final gross contribution and captures the estimating and production lessons worth keeping. Timing discipline matters here. Close the review too early and a sub invoice, a material credit, or a late change order arriving the following month will distort the variance you recorded. Wait until the job is genuinely complete in the accounting sense, with all costs and revenue posted, before you treat the numbers as final. This is exactly where the Known, Estimated, Missing labeling earns its place. A job carrying Missing inputs is not ready for close. If no required input is Missing but one or more review inputs are still Estimated, the close remains provisional. Treat the job as final only when the required review inputs are Known.

Both modes lean on the same comparison and the same cause structure. In the workbook, the neutral `Review` side means the current forecast at completion during an in-progress review and final actual at job close. Where the modes part is in what you can still do about the result. In-progress, you are steering the job; at close, you are learning from it and adjusting the next plan.

Making the estimate-to-actual review a recurring process

A one-time audit changes nothing. The review earns its return only when it becomes a standing routine, run by a specific person on a specific schedule.

Keep the cadence short and regular, weekly or biweekly through the busy season, so drift on live jobs shows up while it can still be fixed. Look at a handful of jobs each cycle rather than the whole book. Pull live jobs in by exception, where a threshold has been crossed, and add a short list of recently closed jobs whose actuals are complete. Trying to review everything every week can make the routine difficult to sustain.

Give the routine a named facilitator to prepare the comparison and run the meeting, and put an owner on each corrective action. Keep a running action log that carries open items forward and records whether each fix held. That log is what ties this review to your wider management cadence: the recurring variances and their corrective actions belong in the monthly financial scorecard, so the problems the field review turns up surface in the numbers leadership already watches. Run it this way and the review stops being a post-mortem on money already lost. It becomes the mechanism that keeps the next estimate honest and the next job on plan. When the same variances keep resurfacing and you want help tracing each one back to whether the cause sits in the estimate, the scope, production, purchasing, rework, or the data, you can request a consultation with Profit in Bloom to turn the review into a working cadence.

Related Decision Path
You are here The Estimate-to-Actual Job Review
APPLY IT TO YOUR BUSINESS

Want Help Applying This to Your Business?

Every business is different. If you want help applying this to your numbers, we can work through it together.