SMW-420 · Lesson 7 of 12 · 19 min

Estimating material, equipment and overhead

With the quantities measured and the labour estimated, Halima Noor still had more than half of the Eastgate estimate to build: the material Keelson would buy, the equipment it would use, the job costs that are not labour or material, the company overhead every job must carry, the allowance for risk, and the profit. Then the whole estimate had to be turned into a price on Northpoint Mechanical's bid form by the deadline on bid day. This lesson follows that process to the moment Halima submitted the bid, with Kai Ferreira handling the material pricing and the bid-day spreadsheet.

Material pricing

Material is priced from the take-off quantities and current supplier quotations. The largest single item at Eastgate is galvanized coil and sheet for the rectangular duct, followed by strip coil for the spiral machine, stainless sheet for the isolation and laboratory exhaust, and purchased items: fire and smoke dampers, volume dampers, access doors, flexible connectors, round fittings, sealant, tape, fasteners, hanger rod, strap, anchors and seismic bracing kits. Halima asks at least two suppliers for each major item and records the quotation number, the date, the validity period and any conditions, such as whether the price includes delivery or is held only for thirty days.

Steel prices move, sometimes sharply, and a hospital job may not buy most of its metal until a year after bid day. Halima deals with that in three ways. She asks suppliers for a price held for a stated period or tied to a published index. She includes an escalation allowance for metal bought later, based on the expected purchase dates. And, where the bid documents allow it, she qualifies the bid so that large changes in steel price after a stated date are adjusted. Each choice is a business decision about who carries the risk, and the bid must say clearly which one Keelson has made.

Where each material price comes from.
Material itemBasis of quantityPricing source
Galvanized coil and sheetTake-off weight plus wasteMill or service centre quotation, escalation allowance
Spiral strip coilSpiral length converted to weightCoil supplier quotation
Stainless sheetTake-off weight plus wasteService centre quotation
Fire and smoke dampersCount by size and typeManufacturer's representative quotation
Accessories and fittingsCount by type and sizeSupplier quotations and catalogue
Sealant, tape, fastenersPercentage of duct weight or countShop records and supplier prices
Hangers, anchors, bracingHanger take-offSupplier quotation

Waste and yield

Not every kilogram or pound of coil bought ends up in the building. Straight duct cut on the coil line wastes little, but fittings cut on the plasma table leave skeletons of scrap between the parts, and the last part of every coil and every sheet is offcut. Keelson's records show the yield, the share of purchased metal that ends up in finished duct, for each kind of work. The estimate divides the take-off weight by the expected yield to find the weight to buy. Lessons 8 and 9 show how nesting and coil planning raise the yield; the estimator uses the shop's actual yield, not the best the software has ever achieved.

# Material cost of galvanized metal with yield and escalation (illustrative)
straight_mass = 12100     # take-off weight of straight duct, kg
fitting_mass = 6500      # take-off weight of fittings, kg
yield_straight, yield_fittings = 0.96, 0.80
buy = straight_mass / yield_straight + fitting_mass / yield_fittings
price_now = 2.40         # dollars per kg
escalation = 0.06        # expected increase by the purchase date
cost = buy * price_now * (1 + escalation)
print(f"metal to buy {buy:,.0f} kg (take-off {straight_mass + fitting_mass:,} kg)")
print(f"metal cost with escalation {cost:,.0f} dollars")
Output
metal to buy 20,729 kg (take-off 18,600 kg)
metal cost with escalation 52,735 dollars

Equipment and job costs

Equipment is priced separately from labour. Keelson owns its shop machinery, and the cost of using it is recovered through a shop rate or an equipment charge per hour of machine time, but field equipment is often rented: scissor lifts and boom lifts, material hoists if the general contractor does not supply one, duct jacks, welding machines for the stainless exhaust, and job-site storage containers. Halima prices rented equipment by the expected rental duration from the schedule, plus delivery, pickup, fuel and damage waiver. A lift sitting idle on site for a month because the floor is not ready still costs money, so the schedule matters.

Job costs, sometimes called general conditions or field indirect costs, are the costs of running this particular job: trucking from the shop to the site, the site trailer or shared office space, small tools and consumables, safety supplies, temporary protection of finished duct, cleaning and capping of duct ends for the hospital's infection-control requirements, permits that belong to the trade, testing such as duct leakage tests in SMW-310, submittal printing, travel and parking. They are often modest individually but add up on a long hospital job.

Overhead, contingency and profit

Company overhead is the cost of running Keelson as a business: the office, the estimating department, accounting, insurance, vehicles that are not charged to jobs, software, the owner's salary and the cost of bidding jobs that Keelson does not win. Overhead is recovered by adding a percentage to the direct cost of each job, set from the company's annual budget and expected volume. If the shop wins less work than it expected, the same overhead is spread over fewer jobs, and the percentage it should have charged was too low.

Contingency is an allowance for risks that are real but uncertain, such as the steel price, the productivity at the existing hospital connection or the chance that coordination adds fittings. A good contingency is tied to specific risks rather than a round number added at the end, so that Halima can explain it and, if she must cut the price, cut it knowingly. Profit is what the company earns for taking the job's risk and investing its people and capital. Markup on a bid is usually applied as overhead and profit on top of direct cost, and the percentages vary with the market, the size of the job and how much the shop wants the work.

# Building the bid from direct costs (illustrative, dollars)
direct = {"labour": 1460000, "material": 880000, "equipment": 145000, "job costs": 118000}
cost = sum(direct.values())
contingency = 0.03 * cost
overhead = 0.11 * (cost + contingency)
profit = 0.06 * (cost + contingency + overhead)
subtotal = cost + contingency + overhead + profit
bond = 0.009 * subtotal
price = subtotal + bond
for k, v in direct.items():
    print(f"{k:12s} {v:12,.0f}")
for k, v in (("contingency", contingency), ("overhead", overhead), ("profit", profit), ("bond", bond)):
    print(f"{k:12s} {v:12,.0f}")
print(f"{'bid price':12s} {price:12,.0f}")
Output
labour          1,460,000
material          880,000
equipment         145,000
job costs         118,000
contingency        78,090
overhead          294,920
profit            178,561
bond               28,391
bid price       3,182,962
A single stacked bar showing how a bid price is built up: labour as the largest segment at the bottom, then material, equipment, job costs, contingency, overhead, profit and a thin bond segment at the top. Each segment is labelled with its name.
How a sheet metal bid is built up from direct costs, contingency, overhead, profit and bond. Proportions are illustrative.

Bonds, insurance and contract terms

Many hospital jobs require subcontractors to provide a bid bond with the bid and, if they win, a performance bond and a labour and material payment bond. A surety company issues the bonds after assessing Keelson's financial strength and record, and charges a premium that is usually a small percentage of the contract value, with the rate depending on the contractor and the size of the work. The premium is a cost of the job and belongs in the estimate. Insurance requirements, such as the general liability limits and the wrap-up or project insurance arrangements, also affect cost, and Halima reads them in the bid documents rather than assuming last year's job applies.

Contract terms change the price too. In Canada the subcontract is often based on a standard form, such as the Canadian Construction Association's stipulated price subcontract, or on the mechanical contractor's own form, with holdback rules set by the provincial legislation: in Nova Scotia, the Builders' Lien Act requires the owner and contractors to hold back a percentage of payments until the lien period passes. Holding back part of every payment for months has a financing cost. Payment terms, liquidated damages for delay, warranty periods and the change order markup allowed are all read before pricing, because each carries cost or risk.

Bid day

The last day of a bid is compressed and stressful. Supplier and sub-trade quotations arrive in the final hours; addenda must be acknowledged; the bid form must be completed exactly as instructed, including separate prices, alternates and unit prices if they are requested; and the bid must reach Northpoint Mechanical before the deadline. Halima's team prepares the estimate days before, so that bid day is only about updating late prices and making the final decision on markup. A spreadsheet on bid day has a single summary sheet where each late quotation updates one cell, and a list of items still waiting for a price.

Owners and general contractors publish the rules for calling and awarding bids. Many Canadian public owners follow guidance such as the CCDC 23 guide to calling bids and awarding construction contracts, and some regions run a bid depository through the local construction association, where trade bids are filed by a set time before the general contractors' close. Canadian tender law, starting with the Supreme Court's Ron Engineering decision, treats a compliant bid as forming a contract to keep the bid open and to be evaluated fairly, so a bid with a serious error usually cannot simply be withdrawn after the close. Halima therefore checks the bid form twice before it goes.

# Bid-day update: late quotations replace estimated allowances
estimate = {"fire and smoke dampers": 196000, "spiral strip coil": 41000, "stainless sheet": 64000}
quotes = {"fire and smoke dampers": 183500, "stainless sheet": 67200}
change = 0
for item, allowance in estimate.items():
    q = quotes.get(item)
    if q is None:
        print(f"{item:24s} still waiting, carry allowance {allowance:,}")
    else:
        change += q - allowance
        print(f"{item:24s} quote {q:,} vs allowance {allowance:,}  change {q - allowance:+,}")
print(f"net change to direct cost: {change:+,} dollars")
Output
fire and smoke dampers   quote 183,500 vs allowance 196,000  change -12,500
spiral strip coil        still waiting, carry allowance 41,000
stainless sheet          quote 67,200 vs allowance 64,000  change +3,200
net change to direct cost: -9,300 dollars

Qualifications and after the bid

A bid is not only a number. Keelson attaches a short, clear list of qualifications: the scope sheet's inclusions and exclusions, the basis of the steel price, the assumed schedule and number of mobilizations, and any assumptions about hoisting, laydown and working hours. Qualifications must be stated in a way the bid documents allow; a bid that is heavily qualified may be treated as non-compliant. After the close, Halima keeps a bid result record: the prices of other bidders if they are known, the winning price, and her notes on where her estimate was high or low. Those records feed the next estimate and the labour units.

Halima's estimating work is a short version of what the construction management program covers in depth in its estimating and bidding courses. For a trade contractor the principles are the same, with one difference: the sheet metal shop also has to manage its own factory, so the estimate is also a plan for the shop's workload. Winning Eastgate meant reserving a large share of the coil line and plasma table for over a year, which affected every other job in the shop.

Worked problem

Checking the markup arithmetic

Direct costs are 2,603,000 dollars. Contingency is 3 percent of direct cost, overhead is 11 percent of cost plus contingency, profit is 6 percent of the total before profit, and the bond premium is 0.9 percent of the subtotal. What is the bid price?

Show solution
  1. Contingency: 2,603,000 × 0.03 = 78,090.
  2. Overhead: (2,603,000 + 78,090) × 0.11 = 294,920.
  3. Profit: (2,681,090 + 294,920) × 0.06 = 178,561.
  4. Subtotal 3,154,571; bond 28,391; bid price about 3,182,962 dollars.

Answer: The code above gives the same price. Writing out the arithmetic once by hand is a good check on any bid spreadsheet.

Common mistakes

  • MistakePricing metal from today's price for a purchase a year away.

    InsteadUse held prices, an escalation allowance or a clear steel price qualification.

  • MistakeUsing the best nesting yield the software ever achieved.

    InsteadUse the shop's actual yield records for each kind of work.

  • MistakeAdding contingency as a round number at the end.

    InsteadTie contingency to specific, named risks.

  • MistakeIgnoring holdback or retainage and payment terms.

    InsteadRead the contract terms and include the financing and risk costs.

  • MistakeLeaving all quotations to the last hour of bid day.

    InsteadPrepare the estimate days ahead and keep a list of items waiting for prices.

Summary and key terms

  • Material is priced from take-off quantities and dated supplier quotations, with waste and escalation allowed for.
  • Yield records turn take-off weights into purchase weights.
  • Equipment and job costs are priced from the schedule and the site conditions.
  • Overhead, risk-based contingency, profit and bond premiums are added to direct cost.
  • Contract terms such as holdback or retainage, payment and damages affect price.
  • Bid day is about late prices and the markup decision; qualifications and bid records complete the process.
Yield
The share of purchased metal that ends up in finished duct.
Escalation
An allowance for prices rising between bid day and purchase.
Job costs
Costs of running a particular job other than direct labour and material.
Overhead
The cost of running the business, recovered as a percentage on each job.
Contingency
An allowance for specific uncertain risks.
Bid bond
A surety guarantee that the bidder will sign the contract and provide the required bonds if awarded.

Practice problems

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

  1. The take-off is 10,000 kg of fittings and the yield is 80 percent. How much metal must be bought?

    Show answer

    10,000 / 0.80 = 12,500 kg.

  2. Why should contingency be tied to specific risks?

    Show answer

    So it can be explained and, if the price must be cut, cut knowingly.

  3. What is a bid bond for?

    Show answer

    To guarantee the bidder will sign the contract and provide the required bonds if its bid is accepted.

  4. Why does holdback or retainage cost the contractor money?

    Show answer

    Part of each payment is withheld for months, so the contractor finances that amount.

Lesson quiz · 5 questions

Score 60% or more to complete this lesson.

Take the quiz