CON-330 · Lesson 9 of 12 · 26 min

Logistics, site delivery and materials management

Procurement does not end when the truck is dispatched. Materials must arrive at a site that can receive them, be unloaded safely, checked against the order, stored where they will not be damaged or stolen, and moved to the work face when the crews need them. On a tight urban site such as Larch Street, where the building covers almost the whole lot, space and crane time are among the scarcest resources on the project, and poor logistics show up quickly as double handling, damaged materials, idle crews and conflicts between trades. This lesson covers the site logistics plan, delivery scheduling, receiving and inspection, storage and protection, and the choice between just-in-time delivery and stockpiling. Crane and forklift safety are covered in HSE-219 and HSE-218.

The site logistics plan

The site logistics plan is a drawing, updated by phase, showing how people, vehicles and materials move on and around the site. It is prepared by the superintendent with the project manager, reviewed with major trades during buyout so that their bids reflect it, and attached to each subcontract.

Plan view of an urban site with the building footprint occupying most of the lot. A tower crane sits inside the footprint with its swing radius shown. A single site gate opens to the street with a delivery zone and a street occupancy permit area. A small laydown area is marked at one corner, a material hoist on one face of the building, site offices on the sidewalk hoarding, and a pedestrian walkway around the site.
Simplified logistics plan for Larch Street during the wood-frame phase (illustrative).
Questions a site logistics plan answers.
ElementQuestions the plan answers
Access and gatesWhere do trucks enter and leave? Turning radii, gate hours, flaggers
Street useWhich permits are needed for lane closures, hoarding and street occupancy? What do they cost?
HoistingCrane type, location and reach; hoist location; who books crane time
Laydown and storageWhere each trade may store material, for how long, and how much
UnloadingWho unloads (supplier, trade or contractor), with what equipment
Temporary facilitiesOffices, washrooms, power, water, waste bins, parking
Safety and the publicPedestrian routes, overhead protection, traffic control, emergency access
PhasingHow the plan changes as the building rises and space disappears

Logistics costs money, and the contract documents and subcontracts must say who pays. If the invitation to bid does not state that trades must book crane time through Halyard and are allowed, say, 4 crane hours per floor, or that each trade unloads its own deliveries, the trades will either price generously or claim extras later.

Crane and hoist time as a shared resource

On a building with a tower crane, crane time is usually provided by the general contractor and shared among trades. The procurement team should estimate each trade's crane demand during buyout and decide whether it is included in the general conditions or charged to the trades.

# Allocating tower crane hours during the wood-frame phase (illustrative)
crane_cost_per_hour = 285          # crane, operator and signal person, blended
demand_hours = {                   # per floor, five wood-frame floors
    "Wood framing (panels, trusses)": 22,
    "Windows":                         5,
    "Mechanical (RTU later, risers)":  3,
    "Drywall (board stocking)":        6,
    "Roofing (final floor only)":      0,
}
floors = 5
total = sum(h * floors for h in demand_hours.values()) + 14   # roofing stocking at the roof
available = 10 * 5 * 9.5          # weeks x days x hours in the phase
print(f"Crane demand: {total} h of {available:.0f} h available ({total / available:.0%})")
for trade, h in demand_hours.items():
    hrs = h * floors + (14 if trade.startswith("Roofing") else 0)
    print(f"{trade:32} {hrs:4} h  = {hrs * crane_cost_per_hour:>8,} at cost")
Output
Crane demand: 194 h of 475 h available (41%)
Wood framing (panels, trusses)    110 h  =   31,350 at cost
Windows                            25 h  =    7,125 at cost
Mechanical (RTU later, risers)     15 h  =    4,275 at cost
Drywall (board stocking)           30 h  =    8,550 at cost
Roofing (final floor only)         14 h  =    3,990 at cost

Total demand of about 194 hours over the phase uses less than half the available crane hours, so the crane is not a bottleneck on average. But demand is lumpy: framing panels and trusses need the crane for long blocks, while window and drywall stocking need it in short bursts, often on the same days. The logistics plan should assign daily crane windows by trade, and the subcontracts should say how crane time is booked and what happens to a trade that misses its window.

Scheduling deliveries

Every delivery to a constrained site is an event that must fit the site's gate hours, crane windows, laydown space and street permits. The contractor should require suppliers and subcontractors to book deliveries in advance through a delivery schedule, usually managed by the site coordinator.

Delivery scheduling rules.
ConstraintTypical rule
Delivery windowsBookings at least 48 hours ahead; deliveries outside window turned away or charged
Municipal limitsNoise by-laws, rush-hour restrictions, permitted hours for lane closures
Oversize loadsProvincial and municipal permits for oversize or overweight vehicles; escorts for large equipment
Unloading readinessCrane, forklift, rigging and crew available at the booked time
SequenceDeliveries in installation order (for example, panels floor by floor) to avoid rehandling

Large equipment deliveries deserve their own plan. The switchgear for Larch Street arrives on a flatbed, is lifted by a mobile crane through a temporary opening in the podium wall, and is rolled into the electrical room. The plan must confirm the room is ready (housekeeping pad cast, doors and openings sized), the crane and permits are booked, the supplier's representative is present for inspection, and the receiving crew knows the rigging points. A late delivery is bad; an early delivery with nowhere to put the equipment is also bad.

Just in time or stockpile?

Just-in-time (JIT) delivery brings material to site shortly before installation, often lifting it straight from the truck to the floor where it will be installed. It saves laydown space, rehandling and damage, but makes the work vulnerable to any delivery delay. Stockpiling holds material on or near site ahead of need, which protects the schedule but costs space, handling, protection and cash.

# Drywall for one residential floor: deliver just in time or stock early? (illustrative)
boards = 2_400                       # sheets per floor
# Just in time: crane lifts straight from truck into the floor two days before install
jit_crane_hours, crane_rate = 6, 285
jit_risk_cost = 0.10 * 3 * 4_800     # 10 % chance of a 3-day crew wait at 4,800 per day
# Stockpile: delivered with the floor below, stored on the slab, moved by hand later
stock_handling_hours, crew_rate = 40, 68
stock_damage = 0.02 * boards * 16    # 2 % damage at 16 per sheet
stock_protection = 900               # moisture protection and temporary storage
jit = jit_crane_hours * crane_rate + jit_risk_cost
stock = jit_crane_hours * crane_rate + stock_handling_hours * crew_rate + stock_damage + stock_protection
print(f"Just in time: {jit:,.0f}  (crane {jit_crane_hours * crane_rate:,} + expected delay {jit_risk_cost:,.0f})")
print(f"Stockpile:    {stock:,.0f}")
Output
Just in time: 3,150  (crane 1,710 + expected delay 1,440)
Stockpile:    6,098

For drywall on Larch Street, JIT is cheaper in expectation, because the crane lift is the same either way while stockpiling adds handling, damage and protection. The answer changes with the risk: if the supplier were unreliable or the delivery came from far away, the expected delay cost would rise and stockpiling might win. Critical long-lead equipment is usually delivered when the space is ready rather than stockpiled, but with buffer time in the schedule. Materials with volatile prices may be bought early and stored off site (Lesson 8), which is a financial decision as much as a logistics one.

Factors in the just-in-time decision.
Favours just in timeFavours stockpiling
Tight site with little laydownRemote site or long delivery distance
Reliable local supplierUnreliable or single-source supplier
Material easily damaged by weather or handlingRobust material, easily protected
Crane can lift directly from truck to floorWinter roads, seasonal access or strike risk
Stable pricesVolatile prices or expected tariff increases

Laydown space

Laydown space is often the binding constraint. The procurement team should estimate the space each trade needs at peak and compare it with what the site offers in each phase.

# Laydown demand versus space during the wood-frame phase (m2, illustrative)
available_m2 = 260
demand_m2 = {"Wood framing panels and trusses (2 floors ahead)": 140,
             "Windows (1 floor ahead)": 45,
             "Mechanical and electrical rough-in": 40,
             "Drywall (stocked on floors, not in laydown)": 0,
             "Waste bins and recycling": 30,
             "General contractor (forms, tools)": 25}
total = sum(demand_m2.values())
print(f"Demand {total} m2 vs available {available_m2} m2 -> {'shortfall' if total > available_m2 else 'ok'} of {abs(total - available_m2)} m2")
print(f"Framing one floor ahead instead of two saves about {140 // 2} m2")
Output
Demand 280 m2 vs available 260 m2 -> shortfall of 20 m2
Framing one floor ahead instead of two saves about 70 m2

Demand exceeds the available laydown by 20 m². Options include holding framing panels one floor ahead instead of two (saving about 70 m²), storing windows at the supplier and delivering just in time, or renting a nearby lot. Each has a cost or a risk, and the choice should be made and written into the subcontracts during buyout, not argued about on site.

Receiving and inspection

When material arrives, someone must check it against the purchase order and packing slip before the driver leaves: right product, right quantity, no visible damage, required documentation (mill certificates for rebar, labels for fire-rated products, factory test reports for equipment). Discrepancies are noted on the delivery receipt and reported to the supplier promptly, because purchase orders and sale of goods law usually give the buyer only a reasonable time to reject non-conforming goods (Lesson 6). Signing a clean receipt for damaged goods makes a claim much harder.

Receiving checklist.
Check on deliveryAction if it fails
Quantity and items match the packing slip and purchase orderNote shortage on the receipt; notify supplier the same day
No visible damage to packaging or productPhotograph, note on receipt, refuse if severe
Required certificates and labels presentQuarantine material until documents arrive
Correct product and finish (colour, size, rating)Refuse or quarantine; notify supplier and trade
Equipment shipped with accessories and manualsList missing items on the receipt
# Receiving log summary for October (illustrative)
deliveries = [  # (supplier, items ordered, items received, damaged, documents complete)
    ("Rebar supplier", 38, 38, 0, True),
    ("Lumber yard",    120, 116, 3, True),
    ("Window plant",   24, 24, 2, False),
    ("Electrical",     65, 63, 0, True),
]
for s, ordered, rec, dmg, docs in deliveries:
    issues = []
    if rec < ordered: issues.append(f"short {ordered - rec}")
    if dmg: issues.append(f"damaged {dmg}")
    if not docs: issues.append("documents missing")
    print(f"{s:15} {'; '.join(issues) if issues else 'complete'}")
fill = sum(d[2] for d in deliveries) / sum(d[1] for d in deliveries)
print(f"Line fill rate: {fill:.1%}")
Output
Rebar supplier  complete
Lumber yard     short 4; damaged 3
Window plant    damaged 2; documents missing
Electrical      short 2
Line fill rate: 97.6%

A short monthly summary like this turns individual delivery problems into supplier performance data. The window plant delivered damaged units and missing documents; repeated, that pattern should feed into the supplier's performance rating (Lesson 11) and into how Halyard prequalifies that plant next time.

Storage, protection and security

Materials on site are vulnerable to weather, damage, theft and simply getting lost. Wood framing, engineered wood and mass timber must be kept dry and off the ground; drywall and insulation must be protected from moisture; copper wire and tools attract theft; finished products such as cabinets, doors and fixtures are easily damaged by other trades. The subcontract should say who is responsible for protecting a trade's materials and installed work until handover, and the contractor's builder's risk insurance (CON-350) has deductibles and conditions, such as security measures, that affect how much of a loss is recovered.

Worked problem

The cost of poor protection

A pallet of 90 sheets of drywall is left uncovered on the fourth floor before a rainstorm and must be discarded. Replacement drywall costs $16 a sheet delivered, the crane lift to replace it costs $570, and the drywall crew loses half a day waiting, costing $2,400. What is the loss, and who should bear it?

Show solution
  1. Material: 90 × 16 = $1,440.
  2. Crane: $570.
  3. Crew time: $2,400.
  4. Total: $4,410.

Answer: Most of the loss is not the material but the knock-on time and handling. If the subcontract makes the drywall trade responsible for protecting its stocked materials, the trade bears the loss; if the general contractor stocked the floor without protection, it is the contractor's. Clear responsibility in the subcontract and the logistics plan settles this before it happens.

Common mistakes

  • MistakeLeaving logistics out of the bid documents.

    InsteadInclude the logistics plan, crane and hoist rules, laydown and unloading responsibilities in every invitation to bid.

  • MistakeTreating crane time as unlimited.

    InsteadEstimate each trade's demand, assign daily windows and set booking rules.

  • MistakeAccepting deliveries without booking.

    InsteadRequire advance booking in a delivery schedule that respects gate hours, permits and crane windows.

  • MistakeChoosing just-in-time or stockpiling by habit.

    InsteadCompare handling, damage, protection, space and expected delay costs for each material.

  • MistakeSigning clean delivery receipts for damaged or short shipments.

    InsteadInspect before the driver leaves and note every discrepancy on the receipt.

  • MistakeLeaving protection responsibility unclear.

    InsteadState in each subcontract who protects stored materials and installed work until handover.

Summary and key terms

  • The site logistics plan shows access, street use, hoisting, laydown, unloading, temporary facilities, safety and phasing, and should be attached to subcontracts.
  • Crane and hoist time is a shared resource that should be estimated, allocated and booked.
  • Deliveries need advance booking within gate hours, municipal limits and crane windows; large equipment needs its own delivery plan.
  • Just-in-time delivery saves space, handling and damage but increases exposure to delay; stockpiling does the reverse.
  • Laydown demand should be compared with available space by phase and resolved during buyout.
  • Receiving inspections check quantity, condition, product and documents before the driver leaves.
  • Subcontracts should assign responsibility for protecting stored materials and installed work.
Site logistics plan
A phased drawing showing how people, vehicles and materials move on and around the site.
Laydown area
Space on or near site for storing materials before installation.
Just-in-time delivery
Delivering material shortly before installation to minimize storage.
Stockpiling
Holding material on or near site ahead of need.
Delivery schedule
A booking system for deliveries within site constraints.
Double handling
Moving material more than once before installation.
Receiving inspection
Checking a delivery against the order and for damage and documents.
Packing slip
The supplier's list of items in a shipment.
Quarantine
Setting material aside until documents or inspections confirm it may be used.
Line fill rate
The share of ordered items delivered complete.

Practice problems

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

  1. List five elements of a site logistics plan.

    Show answer

    Access and gates, street use, hoisting, laydown, unloading, temporary facilities, safety, phasing.

  2. Why should the logistics plan be issued with the invitation to bid?

    Show answer

    So trades price the logistics they will actually face and do not claim extras later.

  3. A trade needs 6 crane hours per floor on 5 floors at $285 an hour. What is the crane cost?

    Show answer

    30 h × 285 = $8,550.

  4. Name three conditions that favour stockpiling.

    Show answer

    Remote site, unreliable supplier, robust material, seasonal access, volatile prices.

  5. JIT costs $1,700 plus a 15 % chance of a $6,000 delay; stockpiling costs $4,300. Which is cheaper in expectation?

    Show answer

    JIT: 1,700 + 900 = $2,600, cheaper than $4,300.

  6. Laydown demand is 310 m² against 260 m² available. Give two responses.

    Show answer

    Hold material fewer floors ahead, deliver some items just in time, store at the supplier, rent nearby space.

  7. What should be checked when material arrives?

    Show answer

    Quantity, condition, correct product, documents and accessories against the order and packing slip.

  8. Why not sign a clean receipt for damaged goods?

    Show answer

    It weakens the claim against the supplier or carrier.

  9. A delivery has 116 of 120 items. What is its line fill rate?

    Show answer

    96.7 %.

  10. Who should be responsible for protecting a trade's stored materials?

    Show answer

    Whoever the subcontract assigns, usually the trade for its own materials and installed work until handover.

Lesson quiz · 5 questions

Score 60% or more to complete this lesson.

Take the quiz