CON-310 · Lesson 2 of 12 · 26 min
From estimate to control budget
The estimate that won the job was built to price the work, not to manage it. It may group costs in the way the estimator found convenient, hide contingency in unit prices, carry allowances and plugs, and use crew rates that the field never sees. Before the first crew starts, the project team must convert the estimate into a control budget: a set of budget lines, organized by cost code and cost type, that the field can charge to and the project manager can be held to. This lesson covers the turnover from estimating to operations, the structure of a control budget, buyout adjustments, contingency, and the rules for changing the budget once it is set.
The estimate turnover meeting
The handoff from estimating to the project team usually happens at a turnover meeting soon after award. The estimator walks the project manager and superintendent through the estimate: how each package was priced, which quotes were carried, what was excluded, what assumptions were made about methods, crews and sequence, and where the risks are. The quality of this meeting has a large effect on cost control, because a budget built without understanding the estimate's assumptions will produce variances that nobody can explain.
| Turnover item | Why the project team needs it |
|---|---|
| Bid summary and markup structure | Shows what fee, contingency and general conditions were carried |
| Subcontract and supplier quotes carried, with leveling sheets | Starting point for buyout; shows scope gaps and plugs |
| Self-performed takeoff, crews and productivity assumptions | Basis for the field budget in hours and unit rates |
| Method and sequence assumptions | Formwork sets, crane use, phasing and access the price depends on |
| Allowances and alternates | Amounts carried for work not fully defined; what the contract says about them |
| Exclusions and clarifications in the bid | What the owner will pay for as a change |
| Risk register and known exposures | Items the estimator priced as risk or left uncovered |
| Schedule used for general conditions | Duration and staffing the general conditions budget assumes |
The project team should leave the meeting with a list of open items: packages not yet bought out, quantities that need checking, assumptions the superintendent disagrees with, and risks that need a plan. Disagreements are healthy at this stage; it is much cheaper to discover that the superintendent plans a different formwork system before the budget is set than after three months of variances.
Structure of a control budget
A control budget is a table of budget lines. Each line has a cost code identifying the work (Lesson 3), a cost type identifying the kind of cost, a budget amount and, for self-performed work, a budget quantity and budget hours. The cost types commonly used are labor, material, equipment, subcontract and other (permits, fees, consultants). Separating cost types matters because each is recorded and controlled differently: labor through timecards and productivity, material through purchase orders and receipts, equipment through rental and usage records, and subcontracts through commitments and progress billings.
| Field | Example: slab-on-grade forming, Riverbend Commons |
|---|---|
| Cost code | 03 11 13.10 Slab edge forms |
| Cost type | Labor |
| Budget quantity and unit | 1,345 lf of edge form |
| Budget hours | 246 crew-hours |
| Budget unit rate | 0.18 h/lf |
| Budget amount | $19,926 |
| Notes | Includes stripping; excludes keyway, which is coded separately |
For subcontracted work, a budget line usually carries only an amount, often one line per subcontract package. For self-performed work, carrying quantities and hours as well as dollars is what makes productivity tracking possible later (Lessons 4 and 5). Without budget hours, the field can only see that it has spent more money than planned, not whether the cause is slow work, higher wages or a quantity error.
Mapping the estimate to the budget
Estimates and budgets rarely line up one to one. The estimator may have priced concrete as an all-in rate per cubic meter, while the field needs separate lines for forming, reinforcing, placing and finishing. The estimate may carry general conditions as a single lump sum, while the budget needs lines for supervision, trailers, temporary power, hoisting and cleanup. Mapping the estimate into control lines usually involves splitting some items, combining others and moving amounts between cost types.
Two rules keep the mapping honest. The total of the original control budget must equal the total cost of the estimate (excluding fee), so that nothing is lost or invented in translation. And every budget line must be traceable back to estimate items, so that when a variance appears the team can see what the estimator assumed.
# Map three estimate items into control budget lines (amounts $)
estimate = {
"Concrete slab on grade, all-in": 312_400, # priced per unit area
"General conditions, lump sum": 1_904_000,
"Drywall package (sub quote)": 1_418_000,
}
split = {
"Concrete slab on grade, all-in": [("03 11 13 Forming", "L", 0.18), ("03 11 13 Forming", "M", 0.05),
("03 21 00 Reinforcing", "S", 0.17), ("03 31 00 Concrete supply", "M", 0.42),
("03 31 00 Placing and finishing", "L", 0.14), ("03 35 00 Curing and sealing", "M", 0.04)],
"General conditions, lump sum": [("01 31 00 Supervision", "L", 0.46), ("01 52 00 Site offices", "E", 0.09),
("01 51 00 Temporary utilities", "O", 0.08), ("01 54 00 Hoisting", "E", 0.22),
("01 74 00 Cleanup", "L", 0.06), ("01 56 00 Protection and hoarding", "M", 0.09)],
"Drywall package (sub quote)": [("09 21 16 Drywall and ceilings", "S", 1.00)],
}
budget = []
for item, amount in estimate.items():
shares = split[item]
assert abs(sum(s for _, _, s in shares) - 1) < 1e-9, item
for code, ctype, share in shares:
budget.append((code, ctype, round(amount * share)))
for code, ctype, amt in budget:
print(f"{code:<34} {ctype} {amt:>10,}")
print("Estimate total", f"{sum(estimate.values()):,}", "| budget total", f"{sum(a for *_, a in budget):,}")03 11 13 Forming L 56,232 03 11 13 Forming M 15,620 03 21 00 Reinforcing S 53,108 03 31 00 Concrete supply M 131,208 03 31 00 Placing and finishing L 43,736 03 35 00 Curing and sealing M 12,496 01 31 00 Supervision L 875,840 01 52 00 Site offices E 171,360 01 51 00 Temporary utilities O 152,320 01 54 00 Hoisting E 418,880 01 74 00 Cleanup L 114,240 01 56 00 Protection and hoarding M 171,360 09 21 16 Drywall and ceilings S 1,418,000 Estimate total 3,634,400 | budget total 3,634,400
The check at the end matters: if rounding or a missed share made the budget total differ from the estimate, the difference would show up later as an unexplained variance. In practice the mapping is done in the estimating or project management software, but the same check should be run.
Buyout adjustments
Buyout is the process of awarding subcontracts and purchase orders after the contract is won (CON-330 covers it in detail). The prices finally agreed rarely equal the amounts carried in the bid. When a package is bought for less than the budget, the difference is a buyout gain; when it costs more, a buyout loss. Buyout also often moves scope between packages: the drywall subcontractor may agree to supply wood backing that the estimator had carried in carpentry, or the electrical subcontractor may exclude temporary power that then has to be budgeted elsewhere.
Contractors handle buyout results in one of two ways. Some revise the budget line to the bought price and move the gain or loss to a buyout or contingency line, so that the subcontract budget always equals the commitment. Others leave the original budget unchanged and let the gain or loss show as a variance on that line. Either works if it is consistent and visible. What should not happen is for buyout gains to be quietly absorbed into other lines, which hides problems elsewhere and makes the job look healthier than it is.
Worked problem
Recording buyout on Riverbend Commons
The drywall package was carried at $1,418,000. It is bought for $1,371,500, but the subcontractor excludes wood backing, which Northline will self-perform at an estimated $14,800. The roofing package carried at $612,000 is bought at $633,400. How should the net buyout result be shown?
Show solution
- Drywall: 1,418,000 − 1,371,500 = $46,500 gain on the subcontract line.
- Backing now self-performed: add a carpentry budget line of $14,800 funded from the drywall gain.
- Net drywall gain: 46,500 − 14,800 = $31,700.
- Roofing: 633,400 − 612,000 = $21,400 loss.
- Net buyout result: 31,700 − 21,400 = $10,300 gain, moved to the buyout reserve line.
Answer: Budget the drywall line at $1,371,500, add $14,800 for backing, budget roofing at $633,400, and credit the $10,300 net gain to a visible buyout reserve, not to the fee or to other cost lines.
Contingency, allowances and fee
Estimates often contain several kinds of money that are not tied to specific work. Each needs its own line in the control budget, because each is governed by different rules.
| Line | What it covers | Who controls it |
|---|---|---|
| Contractor's contingency | Risks within the contractor's scope: estimate errors, productivity, minor scope gaps | Project manager, with management approval above set limits |
| Owner's contingency | Owner changes and unknowns; usually held outside the contractor's price | Owner |
| Cash or specified allowances | Work described but not fully defined, such as hardware or signage | Set by the contract; unused amounts usually return to the owner |
| Buyout reserve | Net buyout gains and losses | Project manager and operations manager |
| Fee or profit | The contractor's margin | Not a cost line; never used to absorb overruns without disclosure |
Contingency deserves particular care. If it is spread across cost lines at the start, it disappears from view and the team has no way of knowing how much risk cover is left. If it sits in a single line, every draw on it must be recorded with a reason, and the forecast can show contingency remaining against risks remaining. CON-350 explains how contingency is sized and managed against a risk register; for cost control the key point is that contingency use is a budget transfer and must be documented like one.
On cost-plus and GMP contracts, the treatment of contingency, allowances and savings is set by the contract, for example in the AIA A102 and A133 or ConsensusDocs 200-series forms. The cost report must follow those definitions exactly, because the owner will audit them.
Original budget, current budget and transfers
Once the control budget is set, it is fixed as the original budget. From then on, changes are recorded so that anyone can trace the current budget back to the original. Three kinds of change are normal. Approved change orders add or remove budget along with contract value (Lesson 10). Buyout adjustments move money between subcontract lines and the buyout reserve. Budget transfers move money between lines, for example from contingency to a cost line where a risk has occurred, or from one cost code to another when work is reorganized.
Every transfer should be recorded with a number, date, amount, the lines affected and a reason, and should be approved by someone with authority. A budget that changes without records turns the cost report into fiction: if lines are adjusted each month to match actual cost, there will never be a variance to explain, and the forecast will always look good until the job ends.
original = {"03 11 13 L": 56_232, "06 10 00 L": 182_000, "09 21 16 S": 1_418_000,
"07 50 00 S": 612_000, "Buyout reserve": 0, "Contingency": 289_700}
log = [
("BT-01", "Buyout drywall", {"09 21 16 S": -46_500, "06 10 00 L": 14_800, "Buyout reserve": 31_700}),
("BT-02", "Buyout roofing", {"07 50 00 S": 21_400, "Buyout reserve": -21_400}),
("BT-03", "Extra formwork crew for winter protection risk", {"Contingency": -18_600, "03 11 13 L": 18_600}),
]
current = dict(original)
for no, why, moves in log:
assert sum(moves.values()) == 0, no # transfers must net to zero
for line, amt in moves.items():
current[line] += amt
for line in original:
print(f"{line:<15} original {original[line]:>10,} current {current[line]:>10,}")
print("Totals:", f"{sum(original.values()):,}", f"{sum(current.values()):,}")03 11 13 L original 56,232 current 74,832 06 10 00 L original 182,000 current 196,800 09 21 16 S original 1,418,000 current 1,371,500 07 50 00 S original 612,000 current 633,400 Buyout reserve original 0 current 10,300 Contingency original 289,700 current 271,100 Totals: 2,557,932 2,557,932
Each transfer in the log nets to zero, so the total budget is unchanged; only approved change orders change the total. The cost report then shows both columns, original and current, so that management can see how much the budget has moved and why.
Budgeting general conditions
General conditions, the time-related costs of running the site, deserve their own attention because they are driven by the schedule rather than by quantities. Supervision, site offices, temporary utilities, hoisting, cleanup and protection all accrue month by month. The budget for them should therefore be expressed as a monthly rate as well as a total, so that a schedule extension can be costed immediately. On Riverbend Commons, if general conditions total $1,904,000 over 16 months, a one-month extension costs roughly $119,000 at the average rate, more if it falls when the crane and hoist are on site. CON-300 Lesson 8 explained how general conditions are estimated from the schedule; the control budget should keep that link.
Common mistakes
MistakeSetting up the budget from the estimate without a turnover meeting.
InsteadHold a turnover meeting so the project team understands quotes, assumptions, exclusions and risks.
MistakeCarrying only dollars for self-performed work.
InsteadCarry budget quantities and hours as well, so productivity can be tracked.
MistakeLetting the budget total drift from the estimate during mapping.
InsteadCheck that the original control budget equals the estimate cost and that every line traces back to estimate items.
MistakeAbsorbing buyout gains into other lines.
InsteadRecord gains and losses visibly, in the subcontract lines or a buyout reserve.
MistakeSpreading contingency across cost lines at the start.
InsteadHold contingency in its own line and record every draw as a documented transfer.
MistakeAdjusting budget lines each month to match actual cost.
InsteadFix the original budget; change it only through approved changes, buyout adjustments and documented transfers.
Summary and key terms
- The estimate must be converted into a control budget organized by cost code and cost type before work starts.
- A turnover meeting passes quotes, assumptions, exclusions, risks and methods from estimating to the project team.
- Self-performed budget lines should carry quantities and hours as well as dollars.
- The original control budget must total the estimate cost and trace back to estimate items.
- Buyout gains and losses should be recorded visibly, not absorbed into other lines.
- Contingency, allowances, buyout reserve and fee each need their own line and rules.
- After set-up, the budget changes only through approved changes, buyout adjustments and documented transfers.
- Turnover meeting
- The meeting where estimators hand the estimate and its assumptions to the project team.
- Cost type
- The category of cost on a budget line: labor, material, equipment, subcontract or other.
- Original budget
- The control budget as first set up from the estimate.
- Current budget
- The original budget plus approved changes, buyout adjustments and transfers.
- Buyout
- Awarding subcontracts and purchase orders after contract award.
- Buyout gain or loss
- The difference between the amount carried in the budget and the price finally agreed.
- Budget transfer
- A documented movement of budget between lines that nets to zero.
- Contractor's contingency
- A budget line covering risks within the contractor's scope.
- Allowance
- An amount carried for work described but not fully defined, governed by the contract.
- General conditions
- Time-related site costs such as supervision, offices, utilities and hoisting.
Practice problems
Work each problem on paper first, then reveal the answer to check.
List four items in an estimate turnover package.
Show answer
Bid summary, quotes carried and leveling sheets, self-performed takeoff and productivity, method assumptions, allowances, exclusions, risk register, schedule.
Why should self-performed budget lines carry hours?
Show answer
So the team can separate productivity problems from wage or quantity problems.
An estimate totals $9,640,000 in cost. The control budget totals $9,612,000. What should be done?
Show answer
Find the missing $28,000 before the budget is fixed; the totals must match.
A package carried at $480,000 is bought for $455,000. What is the buyout result?
Show answer
A $25,000 gain.
What is wrong with spreading contingency into unit rates?
Show answer
Contingency disappears from view, so nobody knows how much risk cover remains.
A transfer moves $12,000 from contingency to masonry labor. Does the total budget change?
Show answer
No; transfers net to zero.
What changes the total budget?
Show answer
Approved change orders.
General conditions total $1,440,000 over 12 months. What is the average monthly rate?
Show answer
$120,000 per month.
Who usually controls the owner's contingency?
Show answer
The owner.
Why must budget transfers be approved and recorded?
Show answer
So the current budget can be traced to the original and variances are not hidden.
Lesson quiz · 5 questions
Score 60% or more to complete this lesson.
Create a free account to save your progress, take quizzes and earn a certificate.