Sign in or create a free account to continue.

CON-330 · Lesson 12 of 12 · 29 min

Capstone: a buyout and procurement plan for a mid-rise project

This capstone brings the course together. You will prepare a buyout and procurement plan for a mid-rise building, using Larch Street Residences as the worked example and then applying the same method to a variation. The plan is the document a project manager would present to senior management in the first two weeks after award, and keep updated until the last subcontract is closed out. The worked example shows each part with Halyard's numbers; the assignment at the end asks you to produce your own.

The project and the brief

Project summary.
ItemLarch Street Residences
BuildingSix storeys: concrete podium with ground-floor retail and parking, five storeys of wood-frame apartments (72 units), flat roof with mechanical equipment
ContractStipulated price, $36.4 million, 78-week schedule, liquidated damages $4,000 per day
OwnerPrivate developer; no public procurement rules apply
SiteUrban lot, building covers most of it; one gate, tower crane inside the footprint, limited laydown
Self-performConcrete formwork and placing; general labour
Main risks identified at bidSwitchgear and elevator lead times, lumber and rebar price volatility, window bid spread, tight site logistics

The plan has eight parts, matching the course: packages and strategy, responsibility matrix, procurement schedule, prequalification, selection and award, contracts and terms, supply chain risk, and logistics and closeout. Public procurement requirements would be a ninth part on a public project; the variation at the end adds them.

Part 1: packages and buyout budget

The starting point is the estimate's trade budgets, regrouped into the packages chosen in Lesson 2. Halyard separated switchgear as a contractor-direct purchase so it could be ordered before the electrical subcontract was awarded, and kept concrete formwork and placing in house.

# Larch Street: package list, budgets and final commitments (illustrative)
packages = [  # (package, route, budget, committed)
    ("Excavation and shoring",        "sub",  1_450_000, 1_392_000),
    ("Reinforcing steel",             "sub",    820_000,   865_500),
    ("Ready-mix concrete",            "PO",     910_000,   884_000),
    ("Concrete formwork and placing", "self", 3_095_000, 3_095_000),
    ("Wood framing",                  "sub",  3_900_000, 3_745_000),
    ("Roofing",                       "sub",    610_000,   596_000),
    ("Windows and storefront",        "sub",  2_350_000, 2_244_000),
    ("Exterior cladding",             "sub",  1_780_000, 1_812_000),
    ("Mechanical",                    "sub",  5_600_000, 5_812_000),
    ("Electrical",                    "sub",  3_700_000, 3_598_000),
    ("Switchgear (direct purchase)",  "PO",     410_000,   418_000),
    ("Elevators",                     "sub",    640_000,   702_000),
    ("Fire protection",               "sub",    690_000,   655_000),
    ("Drywall and ceilings",          "sub",  2_250_000, 2_223_000),
    ("Flooring",                      "sub",    980_000,   951_000),
    ("Painting",                      "sub",    520_000,   506_000),
    ("Millwork and cabinets",         "sub",  1_150_000, 1_188_000),
]
budget = sum(p[2] for p in packages)
committed = sum(p[3] for p in packages)
print(f"Packages: {len(packages)}  budget {budget:,}  committed {committed:,}  result {budget - committed:+,}")
for route in ("sub", "PO", "self"):
    b = sum(p[2] for p in packages if p[1] == route)
    print(f"  {route:4} {b:>11,}  ({b / budget:.0%} of package budgets)")
print(f"Contract value not in these packages (general conditions, other trades, fee, contingency): {36_400_000 - budget:,}")
losses = sorted([(p[0], p[2] - p[3]) for p in packages if p[3] > p[2]], key=lambda x: x[1])
print("Largest overruns:", ", ".join(f"{n} {d:,}" for n, d in losses[:3]))
Output
Packages: 17  budget 30,855,000  committed 30,686,500  result +168,500
  sub   26,440,000  (86% of package budgets)
  PO     1,320,000  (4% of package budgets)
  self   3,095,000  (10% of package budgets)
Contract value not in these packages (general conditions, other trades, fee, contingency): 5,545,000
Largest overruns: Mechanical -212,000, Elevators -62,000, Reinforcing steel -45,500

The completed buyout shows a net saving of about $168,500 across $30.9 million of package budgets, or about 0.5 %. Savings on framing, windows, electrical and excavation were largely offset by overruns on mechanical, elevators and reinforcing steel. Subcontracts account for about 86 % of package budgets, purchase orders 4 % and self-performed work 10 %, consistent with the industry pattern in Lesson 1. The roughly $5.5 million outside these packages covers general conditions, smaller trades such as doors, hardware and specialties, the contractor's fee and contingency.

Horizontal bar chart of buyout results by package for Larch Street, showing savings to the right in green and overruns to the left in red. Mechanical and elevators show the largest overruns; framing and windows the largest savings. A total bar at the bottom shows the small net saving.
Buyout result by package for Larch Street (illustrative).

Part 2: responsibility matrix

The plan includes the responsibility matrix for commonly disputed items. For Larch Street, the matrix was issued with every bid package and attached to every subcontract. The capstone version should cover at least the following interfaces: firestopping by penetrating trade; blocking and backing; rooftop curbs, flashing, power and controls; window perimeter sealant and air barrier transitions at cladding; temporary heat, power and protection; access panels; final cleaning; and elevator pit, sump and electrical requirements. Run the one-owner check from Lesson 2 on it before issue.

Part 3: procurement schedule

The procurement schedule works backward from need-by dates, using expected submittal durations from Lesson 7 rather than single cycles, and lead times confirmed with suppliers at the time of planning.

# Procurement schedule for long-lead and critical packages (weeks after award)
import math
pkgs = {  # name: (need_by, ship, fab, first_cycle, extra_cycle, p_resubmit, award, bid)
    "Switchgear":      (56, 2, 40, 5, 3, 0.30, 2, 2),
    "Elevators":       (52, 3, 30, 7, 3, 0.40, 2, 3),
    "Windows":         (40, 2, 18, 8, 4, 0.40, 2, 3),
    "Mechanical RTUs": (50, 2, 26, 6, 3, 0.25, 2, 3),
    "Reinforcing":     (9,  1,  1, 2, 1, 0.20, 1, 1),
}
float_weeks = 2
rows = []
for n, (need, ship, fab, first, extra, p, award, bid) in pkgs.items():
    subm = first + (1 / (1 - p) - 1) * extra
    chain = ship + fab + subm + award + bid + float_weeks
    issue = need - chain
    rows.append((issue, n, math.ceil(subm), chain))
for issue, n, subm, chain in sorted(rows):
    print(f"{n:16} submittals ~{subm:2} wk  chain {chain:5.1f} wk  issue by wk {issue:5.1f}")
Output
Reinforcing      submittals ~ 3 wk  chain   8.2 wk  issue by wk   0.8
Switchgear       submittals ~ 7 wk  chain  54.3 wk  issue by wk   1.7
Windows          submittals ~11 wk  chain  37.7 wk  issue by wk   2.3
Elevators        submittals ~ 9 wk  chain  49.0 wk  issue by wk   3.0
Mechanical RTUs  submittals ~ 7 wk  chain  42.0 wk  issue by wk   8.0

Even with the shortened bid period and faster first review agreed in Lesson 2, switchgear must go out within the first two weeks, which is why Halyard issued it immediately on a letter of intent with a capped deposit (Lessons 4 and 6). Reinforcing steel, needed for the footings, must also be bought in the first week. Windows and elevators follow by week 3, and rooftop units by week 8. The schedule is presented as a simple bar chart in the plan, with each package's latest bid, award, submittal approval, release and delivery dates.

Gantt chart of five packages showing bid, award, submittal, fabrication and shipping segments ending at need-by markers. Switchgear starts before week zero; reinforcing steel starts at week 1 and ends at week 6.
Procurement timeline for long-lead and critical packages (illustrative).

Part 4: prequalification

The plan states the prequalification criteria, weights, knock-out requirements and threshold before any bids are seen (Lesson 3), and lists the approved bidders for each package. For Larch Street, Halyard required at least three approved bidders on every package above $500,000, a valid trade certification or licence, insurance meeting the owner's requirements, and an acceptable safety record. Packages where fewer than three firms qualified, such as elevators, were flagged in the risk register as limited-competition packages.

Prequalification summary for major packages.
PackageBidders invitedApprovedNotes
Mechanical53One excluded on insurance (knock-out); one below threshold on finances and capacity
Electrical44One flagged on safety rate, approved after review of its improvement plan
Windows and storefront43One lacked experience with this system
Elevators32Limited market; flagged as limited competition
Wood framing54Capacity checked against current backlog for each

Part 5: selection and award

For each major package the plan records the levelled bids, scope review outcome, award decision and reason. Most Larch Street packages went to the lowest compliant levelled bid among approved firms. The windows award illustrates the value of the scope review: confirming plugs with the low bidder turned an $18,000 levelled advantage into a $47,000 confirmed one (Lesson 4). Where the low bidder was not chosen, the reason was recorded.

Award record for selected packages.
PackageLow base bidLow levelled bidAwardedReason
WindowsGlaze 1Glaze 1Glaze 1 at $2,244,000Lowest after scope review confirmed plugs
MechanicalMech 1Mech 1Mech 1 at $5,812,000Lowest compliant; Mech 2 not prequalified
ElectricalElec AElec AElec A at $3,598,000Lowest; expected delay risk did not outweigh price gap (Lesson 1)
DrywallBoard Co.Board Co.Board Co. at $2,182,000 plus $41,000 sealant bought separatelyLowest even after adding the excluded sealant

Part 6: contracts and terms

The plan names the subcontract and purchase order forms, the attachments each must carry, and the key terms checked against the prime contract (Lesson 5).

Key terms checked against the prime contract.
TermPrime contractSubcontract standardCheck
Warranty24 months from substantial performance24 months from substantial performance of the projectMatches
Notice of claim10 working days5 working daysShorter at subcontract level
Delay damages$4,000 per dayProportionate share for subcontractor-caused delay, capped at 5 % of subcontractProportionate and capped
Billing dateOwner invoice on the 25th for work to the 20thSubcontractor billing for work to the 20th, due on the 20thAligned
InsuranceCGL $5 million, owner as additional insuredCGL $5 million, owner and Halyard as additional insuredsMatches
EscalationNoneNone except rebar and lumber clauses agreed with ownerMatched up the chain

One correction from the course is worth highlighting: at bid, Halyard accepted a lumber escalation clause from its framer without a matching clause with the owner. In the plan, Halyard negotiated a matching lumber and rebar adjustment clause with the owner in exchange for a reduced contingency, closing the gap identified in Lesson 8.

Part 7: supply chain risk register

# Supply chain risk register with responses and owners (illustrative)
risks = [
    ("Switchgear lead time",       4, 5, "LOI and capped deposit at week 0; production slot in writing; weekly expediting", "PM"),
    ("Elevator lead time",         3, 4, "Award by week 3; early pit and hoistway details to supplier", "PM"),
    ("Lumber price",               3, 4, "Matched escalation clause with owner; early buy for floors 2-3", "PM"),
    ("Rebar price",                3, 3, "Matched escalation clause; deposit to lock price", "Coordinator"),
    ("Cross-border tariff change", 2, 4, "Domestic sources for steel and aluminum; tariff clause in owner contract", "Procurement"),
    ("Window supplier quality",    2, 3, "Factory visit before release; mock-up and water test", "Superintendent"),
]
for name, p, i, response, owner in sorted(risks, key=lambda r: -r[1] * r[2]):
    print(f"[{p * i:2}] {name:27} -> {response} ({owner})")
Output
[20] Switchgear lead time        -> LOI and capped deposit at week 0; production slot in writing; weekly expediting (PM)
[12] Elevator lead time          -> Award by week 3; early pit and hoistway details to supplier (PM)
[12] Lumber price                -> Matched escalation clause with owner; early buy for floors 2-3 (PM)
[ 9] Rebar price                 -> Matched escalation clause; deposit to lock price (Coordinator)
[ 8] Cross-border tariff change  -> Domestic sources for steel and aluminum; tariff clause in owner contract (Procurement)
[ 6] Window supplier quality     -> Factory visit before release; mock-up and water test (Superintendent)

Every significant risk has a named owner and a concrete response, most of them actions taken in the first weeks after award. The register is reviewed at each monthly procurement meeting and closed out item by item as packages are delivered.

Part 8: logistics and closeout

The plan attaches the site logistics plan by phase and states the rules every subcontract carries: delivery booking 48 hours ahead, crane windows by trade, laydown allocations, unloading responsibility and protection of stored materials (Lesson 9). It also sets the closeout requirements from the start: the documents each trade must deliver, the target date for each trade's closeout, and the release documents required before final payment (Lesson 11).

# Commitment curve: cumulative value committed by week of buyout (illustrative)
awards_by_week = {0: 418_000, 1: 1_392_000, 2: 865_500 + 884_000, 3: 702_000 + 3_745_000,
                  4: 5_812_000, 5: 3_598_000 + 655_000, 6: 2_244_000, 8: 1_812_000,
                  10: 596_000 + 2_223_000, 14: 951_000 + 506_000 + 1_188_000}
total_bought_out = 27_591_500        # all packages except self-performed concrete
cum = 0
for wk in sorted(awards_by_week):
    cum += awards_by_week[wk]
    print(f"week {wk:2}: {cum / total_bought_out:5.0%} of bought-out value committed")
Output
week  0:    2% of bought-out value committed
week  1:    7% of bought-out value committed
week  2:   13% of bought-out value committed
week  3:   29% of bought-out value committed
week  4:   50% of bought-out value committed
week  5:   65% of bought-out value committed
week  6:   74% of bought-out value committed
week  8:   80% of bought-out value committed
week 10:   90% of bought-out value committed
week 14:  100% of bought-out value committed

Halyard committed about two-thirds of the bought-out value within the first five weeks and all of it by week 14. Front-loading buyout this way reduces exposure to price changes and lead-time surprises, though the finishing packages (flooring, painting, millwork) can reasonably wait until their designs and samples are settled.

Variation: the same building as a public project

Suppose the same building were procured by a federal agency as a $48 million laboratory and office building. The plan would need a ninth part covering the Buy Canadian Policy requirement for Canadian steel, aluminum and wood (with origin certification flowing into the rebar, structural steel, aluminum storefront and framing packages), a 5 % Indigenous participation commitment planned by package, federal fair wage requirements, integrity checks on every subcontractor and supplier, and security clearance lead times. The procurement schedule would lengthen for packages where Canadian sources have longer lead times, and the prequalification and invitation documents would change accordingly (Lesson 10).

Your assignment

Prepare a buyout and procurement plan for the following variation of Larch Street. The building is the same, but: the contract is $39.8 million; the owner has pre-purchased the elevators and will assign the purchase order to the contractor; the window package must use a specified European glazing system with a 26-week fabrication time; and the site has an adjacent lot available for laydown for the first 30 weeks only. Your plan should contain the eight parts shown above, with the following deliverables.

Capstone deliverables and what a strong answer includes.
DeliverableWhat a strong answer includes
Package list and budgetPackages with route (subcontract, purchase order, self-perform), budgets and reasons for key packaging decisions, including how the assigned elevator order is handled
Responsibility matrixAt least 15 disputed items, each with one owner, checked for gaps and overlaps
Procurement scheduleBackward schedule with expected submittal durations, confirmed lead times (cite your sources) and recovery options for any late package
PrequalificationCriteria, weights, knock-outs and threshold set in advance; approved bidders by major package
Award approachLevelling and scope review plan; when best value would be used and why
Contracts and termsForms and attachments; terms checked against the prime contract, including the assigned elevator order and import terms for the glazing system
Supply chain risksRegister with scores, responses and owners, including currency, Incoterm and tariff exposure on the European glazing
Logistics and closeoutPhased laydown plan using the adjacent lot, delivery rules, closeout requirements by trade

Worked problem

Handling an assigned owner purchase order

The owner bought the elevators for $715,000 before Halyard was hired, with a 30 % deposit paid. The owner will assign the purchase order to Halyard. What should Halyard check before accepting the assignment?

Show solution
  1. Whether the elevator order's delivery dates fit Halyard's schedule, and who carries the delay risk if they do not.
  2. Whether warranties start at delivery, at installation or at substantial performance, and whether they match the prime contract.
  3. Who holds the deposit protection and whether the remaining $500,500 is in Halyard's contract price.
  4. Whether the supplier's terms limit liability in ways the prime contract does not allow, and whether submittal and installation responsibilities are clearly assigned.

Answer: An assigned order transfers obligations Halyard did not negotiate. Halyard should either accept them with matching relief in the prime contract (for example, no liability for supplier delays it cannot control) or negotiate changes with the owner and supplier before taking the assignment.

Common mistakes

  • MistakePresenting a buyout plan as a list of packages only.

    InsteadInclude matrix, schedule, prequalification, award approach, terms, risks, logistics and closeout.

  • MistakeUsing single submittal cycles in the procurement schedule.

    InsteadUse expected durations with resubmittal probabilities from experience.

  • MistakeLeaving escalation and tariff gaps between contract levels.

    InsteadCheck that adjustment clauses and tariff terms are matched up and down the chain.

  • MistakeRecording awards without reasons.

    InsteadRecord the levelled bids, scope review outcome and reason for every major award.

  • MistakeAccepting assigned owner purchase orders without review.

    InsteadCheck schedule, warranty, deposit, liability and responsibility terms before taking the assignment.

  • MistakeLetting the plan go stale after the first month.

    InsteadUpdate the buyout log, schedule and risk register at each procurement meeting until closeout.

Summary and key terms

  • A buyout and procurement plan has eight core parts: packages and budget, responsibility matrix, procurement schedule, prequalification, selection and award, contracts and terms, supply chain risks, and logistics and closeout.
  • The buyout log shows the net result and where savings and overruns arose.
  • The procurement schedule uses need-by dates, confirmed lead times and expected submittal durations.
  • Prequalification criteria and award reasons are recorded before and after bidding.
  • Key subcontract terms are checked against the prime contract, including escalation and tariff terms.
  • Every significant supply chain risk has a score, a response and an owner.
  • Public projects add domestic content, participation, wage and integrity requirements to the plan.
Buyout and procurement plan
The document setting out how a project will be bought, updated through closeout.
Commitment curve
Cumulative value committed over the buyout period.
Assigned purchase order
An order placed by one party and transferred to another, such as an owner's pre-purchase assigned to the contractor.
Limited-competition package
A package with fewer qualified bidders than the contractor's minimum.
Award record
Documentation of bids, scope review and the reason for each award.
Procurement meeting
A regular review of buyout status, schedule, risks and logistics.
Net buyout result
Total package budgets minus total commitments.
Bought-out value
The value of work and supply procured from others rather than self-performed.
Recovery option
An action that regains time on a late package.
Matched clause
A contract term mirrored at the next level up or down the chain.

Practice problems

Work each problem on paper first, then reveal the answer to check.

  1. List the eight core parts of the plan.

    Show answer

    Packages and budget, responsibility matrix, procurement schedule, prequalification, selection and award, contracts and terms, supply chain risks, logistics and closeout.

  2. Package budgets total $30,855,000 and commitments $30,686,500. What is the net result?

    Show answer

    $168,500 saving.

  3. Why was switchgear bought as a direct purchase on Larch Street?

    Show answer

    To order it before the electrical subcontract was awarded, because its lead time was critical.

  4. Need-by week 40; shipping 2, fabrication 26, expected submittals 9, award 2, bid 3, float 2. When must the bid package go out?

    Show answer

    Chain 44 weeks; issue by week −4, so it is already late and needs recovery.

  5. Name two recovery options for that package.

    Show answer

    Shorter bid period, faster consultant review, production slot reservation on an LOI, a different approved supplier.

  6. What should an award record contain?

    Show answer

    Levelled bids, scope review outcome, the award and the reason.

  7. Why negotiate a matching escalation clause with the owner?

    Show answer

    So increases the contractor must pay subcontractors can be recovered.

  8. Name three risks a European glazing system adds.

    Show answer

    Long lead time, currency risk, Incoterm and transit risk, tariffs, replacement difficulty.

  9. The mechanical subcontract, committed in week 4, is $5.8 million of $27.6 million bought-out value. What share is that?

    Show answer

    About 21 %.

  10. What extra parts would a federal version of the plan need?

    Show answer

    Domestic content, participation goals or commitments, wage rules, integrity checks and security clearances.

Lesson quiz · 5 questions

Score 60% or more to complete this lesson.

Take the quiz