A construction job costing spreadsheet becomes most useful when it connects back to the estimate that existed before the work started.
Actual cost on its own tells you what the job consumed.
The estimate on its own tells you what you expected.
The learning comes from comparing the two.
What estimate vs actual means
For each meaningful cost category, retain both values:
- estimated cost;
- actual cost;
- dollar variance;
- percentage variance where useful;
- explanation of the cause.
At project level, the simplest relationship is:
Variance = Actual Cost - Estimated Cost
A positive or negative number is not enough. The estimator also needs to know why the difference occurred.
Keep the categories consistent
The comparison is easier when the estimate and actual-cost record use compatible categories.
A practical breakdown can include:
- materials;
- self-performed labour;
- subcontractors;
- job-specific costs;
- other categories that genuinely belong to the project.
The exact structure should match how the business estimates and records real costs.
If the estimate groups costs one way and accounting records them another way, the post-job comparison becomes harder to interpret. That is worth resolving before trying to automate variance reporting.
Materials: ask whether the quantity or price moved
If material cost was higher than estimated, the cause may be very different depending on what happened.
Possible questions include:
- Was the measured quantity wrong?
- Was the purchase quantity too low?
- Did waste, cuts or package quantities differ from the assumption?
- Was the supplier price outdated?
- Was extra material required because the scope changed?
- Was material lost or damaged during production?
This is why the estimate should keep measured quantity and purchase quantity separate. See measured quantity vs purchase quantity.
Labour: compare the assumption with the activity
A labour variance is easier to understand if the estimate was built from visible activities and person-hours.
If the estimate assumed 40 person-hours and the job used 55, ask what changed:
- crew size;
- duration;
- productivity;
- access;
- rework;
- waiting time;
- scope;
- sequencing;
- supervision requirement.
A single lump-sum labour allowance gives much less information after the event.
See estimating construction labour hours for the activity → crew → duration → person-hours structure.
Subcontractors: separate estimate error from change
A subcontract variance can occur because:
- the quote used in the estimate was incomplete;
- an exclusion was missed;
- the quote expired;
- the scope changed;
- an allowance was exceeded;
- a different subcontractor was used;
- an interface between trades was not clearly allocated.
That is why quote comparison should retain scope, not only price. Read compare subcontractor quotes by scope.
Use variance cause codes
A simple cause code helps turn post-job notes into information that can be reviewed across several projects.
One practical set is:
- E — estimating: the original assumption, quantity, labour build-up or quotation treatment was wrong;
- P — production: the estimate was reasonable but site execution differed;
- C — change: customer or project scope changed after the estimate;
- M — market/price movement: a current price changed after the estimate;
- U — unresolved: the cause is not yet clear.
The code is only a label. Keep a short written explanation as well.
Do not rewrite the original estimate after the job
If you overwrite the estimate to make it resemble the actual result, you destroy the learning record.
Keep the reviewed estimate as the baseline and record actual costs separately.
Then the variance remains visible.
That gives you a better basis for asking what should change in the next estimate.
What to review after each job
A short post-job review can ask:
- Which cost category had the largest meaningful variance?
- Was the cause estimating, production, change, market movement or unresolved?
- Was the scope definition strong enough?
- Were measured and purchase quantities separated clearly enough?
- Did labour assumptions reflect the way the work was actually performed?
- Were supplier and subcontract quotes current and comparable?
- Did any excluded or unclear item become the contractor’s responsibility?
- What one change should be made to the next estimate?
The objective is not to create a perfect historical report. It is to improve the next decision.
Estimate vs actual is different from accounting
A job-costing spreadsheet is not a replacement for bookkeeping or accounting records.
Its estimating purpose is narrower: connect the assumptions made at bid time with what later happened on the job.
Use the company’s proper financial records as the source for real costs where appropriate, and keep the estimating workbook focused on decision feedback.
Build the feedback loop into the estimating process
A useful construction estimating workflow does not end at SUBMIT.
It ends at LEARN.
That means the same system that held the scope, takeoff, labour and quotations can also retain:
- actual project cost;
- variance by category;
- cause code;
- lessons learned;
- useful cost-history notes for future estimating.
The Mercer Lane Construction Estimating System PRO includes estimate-vs-actual, lessons and cost-history stages alongside the main estimate workflow in Microsoft Excel desktop.
For a broader checklist of what an estimating workbook should contain, see construction estimating spreadsheet: what should an Excel system include?.