Wei Chen turned the monitor toward me and the bar chart kept going. It scrolled off the right edge of
In This Chapter
- The Hook: Sixty-Eight Activities Out of 1,340
- 14.1 The Four Jobs a Schedule Does — and Why Most Schedules Only Do One
- 14.2 The Schedule Family: What Each Type Is Good At, and What It Hides
- 14.3 From Scope to Activities: The Work Breakdown Structure and the Rules of Good Activity Definition
- 14.4 Durations: Where the Numbers Actually Come From
- 14.5 Logic: What Physically Prevents This From Starting?
- 14.6 The CPM Calculation, By Hand
- 14.7 Float Ownership, Negative Float, and the Constraints That Destroy a Schedule
- 14.8 How to Review a Schedule in Thirty Minutes
- 14.9 Loading the Schedule: Crews, Dollars, and the Cash-Flow Curve
- 14.10 The Baseline Is a Contract Document — and the Ethics That Come With It
- Spaced Review
- Project Checkpoint: The Willow Street CPM Schedule
- Chapter Summary
- What's Next
Chapter 14 — Scheduling: Critical Path Method, Gantt Charts, and Building a Schedule That Reflects Reality
The Hook: Sixty-Eight Activities Out of 1,340
Wei Chen turned the monitor toward me and the bar chart kept going. It scrolled off the right edge of the screen, off the edge of the second screen, and — when Wei printed it later that week on the plotter in the Rivermont office — it reached from the door of the conference room to the far wall and then folded back on itself twice.
"Thirteen hundred and forty activities," Wei said. "That's the Northgate baseline. Meridian's spec says I have to submit it within twenty-one days of Notice to Proceed. That's Thursday."
I had a set of drawings under my arm and forty minutes before an owner-architect-contractor meeting. I did not have time to read 1,340 activities, and neither did Pri Sethi, and neither did anybody at Meridian Health System who would eventually sign off on the thing. Which is exactly the problem with a bar chart that reaches the wall: it looks like proof, and it is almost impossible to read.
So I asked the only question that matters the first time you see a schedule.
"Show me the critical path."
Wei clicked twice — a filter on total float equal to zero — and 1,340 activities became sixty-eight. The wall-length chart collapsed into something that fit on one screen. Excavation, footings, foundation walls, backfill, slab on grade, steel erection, deck and topping, curtain wall by elevation, mechanical and electrical overhead rough on levels 2 and 3, ceiling grid, commissioning, punch. A single chain of work in which, if any link slipped one day, substantial completion slipped one day. Sixty-eight bars, and every one of them worth $10,650 a calendar day — $5,150 of extended general conditions plus $5,500 in liquidated damages.
Four minutes into reading it, I stopped.
"Wei. The anchor-bolt and embed submittal. What's its float?"
Wei filtered again. "Four days total float. It's not on the critical path."
"What's downstream of it?"
"Caldwell's review. Then Ironbridge's mill slot. Then fabrication and delivery. Then erection."
I have been doing this for twenty-two years and I can tell you that the sentence "it's not on the critical path" is one of the most expensive sentences in construction. Four days of float in a chain that ends at a mill rolling slot is not four days of comfort. A mill slot is not a resource you can buy back on a Saturday with a second crew. If you miss it, the next opening is not tomorrow; it is whenever the mill has an opening — and on Northgate that turned out to be five weeks.
I wrote a note on the back of my meeting agenda: A/B submittal — 4 days float — hard downstream constraint at fabricator. Treat as critical.
We did not treat it as critical. The package sat in our office for eleven days while everyone assumed somebody else had it, Caldwell Structural took its full contractual fourteen-day review, Ironbridge Steel missed the slot, and steel erection started August 27 instead of August 4, Year 1 — twenty- three calendar days late, on the critical path, on a job with a $5,500-per-day liquidated damages clause.
That is the story this chapter is about. Not because you need to memorize what happened on Northgate, but because you can see it coming from inside the schedule — four days of float in a chain with a hard downstream constraint — if you know how to read the numbers. Every calculation in this chapter is a tool for seeing that four weeks early.
By the end of this chapter you will be able to take a scope of work, break it into activities, put an honest duration on each one, connect them with logic you can defend, run a forward pass and a backward pass by hand, compute all four kinds of float, identify the critical path, price what a day of it is worth, and audit somebody else's schedule for the defects that make float disappear. You will do all of that with arithmetic, a table, and a pencil. The software will do it faster. The software will not tell you when it is wrong.
🏃 Fast Track: If you already build and update CPM schedules, skim §14.1–§14.5 for the vocabulary this book uses, then read §14.6 (the hand calculation — check your own habits against it), §14.7 (float ownership and constraints), and §14.8 (the 30-minute schedule review) closely. Do the
📋 Try itdrill anyway; it takes twelve minutes and it is the exact skill a claim turns on.🔬 Deep Dive: Appendix B is a full CPM workbook with additional networks and complete solutions. For what happens to this schedule once the job starts, go to Chapter 29 (updates, acceleration, recovery) and Chapter 33 (proving delay). For the six-week window where the schedule meets the field, see Chapter 27.
14.1 The Four Jobs a Schedule Does — and Why Most Schedules Only Do One
A construction schedule is asked to do four different jobs. They are not the same job, and a schedule built well for one of them can be useless for the other three.
| # | The job | The question it answers | Who needs it |
|---|---|---|---|
| 1 | Prove the work fits | Can this scope be built in the contract time? | The owner, at bid or at GMP |
| 2 | Tell people what to do next | What is starting Monday, who is doing it, and what has to be ready? | Superintendents, foremen, subcontractors |
| 3 | Predict and price change | If this activity slips five days, what does it cost and when do we finish? | The project manager, the owner, the CFO |
| 4 | Prove entitlement | Who caused the delay, was it on the critical path, and what are the damages? | Lawyers, claims consultants, the surety |
Most baseline schedules in this industry are built for job #1 — prove the work fits — because that is what the specification demands and what gets a schedule "accepted." A schedule built only for job #1 has a recognizable shape: summary-level activities with round durations, tidy sequential logic, one long bar labeled "MEP rough-in," and a finish date that lands exactly on the contract date. It satisfies the reviewer. It cannot do the other three jobs at all.
Here is the practical consequence. When the owner asks "what does this change cost me in time?" — a question you will be asked ten or twenty times on a real job — a schedule built for job #1 cannot answer. There is no activity to attach the change to. There is no logic describing what actually follows. So you guess, and a guess has no defense. On Northgate, Meridian asked us exactly that about CO #14 (the depressed slab for the replacement MRI unit), and Wei Chen answered in forty minutes with a defensible number, because the schedule contained a real activity called "Form and place depressed slab — Imaging Suite — L1 Zone C" with real successors behind it.
💡 Aha moment. A schedule is not a picture of the job. It is a model of the job — a set of assumptions about quantities, crews, production rates, sequence, and constraints, arranged so that changing any one assumption recalculates all of the consequences. A picture cannot recalculate. A model can. Everything in this chapter exists to make your schedule a model instead of a picture.
Why the four jobs pull in different directions
Job #2 wants detail — the foreman needs to know it is Zone C, level 3, north half, and that the in-wall electrical rough must be inspected first. Job #1 wants brevity — nobody reviews 1,340 activities inside a three-week submittal window. Job #4 wants traceability — every relationship documented, every duration justified, every update archived. Job #3 wants honest logic, because a model with fake logic produces confident wrong answers.
The resolution is not four schedules. It is one network presented at several levels of detail. Wei Chen built Northgate at roughly 1,340 activities and then produced from it:
- a Level 1 milestone schedule (14 milestones) for Meridian's board,
- a Level 2 summary schedule (about 90 bars, rolled up by area and system) for the OAC — owner, architect, contractor — meeting,
- the Level 3 CPM network (all 1,340 activities) as the contract submittal and the calculation engine, and
- a rolling six-week look-ahead pulled from the same network for the field (see Chapter 27).
All four come from the same data. That is the whole trick. When the field runs off a whiteboard that has no relationship to the CPM, you have two schedules, and the moment they disagree — which takes about three weeks — you have none.
🔄 Check your understanding. An owner's representative says: "Your schedule was accepted eight months ago and it shows we finish on time, so I don't understand why you say my change costs 12 days." What is wrong with the reasoning, in one sentence?
Answer
Acceptance of a baseline says the schedule met the specified submittal requirements at a moment in time; it says nothing about what a new scope of work does to the network today. Time impact is calculated by inserting the change into the current, updated schedule and recalculating — not by reading the finish date off the accepted baseline.
14.2 The Schedule Family: What Each Type Is Good At, and What It Hides
"Schedule" is not one document. Five formats do most of the work in this industry, and each conceals something specific.
| Type | What it is | Best at | What it hides |
|---|---|---|---|
| Bar chart (Gantt) | Activities as horizontal bars on a time axis | Communicating to anyone; showing when | Why. With no logic behind it, it cannot recalculate — move one bar and nothing else moves |
| CPM network | Activities as nodes joined by logical relationships, solved by a forward and backward pass | Calculating the effect of change; finding the driving path; proving delay | Readability — nobody reads a 1,340-node network — and the logic can be shaped to produce a preferred answer |
| Milestone schedule | A short list of dated events, often contractual | Owner reporting, contract commitments, board presentations | Everything between the milestones, including what is actually driving them |
| Line of balance / linear schedule | Production-rate lines plotted against location (station, floor, house number) | Repetitive work: crew flow, production rate, and where crews will collide | One-off activities, complex merge logic, procurement chains |
| Short-interval / look-ahead | The next three to six weeks, constraint-checked, at crew level | Making work genuinely ready; field execution and accountability | The long-term consequence of a decision made this week |
A Gantt chart and a CPM network are frequently confused, including by people who should know better. The distinction is simple and it matters: a Gantt chart is an output format; a CPM network is a calculation. You can print a CPM network as a Gantt chart — that is what almost every schedule you will ever see actually is, a bar chart drawn from a network. But you can also draw a Gantt chart with no network behind it, in a spreadsheet, in twenty minutes, and it will look nearly identical and be worth almost nothing.
The test: ask what happens if activity 47 slips four days. If the answer requires somebody to redraw bars by hand, you are looking at a picture. If the calculation moves 1,340 activities and tells you the finish date shifted two days, you are looking at a model.
🏗️ From the field. On Harbor Ridge, the 34-lot subdivision that Tessa Bright Homes builds out eleven houses at a time, superintendent Colton Reyes does not use CPM at all — and he is right not to. Every house is a 92-calendar-day cycle of the same forty-odd activities. What Colton needs is a line-of-balance view: the framing crew moving through lots at one house every 4.5 days, drywall following at one every 4.0 days. Plot those as sloped lines on a location-versus-time chart and the collision is obvious — drywall is moving faster than framing, so it catches up and runs out of work around lot 22. A CPM network of 34 identical houses is 1,394 activities of noise. The right schedule type is the one that shows you the problem you actually have. The same logic applies at Cottonwood Creek, where Del Ferraro's bridge work is stationed by pier and abutment along a linear alignment.
None of this means the bar chart is a lesser document. The bar chart is how the schedule gets read by people who are not schedulers, and a schedule nobody reads has failed regardless of how elegant the network is. Build the network; publish the bar chart; keep them the same document.
14.3 From Scope to Activities: The Work Breakdown Structure and the Rules of Good Activity Definition
You cannot schedule a building. You can only schedule activities. Getting from one to the other is the part of scheduling that people skip, and it is the part that decides whether everything downstream is worth anything.
14.3.1 The work breakdown structure
The work breakdown structure (WBS) is a hierarchical decomposition of the project into progressively smaller pieces of deliverable work. It is not a list of tasks; it is a set of nested containers. The useful decomposition on a building is almost always some combination of three axes: area (which part of the building), system (which trade or building system), and phase (which stage of construction). Here is Northgate to three levels:
1.0 NORTHGATE OUTPATIENT PAVILION
1.1 Preconstruction and Procurement
1.1.1 Permits and agency approvals
1.1.2 Submittals and shop drawings
1.1.3 Long-lead procurement (steel, curtain wall, switchgear, air handlers, elevators)
1.2 Sitework and Substructure
1.2.1 Site prep, erosion control, temporary facilities
1.2.2 Mass excavation and site utilities
1.2.3 Spread footings, foundation walls, grade beams
1.2.4 Backfill and slab on grade
1.3 Superstructure
1.3.1 Structural steel erection
1.3.2 Metal deck and lightweight topping
1.3.3 Spray-applied fireproofing
1.4 Building Enclosure
1.4.1 Architectural precast panels
1.4.2 Unitized curtain wall
1.4.3 TPO roofing and roof openings
1.5 Interiors — Level 1 (lobby, cafe, imaging, ambulatory surgery)
1.5.1 Overhead MEP rough-in
1.5.2 Partitions and in-wall rough-in
1.5.3 Ceilings, flooring, paint
1.5.4 Specialties, casework, owner equipment
1.6 Interiors — Level 2 (same four sub-levels)
1.7 Interiors — Level 3 (same four sub-levels)
1.8 Interiors — Level 4 (same four sub-levels)
1.9 Central Plant and Vertical MEP Distribution
1.10 Vertical Transportation (2 passenger, 1 service elevator)
1.11 Commissioning, Closeout, and Turnover
Two things to notice. First, the interiors repeat by floor. That repetition is not laziness — it is the structure of the work, and it means the schedule can be built once and copied, which is how a scheduler produces 1,340 activities in three weeks without going insane. Second, procurement is a WBS branch of its own. Long-lead procurement is work. It has durations, it has responsible parties, and on Northgate it contained the single activity chain that broke the job. A schedule that starts at "mobilize" and treats submittals and fabrication as something happening offstage is a schedule that cannot see the steel delay coming.
14.3.2 The five rules of a good activity
An activity is the atom of the schedule. Once you break scope into activities, every calculation in this chapter operates on them, so their quality determines everything. Kestrel's house rules — and they are close to industry-standard practice:
- One responsible party. If two subcontractors are inside one bar, nobody is accountable for it.
- One type of work. One cost code, one crew, one kind of production rate.
- One physical area. A bar that spans four floors cannot tell a foreman where to be.
- A duration of roughly 1 to 20 work days. Kestrel's cap for field work is 15 work days; longer activities are allowed only for procurement and cure/testing durations, and they must be flagged.
- A verb-noun-location name. "Erect structural steel — Zone B — Levels 1–2." Not "Steel."
Rule 4 deserves a word. Why cap durations? Because progress on a long bar is unverifiable. If an activity is 60 days long and someone reports it 50 percent complete, you have learned nothing — you cannot walk the building and confirm "half." Short activities have binary, observable status: the deck is placed or it is not. A schedule of short, observable activities produces honest updates. A schedule of long bars produces the 90-percent-complete disease, where every activity sits at 90 percent for six weeks. You will see this on real jobs, and now you will know the cause.
| ❌ Bad activity | Dur | What is wrong | ✅ Fixed |
|---|---|---|---|
| "Level 2" | 60 WD | No verb, no party, no work type; a 60-day black box | Split by trade and zone into ~14 activities, e.g. "Rough-in HVAC overhead — L2 Zone A," 8 WD, Cardinal Mechanical |
| "MEP" | 120 WD | Three subcontractors, four systems, four floors, one bar; status can never be reported honestly | Break by system, floor, and zone |
| "Order steel" | 1 WD | Understates a procurement chain that is 64 work days long and drives the whole job | Model the chain: prepare submittal → engineer review → fabricate → deliver |
| "Punch list" | 30 WD | Responsible party is "everybody," which means nobody; no area | "Correct punch items — L3 — Cardinal Mechanical," 5 WD, one per trade per floor |
| "Weather" | 18 WD | Weather is not work. A contingency bar sitting in the middle of a network is not a plan | Put weather in the calendar, not in an activity (see §14.4.4) |
| "Substantial completion" | 10 WD | A milestone with a duration is not a milestone | Zero-duration milestone; put the real remaining work in real activities |
🧩 Productive struggle. Before you read on: Kestrel's first-pass Northgate schedule had an activity called "Curtain wall installation — 38,500 SF — 62 work days." Take three minutes and write down at least four separate problems that single bar will cause on the job — not four ways it is ugly, four consequences. Then compare.
What it costs you
- You cannot report status honestly. Sixty-two days is three months of "in progress." The superintendent will report percentage complete by gut feel, and the cost report will follow the schedule into fiction.
- You cannot sequence enclosure by area. Dry-in drives every interior activity on four floors. If the curtain wall is one bar, the schedule cannot show that the north elevation is complete and levels 2 and 3 interiors can start. Every interior activity waits for all 38,500 SF.
- You cannot coordinate the hoisting or the crane. Unitized panels arrive on trucks and are set by elevation. One bar hides the fact that three elevations compete for the same crane in the same three weeks.
- You cannot prove a delay in it. If the owner's late color selection delays the north elevation by two weeks, there is no activity that moved. You have a two-week impact and no way to show it.
- It hides its own float. Different elevations have wildly different float. Rolled into one bar, the whole package shows the float of the most critical elevation, and you will burn the float on the others without knowing you had it.
The fix on Northgate: 24 activities — four elevations × (mock-up/benchmark, set panels, perimeter fire-safing and smoke seal, seal and glaze punch, water test) — each 5 to 14 work days, each with a crane requirement and a specific elevation.
14.4 Durations: Where the Numbers Actually Come From
This is the section that makes theme 2 of this book — the schedule and the budget are the same conversation — stop being a slogan and start being arithmetic.
In Chapter 12 you learned that a line of an estimate is quantity × unit cost, and that unit cost decomposes into productivity and wage rate. A duration comes from the same two numbers:
Duration (work days) = Quantity ÷ (crew production rate per day × number of crews)
Quantity comes from the takeoff. Production rate comes from your historical cost data, your subcontractor's commitment, or a published reference — corrected for the conditions of this job. Number of crews is a management decision, and it is where money and time trade against each other.
14.4.1 Worked example: slab on grade
Northgate's slab on grade is 33,000 SF at 5 inches = 510 CY of concrete. Jamal Foster self-performs it with Kestrel's own crews.
| Step | Value | Source |
|---|---|---|
| Quantity | 33,000 SF | Takeoff (Ch. 12) |
| Practical pour size (one day's place-and-finish for a 12-person crew, given pump reach and finishing window) | 5,500 SF | Kestrel historical data; Jamal's judgment |
| Number of pours | 33,000 ÷ 5,500 = 6 pours | Calculation |
| Cycle per pour (day 1: fine grade, vapor barrier, reinforcing, screed rails; day 2: place and finish) | 2 WD | Sequence |
| Productive duration, one crew | 6 × 2 = 12 WD | Calculation |
| Trailing saw-cutting, cure, and protection | 2 WD | Sequence |
| Activity duration | 14 work days |
Now the same two numbers produce the cost.
| Step | Value |
|---|---|
| Crew size | 12 workers |
| Man-hours per day | 12 × 8 = 96 MH |
| Productive days | 12 |
| Total labor | 96 × 12 = 1,152 MH |
| Labor unit rate (burdened average across the crew) | $58.00 / MH |
| Labor cost | 1,152 × $58.00 = $66,816 |
| Labor productivity | 1,152 ÷ 33,000 = 0.035 MH/SF |
| Labor unit cost | $66,816 ÷ 33,000 = $2.02/SF |
What it means for the job: the 14-day bar on the schedule and the $2.02/SF line in the estimate came out of the same pour-size assumption. If Jamal tells you at the pre-pour meeting that the pump can only reach two-thirds of the slab and pours have to drop to 3,700 SF, you do not have a schedule problem or a cost problem. You have both, and they are the same problem: 33,000 ÷ 3,700 = 9 pours, 18 productive days plus 2 trailing = 20 WD instead of 14, and roughly 1,728 MH instead of 1,152 — about $33,000 more labor and six more work days.
💰 Money check. Suppose slab on grade is on the critical path and you want it faster. Add a second crew working a separate zone: three pours each, 6 productive days, plus 2 trailing = 8 WD, saving 6 work days. The added cost is not zero. Two crews on one slab means extra screed setups, a second power trowel, congestion, and a second concrete pump for three of the days:
| Item | Amount |
|---|---|
| Base labor (one crew) | $66,816 |
| Two-crew labor at ~10% inefficiency: 1,152 × 1.10 = 1,267 MH × $58 | $73,486 | |
| Added labor | $6,670 |
| Second pump truck, 3 days @ $2,400 | $7,200 | |
| Total cost of acceleration | $13,870 |
Six work days on a five-day calendar is 6 × 7/5 = 8.4 calendar days. At Northgate's exposure of $10,650/CD, 8.4 days is worth $89,460. Spending $13,870 to save $89,460 is an easy yes.
Except it isn't — and §14.6 will show you exactly why. When we run this network, accelerating slab on grade by six work days will buy the project only four, because a parallel path takes over. You have to run the network before you buy the acceleration, or you will pay for six days and receive four. That is the difference between a scheduler and somebody with a calculator.
14.4.2 Worked example: structural steel erection
985 tons erected. A raising gang — typically a connector pair, a hooker-on, a signal person, and a crane — sets steel; bolt-up and plumbing-up crews follow behind it.
| Step | Value |
|---|---|
| Quantity | 985 tons |
| Production per raising gang | 17 tons/WD |
| Number of raising gangs | 2 |
| Daily production | 2 × 17 = 34 tons/WD |
| Erection duration | 985 ÷ 34 = 28.97 → 29 WD |
| Crane mobilization and setup | 1 WD |
| Activity duration | 30 work days |
Seventeen tons per gang per day is on the conservative side of what you will see quoted, and I want you to see why, because this is the difference between a number and an estimate. Northgate has a tight north property line adjacent to an active clinic that stays open. That means restricted swing radius on the north side, no picks over the occupied building, staged truck deliveries because there is no room to lay down more than a day's steel, and a stand-down every time the clinic's ambulance bay is in use. Hank Duffy at Ironbridge priced 17 tons and I believed him.
🔍 Why this works. A production rate is not a property of the work; it is a property of the work under conditions. The same ironworkers on a greenfield site with unlimited laydown will set 25 tons a day. Publish a rate without its conditions and you have published a number that is true somewhere else. This is why every duration in your schedule should be traceable to a stated assumption — crew size, shift, access, laydown, weather exposure. When the conditions change (and they will), you can find the durations that change with them. When they are not written down, you get a schedule that everybody argues about and nobody can correct.
14.4.3 Worked example: interior partitions, and the moment resources enter the schedule
18,600 LF of interior metal-stud partitions.
| Step | Value |
|---|---|
| Quantity | 18,600 LF |
| Production, one 4-person framing crew (layout, track, studs, blocking; no board) | 310 LF/WD |
| One crew | 18,600 ÷ 310 = 60 WD |
| Three crews | 18,600 ÷ (310 × 3) = 18,600 ÷ 930 = 20 WD |
Sixty work days is twelve weeks; twenty is four. The schedule "needs" twenty, so a lazy scheduler types 20 and moves on. Stop and ask the question that makes you useful: can three crews physically work at once?
Three four-person crews need three separate, available work areas, each with completed overhead MEP rough-in above it, each with layout done, each with material staged. On Northgate that means three zones on different floors — which means the overhead rough-in on all three of those floors has to be complete first, which is exactly the dependency that Chapter 10 told you drives the interior schedule. It also means three crews' worth of scaffold, three sets of tools, and a subcontractor with 12 framers available in the same four weeks, which is a manpower commitment you should get in writing during buyout.
The 20-day duration is a resource-driven answer wearing the clothes of a production calculation. That is legitimate — most durations on a real job are resource-driven — but you must know it, write it down, and check that the resource exists. A schedule full of undeclared resource assumptions is a schedule that fails in month nine when three trades want the same floor.
14.4.4 Calendars: work days, calendar days, holidays, and weather
Everything above is in work days (WD). The contract is in calendar days (CD). Liquidated damages are in calendar days. Extended general conditions are in calendar days. Getting between the two is not optional arithmetic, and mixing them up is one of the most common — and most expensive — errors a young project engineer makes.
Northgate's contract time is 565 calendar days, from Notice to Proceed on March 3, Year 1 to contract substantial completion on September 18, Year 2. Here is what that is actually worth on a standard five-day calendar:
| Step | Calendar days | Work days available |
|---|---|---|
| Contract time, NTP to substantial completion | 565 | — |
| Less weekend days in this particular span | −161 | 404 |
| Less observed holidays falling on weekdays | −12 | 392 |
| Less anticipated weather days carried in the calendar for exterior work | −18 | 374 |
| Kestrel's baseline schedule, longest path | 372 | |
| Project float in the baseline | 2 WD |
Read that last line again. Kestrel's accepted baseline for a $47.5 million, 565-day hospital project contained two work days of project float. That is not a mistake. It is a normal condition, and it tells you something important about every schedule you will ever be handed: baselines are built to fit. When the contract time and the realistic duration disagree, the durations get shaved until they agree, because a schedule showing completion after the contract date will not be accepted.
⚠️ Safety alert. A schedule built to fit rather than built to be true is a safety document, not just a commercial one. When durations are shaved and the field discovers it in month nine, the recovery is always the same: more trades in the same space, longer hours, and pressure to "make it up." On Northgate the scaffold near-miss in week 34 — a plank that had been lifted overnight by another trade and not re-secured, and a mason tender who caught himself on the top rail — happened during exactly that condition. The investigation found three failures, and the third one was a crew running behind after the steel acceleration, with an unwritten "make it up" pressure. Nobody wanted to write that finding down. It is the one that matters. When you shave a duration in a baseline, you are making a safety decision fourteen months in advance. See Chapter 24.
Calendars, practically. The work-day/calendar-day conversions used throughout this chapter, along with the crew-productivity and unit-conversion formulas behind every duration in it, are collected in Appendix A. Modern scheduling software lets you assign a different calendar to each activity. Use that:
- 5-day calendar for most field work.
- 7-day calendar for cure durations, procurement, submittal review clocks, and anything measured in calendar days by contract. Concrete does not know it is Saturday.
- 6-day or shift calendars for planned acceleration, applied only to the activities that are actually accelerated.
- Weather calendars that remove a realistic number of non-work days per month for exterior work — more in the winter months, fewer in the summer — rather than a single "weather" bar.
Weather deserves its own note. Putting weather in the calendar means a January activity automatically takes longer than the same activity in July, which is true. Putting weather in an activity means you have a bar labeled "weather contingency" sitting in the middle of the network, which is a lie the schedule tells about itself: it will be the first thing consumed and the last thing anybody admits was consumed. Weather belongs in the calendar. How many days to carry, and who bears the risk of unusually severe weather, is a contract question, and it varies — most contracts distinguish "anticipated" weather (contractor's risk, no time extension) from "unusually severe" weather (excusable time, usually not compensable). Read your clause; the definitions and the entitlement differ by contract form and by jurisdiction.
🔄 Check your understanding. Your schedule shows an activity of 15 work days. Your general conditions burn at $5,150 per calendar day. How much general-conditions cost does that activity carry on a standard five-day calendar, and why is the number not 15 × $5,150?
Answer
Fifteen work days on a five-day calendar spans 15 × 7/5 = 21 calendar days. General conditions burn every calendar day, including the weekends inside that span. So the activity carries 21 × $5,150 = $108,150, not $77,250. Anyone who prices extended general conditions in work days will understate the cost by about 40 percent. This is why the book insists you label every duration WD or CD.
14.5 Logic: What Physically Prevents This From Starting?
Activities are the nouns of a schedule. Logic — the relationships between them — is the grammar, and it is where schedules get honest or dishonest.
14.5.1 The four relationship types
| Type | Notation | Meaning | Use it for |
|---|---|---|---|
| Finish-to-Start | FS | B cannot start until A finishes | The default. Most construction logic. Pour footings after you excavate |
| Start-to-Start | SS | B cannot start until A starts | Overlapping continuous work. Drywall finishing SS+5 after drywall hanging |
| Finish-to-Finish | FF | B cannot finish until A finishes | Trailing work that must complete together. Punch FF+0 with the final inspection |
| Start-to-Finish | SF | B cannot finish until A starts | Almost nothing. See below |
Start-to-finish is almost always a modeling error. Its legitimate uses are rare enough (shift handovers, phased cutovers of an existing system) that on a building project, if you find an SF relationship, the correct assumption is that somebody dragged an arrow the wrong direction. Kestrel's schedule spec for its own subcontractors bans SF outright.
Leads and lags. A lag is a delay imposed on a relationship: "place slab, FS+7" means seven days must pass after the slab is placed before the successor starts — a cure duration, typically. A lead is a negative lag: "FS−10," meaning the successor starts ten days before the predecessor finishes.
Here is the rule I would tattoo on a scheduler: a lag is a duration with no owner. It has no responsible party, no resource, no cost code, and no way to report progress. A 10-day lag hides ten days of either work or waiting that nobody is accountable for. Kestrel's house rule: any lag longer than 5 days must either be converted into a real activity ("Cure slab and strip screeds — 7 CD") or carry a written justification in the activity notes.
Never use negative lags. A FS−10 is an SS relationship written badly, and it behaves badly: when the predecessor's duration changes, the successor's start moves in ways that are hard to predict and harder to explain to an arbitrator. If two activities overlap, say so with SS + lag. That is what SS is for.
14.5.2 Hard logic, soft logic, resource logic
This is the distinction that separates a schedule you can defend from one you cannot.
| Kind | Definition | Example on Northgate | Can you change it? |
|---|---|---|---|
| Hard (physical) logic | Physics, chemistry, or code makes the sequence mandatory | You cannot place a footing before you excavate for it. You cannot set steel on anchor bolts that are not cast | No — not without changing the building |
| Soft (preferential) logic | You chose this order; the reverse would work | Frame Level 2 before Level 3. Start curtain wall on the south elevation | Yes, free — it is a decision |
| Resource logic | The sequence exists because a crew, a crane, or a piece of equipment can only be in one place | Level 3 rough-in follows Level 2 because Cardinal Mechanical has one sheet-metal crew | Yes, for money — hire a second crew |
Every relationship in your schedule should survive one question: "What physically prevents this from starting?" If the honest answer is "nothing — we would just rather not," that is soft logic, and you should write that in the activity note. That note is worth more in a claim than the relationship is.
Why? Because in a delay analysis, only hard logic survives cross-examination unchanged. If you have modeled a preference as a physical necessity, opposing counsel's schedule expert will find it, remove it, and demonstrate that your "critical path" was a management choice. At that point your entire delay claim is arguable. Conversely, if the owner directs a change that lands on soft logic, you have a duty to consider resequencing before you claim delay — most contracts require the contractor to mitigate, and "I could have resequenced but chose not to" is not a good position.
⚖️ What the contract says. Calling soft logic "hard" is how a scheduler lies without saying anything false. Every relationship is defensible in isolation; the dishonesty is in the aggregate. Most schedule specifications now require the contractor to identify and justify its logic, and forensic schedule analysis practice — including AACE International's recommended practice on forensic schedule analysis — treats unexplained logic changes between updates as a primary indicator of manipulation. The practical protection is boring and effective: document why, in the schedule, at the time you build it. Contemporaneous notes are worth ten times reconstructed ones — a principle you will meet again in Chapter 25 and pay for when a delay has to be proved.
14.5.3 The discipline of building logic
Wei Chen builds Northgate logic in a room with Margo Deacon and the trade foremen, not alone at a desk. The process is a conversation, activity by activity, and it consists of two questions:
- "What has to be finished before you can start this?" (predecessors)
- "Who is waiting on you?" (successors)
Ask both, because they catch different errors. Question 1 catches missing constraints. Question 2 catches open ends — activities with no successor, which the calculation will treat as unimportant because nothing depends on them. An activity with no successor gets enormous float and disappears from your attention until the week it stops the job.
Margo's contribution to this meeting is the one that keeps the schedule real. Her line, roughly every twenty minutes: "Show me how the crew gets there." Access is logic. Material handling is logic. If the only way to get 412,000 pounds of ductwork to Level 3 is through a shaft that gets enclosed by the curtain wall, then the curtain wall on that elevation is a predecessor to the duct delivery, and if that is not in the network, the network is wrong.
14.6 The CPM Calculation, By Hand
Everything up to here was setup. Now you calculate.
The Critical Path Method (CPM) is a procedure, not an opinion. Given a set of activities with durations and logic, it produces exactly one answer for the project duration, exactly one set of early and late dates for every activity, and exactly one critical path. Two competent schedulers with the same network will get the same numbers or one of them has made an arithmetic error. That property — determinacy — is the whole reason CPM is admissible in a dispute and a bar chart is not.
You are going to run it by hand. Not because you will do this by hand on a real job — you will not, you will use software — but because the software will hand you a wrong answer with total confidence if your logic is wrong, and the only defense is knowing what the answer should look like.
14.6.1 The convention, stated once
There are two common conventions for numbering days, and they differ by one. Half the arguments about CPM tables are actually arguments about which convention somebody used. This book uses the elapsed-time (zero-based) convention, which is what scheduling software uses internally:
- ES = 0 for the first activity, meaning "the start of work day 1."
- EF = ES + Duration, meaning "the end of work day EF."
- An activity with ES 5 and EF 17 occupies work days 6 through 17.
The other convention numbers days from 1 (ES = 1, EF = ES + D − 1) and requires a "+1" on every handoff. Both are correct. Neither is correct if you mix them. State your convention at the top of every schedule table you publish.
14.6.2 The network: Northgate foundations and steel
Here is a ten-activity fragment — schedulers call a fragment like this a fragnet — of the Northgate substructure and steel sequence. Every duration is in work days and every one traces to a production calculation of the kind you did in §14.4.
| ID | Activity | Duration (WD) | Predecessors | Responsible |
|---|---|---|---|---|
| A | Mobilize and set up site | 5 | — | Kestrel |
| B | Mass excavation, building pad | 12 | A | Kestrel self-perform |
| C | Prepare and transmit anchor-bolt and embed submittal | 5 | A | Kestrel / Ironbridge |
| D | Structural review of anchor bolts and embeds | 14 | C | Caldwell Structural |
| E | Form, reinforce, and place spread footings (148 ftgs, 1,240 CY) | 18 | B | Kestrel self-perform |
| F | Mill rolling, fabrication, and delivery of structural steel | 45 | D | Ironbridge Steel |
| G | Foundation walls and grade beams (620 CY) | 14 | E | Kestrel self-perform |
| H | Backfill, compact, and install under-slab utilities | 10 | G | Kestrel / site sub |
| I | Slab on grade, 33,000 SF | 14 | H | Kestrel self-perform |
| J | Erect structural steel, 985 tons | 30 | F, I | Ironbridge Steel |
📊 Diagram (described). The network is an activity-on-node (AON) diagram: each activity is a box, each arrow is a finish-to-start relationship. Activity A branches into two parallel chains. The upper chain is physical substructure work — excavate, footings, walls, backfill, slab. The lower chain is a procurement chain — prepare a submittal, get it reviewed, have steel rolled and delivered. Neither chain touches the other until they merge at J, steel erection, which needs both a delivered building's worth of steel and a slab to run the crane on. That merge point is where the project's duration is decided.
+------+ +------+ +------+ +------+ +------+ +------+
| A |---+--->| B |->| E |->| G |->| H |->| I |---+
| 5 WD | | |12 WD | |18 WD | |14 WD | |10 WD | |14 WD | |
+------+ | +------+ +------+ +------+ +------+ +------+ |
| |
| v
| +------+ +------+ +------+ +------+
+--->| C |->| D |->| F |------------------->| J |
| 5 WD | |14 WD | |45 WD | |30 WD |
+------+ +------+ +------+ +------+
14.6.3 The forward pass: how early can everything happen?
The rule. Start at the beginning with ES = 0. For each activity:
ES = the LARGEST early finish among all its predecessors EF = ES + Duration
"Largest" is the whole point at a merge. An activity with three predecessors waits for the slowest one. If you take an average or the first one you wrote down, you get a schedule that is wrong in a way that always favors you, which is how optimistic baselines get built without anyone lying.
Work left to right through the table. Every activity is computed after all of its predecessors.
| ID | Dur | Predecessors | ES = max(EF of preds) | EF = ES + Dur | Occupies work days |
|---|---|---|---|---|---|
| A | 5 | — | 0 | 5 | 1–5 |
| B | 12 | A | 5 | 17 | 6–17 |
| C | 5 | A | 5 | 10 | 6–10 |
| D | 14 | C | 10 | 24 | 11–24 |
| E | 18 | B | 17 | 35 | 18–35 |
| F | 45 | D | 24 | 69 | 25–69 |
| G | 14 | E | 35 | 49 | 36–49 |
| H | 10 | G | 49 | 59 | 50–59 |
| I | 14 | H | 59 | 73 | 60–73 |
| J | 30 | F (EF 69), I (EF 73) | 73 | 103 | 74–103 |
The project duration is 103 work days. It came from one place: J waits for I at day 73, not for F at day 69. Four days of the steel delivery are absorbed by waiting.
On a five-day calendar, 103 work days is about 103 × 7/5 = 144 calendar days. If this fragnet started at Notice to Proceed on March 3, Year 1, steel erection would finish in the last week of July — and you would already suspect the canonical steel erection start of August 4 is being driven by something in this picture.
14.6.4 The backward pass: how late can everything happen without moving the finish?
The rule. Start at the end. Set the last activity's LF equal to the project duration you just calculated (103). Then work right to left:
LF = the SMALLEST late start among all its successors LS = LF − Duration
🔍 Why this works. The forward pass takes a maximum because a merging activity must wait for its slowest predecessor — that is a physical fact about waiting. The backward pass takes a minimum because a bursting activity must finish in time for its most urgent successor — that is a physical fact about commitments. If activity G feeds both H (which must start by day 49) and a hypothetical K (which must start by day 80), G still has to be done by day 49, because you cannot satisfy one successor and abandon the other. Max going forward, min coming back. Get those two words right and you will never mis-run a pass again.
| ID | Dur | Successors | LF = min(LS of successors) | LS = LF − Dur |
|---|---|---|---|---|
| J | 30 | — (project finish) | 103 | 73 |
| I | 14 | J (LS 73) | 73 | 59 |
| F | 45 | J (LS 73) | 73 | 28 |
| H | 10 | I (LS 59) | 59 | 49 |
| G | 14 | H (LS 49) | 49 | 35 |
| E | 18 | G (LS 35) | 35 | 17 |
| D | 14 | F (LS 28) | 28 | 14 |
| C | 5 | D (LS 14) | 14 | 9 |
| B | 12 | E (LS 17) | 17 | 5 |
| A | 5 | B (LS 5), C (LS 9) | 5 | 0 |
Activity A's late finish is 5, not 9. It takes the minimum. A must be done by the end of day 5 because B is waiting, even though C could wait until day 9. And A's LS of 0 equals its ES of 0, which is the arithmetic check that you have not made an error: if the network has no imposed dates, the first activity's LS must come back to 0. If it does not, you have made a mistake — go find it before you publish anything.
14.6.5 Float: four flavors, and why the differences matter
Total float (TF) is the amount an activity can slip without delaying the project.
TF = LS − ES (which must equal LF − EF — compute both, they are a free error check)
Free float (FF) is the amount an activity can slip without delaying the early start of any successor.
FF = (smallest ES among successors) − EF
Interfering float (IF) is the part of total float that, if you use it, does not delay the project but does push a successor's early start — consuming somebody else's room.
IF = TF − FF
Independent float is the room an activity has even in the worst case: predecessors finish as late as possible and successors start as early as possible.
Independent float = max(0, (smallest ES of successors) − (largest LF of predecessors) − Duration)
Now the table. This is the single most important table in this chapter — read every column.
| ID | Dur | ES | EF | LS | LF | TF = LS−ES | Check LF−EF | FF | IF = TF−FF | Critical? |
|---|---|---|---|---|---|---|---|---|---|---|
| A | 5 | 0 | 5 | 0 | 5 | 0 | 0 ✓ | 0 | 0 | YES |
| B | 12 | 5 | 17 | 5 | 17 | 0 | 0 ✓ | 0 | 0 | YES |
| C | 5 | 5 | 10 | 9 | 14 | 4 | 4 ✓ | 0 | 4 | no |
| D | 14 | 10 | 24 | 14 | 28 | 4 | 4 ✓ | 0 | 4 | no |
| E | 18 | 17 | 35 | 17 | 35 | 0 | 0 ✓ | 0 | 0 | YES |
| F | 45 | 24 | 69 | 28 | 73 | 4 | 4 ✓ | 4 | 0 | no |
| G | 14 | 35 | 49 | 35 | 49 | 0 | 0 ✓ | 0 | 0 | YES |
| H | 10 | 49 | 59 | 49 | 59 | 0 | 0 ✓ | 0 | 0 | YES |
| I | 14 | 59 | 73 | 59 | 73 | 0 | 0 ✓ | 0 | 0 | YES |
| J | 30 | 73 | 103 | 73 | 103 | 0 | 0 ✓ | 0 | 0 | YES |
Independent float is zero for every activity in this network, and that is normal. Independent float is only non-zero when an activity has slack on both sides — a predecessor with float and a successor with float — which is uncommon in a tightly chained construction network. A quick synthetic illustration so you know what it looks like: if activity X has a duration of 12, its latest predecessor must finish by day 20, and its earliest successor cannot start before day 40, then X has 40 − 20 − 12 = 8 days of independent float — eight days that are genuinely X's own, no matter what anyone upstream or downstream does. Report independent float when a subcontractor claims a delay was somebody else's fault; it tells you how much room they had that nobody could take away.
Now read the difference between C, D, and F. All three have four days of total float. But:
- F has free float of 4. Ironbridge can deliver steel four days late and nobody notices, because J is waiting on the slab anyway.
- C and D have free float of zero and interfering float of 4. If Kestrel takes four extra days on the submittal (C), the project still finishes on day 103 — but D's early start moves from 10 to 14, and F's early start moves from 24 to 28, and F's free float goes to zero. Kestrel did not delay the project. Kestrel spent Ironbridge's room.
That is the mechanism the whole chapter turns on. Let me say it plainly and then prove it.
14.6.6 🚪 Threshold Concept: the critical path is calculated, and float belongs to somebody
🚪 Threshold concept. The critical path is a calculated result, not a management opinion — and float is a shared, consumable project asset that the contract assigns to somebody. Most schedule arguments are really arguments about who owns the float.
Before you understand this, a schedule looks like a plan somebody wrote. The "critical path" sounds like a designation — the important stuff, the work that matters, the things the superintendent should worry about. Float sounds like a cushion: spare time, slack, a bit of comfort baked into the plan. People say "we have float there" the way they say "we have room in the budget," as if it were a generalized fund of goodwill.
After you understand this, three things change permanently:
- Nobody chooses the critical path. It is the longest path through the network, and it emerges from durations and logic the way a sum emerges from addends. You can change it by changing durations or logic. You cannot declare it. When a superintendent says "steel is critical," the correct response is "the calculation says so, or it doesn't — let's look."
- Float is not spare time. It is a quantity of days attached to a specific chain, and it can be spent exactly once, by whoever gets to it first. The four days on the steel chain are not four days for Kestrel and four days for Caldwell and four days for Ironbridge. They are four days total. When Kestrel takes eleven, everybody downstream is out of room and the next slip — anybody's slip — delays the project.
- The critical path moves. It is not a property of the job; it is a property of the current model. Change a duration and it can jump to a completely different chain of work. Which is what happens next.
Watch it happen.
14.6.7 The perturbation: add five days to one non-critical activity
🧩 Productive struggle. Before you read the next table, predict. Kestrel's submittal coordinator is out for a week and activity C — prepare and transmit the anchor-bolt submittal — takes 10 work days instead of 5. C has four days of total float, so it is not critical. Write down your answers:
- What is the new project duration?
- Which activities' float changes?
- Does the critical path move? If so, to where?
Take three minutes and commit to answers before you look.
Forward pass, with C = 10:
| ID | Dur | Preds | ES | EF | Change vs. base |
|---|---|---|---|---|---|
| A | 5 | — | 0 | 5 | — |
| B | 12 | A | 5 | 17 | — |
| C | 10 | A | 5 | 15 | +5 |
| D | 14 | C | 15 | 29 | +5 |
| E | 18 | B | 17 | 35 | — |
| F | 45 | D | 29 | 74 | +5 |
| G | 14 | E | 35 | 49 | — |
| H | 10 | G | 49 | 59 | — |
| I | 14 | H | 59 | 73 | — |
| J | 30 | F (74), I (73) | 74 | 104 | +1 |
Project duration: 104 work days. It grew by exactly one day, not five. The four days of float absorbed four of the five; the fifth went straight into the project.
Notice the merge at J flipped. In the base case J waited on I at day 73. Now it waits on F at day 74. The driving predecessor changed, and that single fact is about to move the critical path.
Backward pass, LF of J = 104:
| ID | Dur | Successors | LF | LS |
|---|---|---|---|---|
| J | 30 | — | 104 | 74 |
| I | 14 | J (74) | 74 | 60 |
| F | 45 | J (74) | 74 | 29 |
| H | 10 | I (60) | 60 | 50 |
| G | 14 | H (50) | 50 | 36 |
| E | 18 | G (36) | 36 | 18 |
| D | 14 | F (29) | 29 | 15 |
| C | 10 | D (15) | 15 | 5 |
| B | 12 | E (18) | 18 | 6 |
| A | 5 | B (6), C (5) | 5 | 0 |
Float, before and after:
| ID | TF before | TF after | FF before | FF after | What happened |
|---|---|---|---|---|---|
| A | 0 | 0 | 0 | 0 | Still critical |
| B | 0 | 1 | 0 | 0 | Left the critical path — gained a day of float |
| C | 4 | 0 | 0 | 0 | Became critical — spent all its float |
| D | 4 | 0 | 0 | 0 | Became critical |
| E | 0 | 1 | 0 | 0 | Left the critical path |
| F | 4 | 0 | 4 | 0 | Became critical; its free float is gone too |
| G | 0 | 1 | 0 | 0 | Left the critical path |
| H | 0 | 1 | 0 | 0 | Left the critical path |
| I | 0 | 1 | 0 | 1 | Left the critical path; now holds the free float |
| J | 0 | 0 | 0 | 0 | Still critical |
The critical path moved. It was A → B → E → G → H → I → J (5 + 12 + 18 + 14 + 10 + 14 + 30 = 103). It is now A → C → D → F → J (5 + 10 + 14 + 45 + 30 = 104). Five days added to a "non-critical" submittal cost the project one day, took the critical path off the concrete work entirely, and moved it onto a procurement chain that Kestrel's field superintendent has no ability to accelerate.
That last clause is the expensive part. When the critical path runs through footings and slab, Margo Deacon can fix a problem: add a crew, add a Saturday, add a pump. When the critical path runs through a mill rolling slot, nobody on the job site can do anything at all. This is why Kestrel manages every procurement chain as if it were critical regardless of what the float column says, and why I wrote that note on the back of my agenda in the hook.
💰 Money check. Five days of somebody being out of the office cost one day of project duration. One calendar day at Northgate is $10,650. But look at what it also cost: before the change, the steel chain had four days of float — a buffer worth 4 × 7/5 = 5.6 calendar days × $10,650 = $59,640 of protection against the next problem. That buffer is now gone, spent, and invisible on a bar chart. When Caldwell took its full fourteen days and Ironbridge missed the mill slot, there was nothing left to absorb it. The float was the insurance policy, and we cancelled it without noticing.
14.6.8 The same network as a Gantt chart
📊 Diagram (described). Here is the base-case network (103 work days) drawn as a bar chart on a work-
day scale. Each character represents two work days. # marks activities on the critical path, =
marks activities with float, and . marks each activity's total float — the room it has before it
starts pushing the project. Because one character spans two days, an activity that hands off on an odd-
numbered day appears to share one cell with its successor; that is chart resolution, not overlap.
10 20 30 40 50 60 70 80 90 100
----|----|----|----|----|----|----|----|----|----|--
A Mobilize & set up site ###
B Mass excavation #######
C A-bolt submittal prep ===..
D Caldwell review =======..
E Spread footings ##########
F Steel fab & delivery =======================..
G Fdn walls / grade beams ########
H Backfill & compact ######
I Slab on grade ########
J Steel erection ################
### critical (total float = 0) === has float ... total float
Two things jump out of the picture that were harder to see in the tables. First, F is enormous. Forty-five work days of a 103-day fragnet is a single procurement activity, and it is not critical only because a chain of five concrete activities happens to be four days longer. That is a fragile reason to relax. Second, the float on C and D is drawn at the end of each bar, but the dots are the same four days. C's dots and D's dots and F's dots are not twelve days of float. They are four days, shown three times, because the float belongs to the path, not to the activities on it. If you have ever looked at a bar chart and added up the float, this is the error you were making.
14.6.9 Near-critical paths and multiple critical paths
A path with a small amount of float is near-critical, and it is where the risk actually lives. The critical path is being watched by everybody. The chain with four days of float is being watched by nobody, and it takes four days to become critical.
Kestrel's house rule — not a standard, our rule — is that any path with total float of 10 work days or less is managed as critical: it goes on the two-week look-ahead, it goes in the OAC report, and it gets a named owner. On Northgate, that rule applied to 68 activities at zero float and another 106 at ten days or less. Wei Chen reported both numbers every month.
You will also encounter multiple critical paths — two or more chains with zero float. This is not an error. It happens naturally when a schedule has been compressed, and it happens constantly on jobs where the finish date was fixed before the durations were. Its practical meaning is uncomfortable: you now have to accelerate all of them to gain a single day. Shorten one and the other still governs. When somebody offers you an acceleration proposal, the first question is not "how much?" It is "how many critical paths are there, and does this proposal shorten all of them?"
Here is the version of that trap you were promised in §14.4.1. Suppose you accelerate slab on grade (I) from 14 work days to 8 by putting a second crew on it, for $13,870. Rerun the forward pass:
| ID | Dur | ES | EF |
|---|---|---|---|
| I | 8 | 59 | 67 |
| J | 30 | max(F 69, I 67) = 69 | 99 |
The project drops from 103 to 99 work days — you bought four days, not six. Beyond four days, the steel delivery chain governs the merge at J and further slab acceleration buys nothing at all. And the critical path is now A → C → D → F → J (5 + 5 + 14 + 45 + 30 = 99), with the concrete chain carrying two days of float.
Four work days is 5.6 calendar days, worth 5.6 × $10,650 = $59,640 against a cost of $13,870 — still a good trade, net $45,770. But you would have paid the same $13,870 believing you were buying 8.4 calendar days' worth $89,460. The float on the parallel path is the ceiling on what acceleration can buy. Run the network first. Always.
🔄 Check your understanding. In the base network, activity F (steel fabrication and delivery) has total float of 4 and free float of 4. Activity D (Caldwell's review) has total float of 4 and free float of 0. Ironbridge asks you for two extra days on delivery; Caldwell asks you for two extra days on review. Which request is genuinely free, and which one costs somebody something?
Answer
Ironbridge's request is genuinely free at the network level: F has free float, so two extra days of delivery move nothing at all — J still starts on day 73 waiting for the slab.
Caldwell's request is not free even though it does not delay the project. D has zero free float, so two extra days push F's early start from 24 to 26 and cut F's free float from 4 to 2. Kestrel would be handing Caldwell two days out of Ironbridge's buffer, without Ironbridge being in the room. That is the definition of interfering float — and it is exactly how the Northgate steel chain got consumed one reasonable-sounding request at a time.
14.6.10 Your turn
📋 Try it — the Cottonwood Creek girder sequence.
This is the most important drill in this book. Do it with a pencil and a sheet of paper before you look at the answer. It takes about twelve minutes.
Cottonwood Creek Bridge Replacement ($18.7M, state DOT owner, unit-price contract, 210 working days; superintendent Del Ferraro, project engineer Ingrid Sørensen). Here is the abutment-and- superstructure fragnet. Durations are work days.
| ID | Activity | Duration (WD) | Predecessors |
|---|---|---|---|
| A | Mobilize, erosion control, build haul road | 6 | — |
| B | Drill and place 36" shafts, east abutment | 10 | A |
| C | Drill and place 36" shafts, west abutment | 12 | A |
| D | East abutment stem, backwall, and bearing seats | 14 | B |
| E | West abutment stem, backwall, and bearing seats | 14 | C |
| F | Girder fabrication and delivery | 30 | A |
| G | Set girders and install diaphragms | 8 | D, E, F |
| H | Deck forming, reinforcing, and placement | 16 | G |
Do all five:
- (a) Run the forward pass. Give ES and EF for every activity, and state the project duration.
- (b) Run the backward pass. Give LS and LF for every activity.
- (c) Compute total float and free float for every activity.
- (d) Identify the critical path.
- (e) Del wants to finish sooner. Which single activity would you accelerate first, why, and how many days is it worth buying before you have to accelerate something else as well?
Complete worked solution
(a) Forward pass — ES = largest EF among predecessors; EF = ES + Duration.
| ID | Dur | Preds | ES | EF |
|---|---|---|---|---|
| A | 6 | — | 0 | 6 |
| B | 10 | A | 6 | 16 |
| C | 12 | A | 6 | 18 |
| D | 14 | B | 16 | 30 |
| E | 14 | C | 18 | 32 |
| F | 30 | A | 6 | 36 |
| G | 8 | D (30), E (32), F (36) | 36 | 44 |
| H | 16 | G | 44 | 60 |
Project duration = 60 work days. G waits for F, not for the abutments.
(b) Backward pass — LF = smallest LS among successors; LS = LF − Duration. Set LF(H) = 60.
| ID | Dur | Successors | LF | LS |
|---|---|---|---|---|
| H | 16 | — | 60 | 44 |
| G | 8 | H (44) | 44 | 36 |
| F | 30 | G (36) | 36 | 6 |
| E | 14 | G (36) | 36 | 22 |
| D | 14 | G (36) | 36 | 22 |
| C | 12 | E (22) | 22 | 10 |
| B | 10 | D (22) | 22 | 12 |
| A | 6 | B (12), C (10), F (6) | 6 | 0 |
LS(A) = 0 = ES(A). The pass checks out.
(c) Float — TF = LS − ES (= LF − EF). FF = smallest ES among successors − EF.
| ID | ES | EF | LS | LF | TF | FF | Interfering (TF−FF) |
|---|---|---|---|---|---|---|---|
| A | 0 | 6 | 0 | 6 | 0 | 0 | 0 |
| B | 6 | 16 | 12 | 22 | 6 | 0 | 6 |
| C | 6 | 18 | 10 | 22 | 4 | 0 | 4 |
| D | 16 | 30 | 22 | 36 | 6 | 6 | 0 |
| E | 18 | 32 | 22 | 36 | 4 | 4 | 0 |
| F | 6 | 36 | 6 | 36 | 0 | 0 | 0 |
| G | 36 | 44 | 36 | 44 | 0 | 0 | 0 |
| H | 44 | 60 | 44 | 60 | 0 | 0 | 0 |
Read B and D together, and C and E together. The east abutment chain (B → D) has six days of total float, but all of it is free float on D and all of it is interfering float on B. If Del lets the east shafts run six days long, the project is fine — but D's early start moves to day 22 and D's free float goes to zero. The float belongs to the chain, and B can spend all of it before D gets a vote.
(d) Critical path: A → F → G → H = 6 + 30 + 8 + 16 = 60 work days. ✓
The critical path runs through girder fabrication, not through any concrete Del pours. On a bridge, this is normal and it is the thing young engineers get wrong most often: the structure you can see being built is not the structure driving the date.
(e) Accelerate F — girder fabrication and delivery — but only four days is worth buying alone.
F is critical, it is the longest activity in the network by a factor of two, and — unlike the abutment work — it can be compressed by procurement decisions rather than by adding field crews: an expedited fabrication slot, a second fabricator for the interior girder lines, or delivery sequenced by girder line so erection can start on the first three girders while the last two are still being fabricated.
Now find the knee. Take F from 30 to 26:
| ID | Dur | ES | EF |
|---|---|---|---|
| F | 26 | 6 | 32 |
| G | 8 | max(D 30, E 32, F 32) = 32 | 40 |
| H | 16 | 40 | 56 |
Project drops to 56 work days — four days gained. And now there are two critical paths: A → F → G → H (6 + 26 + 8 + 16 = 56) and A → C → E → G → H (6 + 12 + 14 + 8 + 16 = 56). Take F to 25 and the project stays at 56, because the west abutment chain governs. Every dollar spent expediting girders past the four-day mark buys nothing at all unless you also accelerate the west abutment shafts (C) or the west stem (E).
The answer to "which activity" is F. The answer to "how much" is four days — and then you have to buy two paths at once.
14.7 Float Ownership, Negative Float, and the Constraints That Destroy a Schedule
14.7.1 Who owns the float?
You now know that float is a finite, spendable quantity attached to a path. The next question is the one that ends up in front of arbitrators: whose is it?
There are four positions, and your contract takes one of them — sometimes explicitly, more often by silence.
| Position | What it says | Who it favors | Where you see it |
|---|---|---|---|
| Float belongs to the project | Neither party owns it; it is consumed on a first-come, first-served basis by whichever party needs it first | Whoever moves first | The most common modern position; frequently the default reading when the contract is silent |
| Contractor owns the float | The contractor built the schedule and any float in it is the contractor's contingency; an owner change that consumes float is compensable | Contractor | Contractor-drafted schedule specs; occasionally negotiated |
| Owner owns the float | All float belongs to the owner; the contractor gets a time extension only when the project completion date moves | Owner | Some public and institutional schedule specifications, sometimes phrased as "no float sharing" |
| Shared with defined rules | Float is jointly owned and allocated by a stated procedure, sometimes with a separately identified project buffer activity | Neither, by design | Sophisticated owners and collaborative delivery |
Understand what is really at stake. Suppose the owner issues a change that consumes 15 days of float on a path but does not move substantial completion.
- Under project float, the contractor gets nothing — no time, no money — because the completion date did not move. The contractor's protection against its own future problems just got smaller for free.
- Under contractor-owned float, the contractor has a claim for the value of the consumed contingency, which is a difficult claim to price but a real one.
- Under owner-owned float, the contractor gets nothing and also cannot use float to absorb its own delays without asking.
⚖️ What the contract says. Read your schedule specification, usually in the Division 01 "Construction Progress Documentation" sections, and find three things: (1) any sentence about float ownership or "float sharing"; (2) the requirement to submit a baseline and the definition of what "acceptance" means; and (3) the notice requirement for requesting a time extension — how many days, in what form, to whom. Then find the no damage for delay clause if there is one. A no-damage-for-delay clause says the contractor's sole remedy for owner-caused delay is additional time, not money. These clauses are common, and their enforceability varies significantly by jurisdiction and by fact pattern — many courts recognize exceptions for delays not contemplated by the parties, active interference, bad faith, or abandonment, and some states limit them by statute, particularly on public work. Do not decide what your clause means by reading a textbook, including this one. Bring the clause and the facts to your attorney, and in the meantime give notice on time, because a lost notice deadline ends the argument before the clause ever gets read. See Chapter 5 and Chapter 33.
Here is the practical version, and it is the one I would give a young PM. Float ownership is the single most-litigated question in construction scheduling, and the way you win it is by not needing to win it. Publish your float. Report it monthly. Say out loud in the OAC meeting: "This change consumes nine of the eleven days of float on the imaging suite path." Put it in the minutes. If float ownership ever becomes a dispute, the contractor who has been reporting float consumption contemporaneously for fourteen months is in a different position than the contractor who discovers the concept in month sixteen.
14.7.2 Negative float: what it actually means
Negative float appears when an activity's late finish is earlier than its early finish — that is, when the calculation says the work cannot be done in time to meet an imposed date. If LF = 90 and EF = 99, total float is −9.
Negative float is not a plan. It is the schedule telling you, in arithmetic, that you are already late against something. A schedule with −45 days on a hundred activities is not a schedule; it is an alarm.
The subtlety that trips people up: a schedule can carry two different negative floats against two different dates at the same time, and they mean different things. Northgate makes this concrete.
Meridian has two dates that matter:
- Contract substantial completion: September 18, Year 2. Missing it costs $5,500/CD in liquidated damages plus $5,150/CD in extended general conditions.
- The interim clinic lease expires October 1, Year 2. Missing that means Meridian has no space for the clinics that are supposed to move into this building. It is not a contract date at all. It is a business fact.
Now apply the steel delay. Erection starts 23 calendar days late; the time impact analysis carries the 23 days to substantial completion, forecasting October 11, Year 2.
| Milestone | Imposed date | Forecast | Float |
|---|---|---|---|
| Substantial completion (contract) | Sept 18, Y2 | Oct 11, Y2 | −23 CD |
| Owner occupancy before lease expiry | Oct 1, Y2 | Oct 11, Y2 | −10 CD |
Both numbers are correct. They mean completely different things. The −23 is a money problem: 23 × $10,650 = $244,950. The −10 is a relationship problem and, for Meridian, an operational catastrophe — patients scheduled into a clinic that has no building.
Now apply the acceleration. Kestrel spends $168,000 on a second erection crew, premium Saturday time, and resequenced enclosure by area, and recovers 17 days. Forecast substantial completion moves to September 24, Year 2:
| Milestone | Imposed date | Forecast after acceleration | Float |
|---|---|---|---|
| Substantial completion (contract) | Sept 18, Y2 | Sept 24, Y2 | −6 CD |
| Owner occupancy before lease expiry | Oct 1, Y2 | Sept 24, Y2 | +7 CD |
💰 Money check — and why the arithmetic is not the reason. Do the comparison honestly:
| Option | Cost | Days recovered |
|---|---|---|
| Do nothing — absorb 23 days | 23 CD × $10,650/CD = $244,950 | 0 |
| Accelerate: second erection crew, premium time, resequence enclosure by area | $168,000 | 17 |
| Accelerate and absorb the residual 6 days | $168,000 + (6 × $10,650) = $231,900 | 17 |
Acceleration saves $13,050. On a $47.5 million job that is a rounding error — 0.03 percent. If the only thing on the table were the arithmetic, you could flip a coin. The real driver is the second table. Six days late is survivable for Meridian. Twenty-three days late is not, because it crosses the October 1 lease expiry. Nadia Haddad approved the acceleration in about four minutes, and the number she was looking at was not $13,050. It was +7.
That is what a schedule is for. Not to tell you what a delay costs — to tell you which delays are different in kind.
⚠️ Safety alert. Acceleration is not free of non-monetary cost, and this is the part that never appears in the comparison table. Kestrel's acceleration produced trade stacking on the enclosure, a rework event on deck-edge detailing, and a measurable spike in near-misses in weeks 34 through 36 — including the scaffold event that Bea Salgado investigated. When you price acceleration, price it honestly: premium time, a second crew, and the elevated risk of putting more people in less space under more pressure. Then decide. Sometimes the answer is still yes. It should never be an easy yes.
14.7.3 Constraints, and how they silently destroy a CPM
A constraint is a date you impose on an activity, overriding what the logic would have calculated. Every scheduling tool offers them. Every scheduling tool should probably require a written reason before allowing one.
| Constraint | What it does | Legitimate use | The danger |
|---|---|---|---|
| Start No Earlier Than (SNET) | Prevents an activity from starting before a date | Owner-furnished equipment delivery, permit issuance, a seasonal restriction | Pushes the activity out and manufactures phantom float in everything upstream of it |
| Start No Later Than (SNLT) | Flags if the activity starts after a date | Interim milestones you want a warning on | Generates negative float that can be mistaken for a real delay |
| Finish No Earlier Than (FNET) | Prevents an early finish | Rare — a required occupancy date | Distorts the backward pass |
| Finish No Later Than (FNLT) | Requires finish by a date | The contract substantial completion milestone — this one is usually right | Also produces negative float; that is its job |
| Mandatory Start / Mandatory Finish | Forces the date regardless of logic | Almost never | The killer. The activity ignores its predecessors. Delay stops propagating through the network at that point, so the schedule cannot compute a true critical path at all |
| As Late As Possible | Pushes the activity to consume all its float | Non-critical procurement you want to defer | Zeroes free float everywhere it touches, converting flexibility into a hidden commitment |
Mandatory constraints are the ones that end a schedule's usefulness. Here is the mechanism, plainly: CPM works because delay propagates. A slip in activity 12 moves activity 13, which moves activity 14, until it reaches the finish or runs out of float. A mandatory constraint is a wall. Delay hits it and stops. Everything downstream keeps showing its original dates, the finish date does not move, and the schedule tells you cheerfully that a five-week delay had no impact. I have seen a project team celebrate that report. Six weeks later they were 30 days behind and could not explain when it happened.
How to audit a schedule for constraints — five minutes, and do it on every schedule you are handed:
- Count them. Kestrel's house standard is fewer than 1 percent of activities constrained, and zero mandatory constraints. Numbers vary by owner and by specification; what does not vary is that the count should be small and every one should be explainable.
- List them with the reason. If nobody can say why a constraint exists, delete it and re-run.
- Convert what you can into logic. "Cannot start before the permit is issued" is not a date; it is a predecessor. Model the permit as an activity. Then when the permit is late, the schedule tells you what that costs — which is the entire point.
- Check whether the constraint is creating float. Run the schedule with the constraint removed and compare total float on the upstream chain. If float collapses when you remove it, that float was never real.
- Look for the constraint on the project finish milestone. This is where the worst one hides. If the finish milestone is constrained to a date later than the contract date, every path in the schedule is carrying phantom float equal to the difference. Case study 2 in this chapter is exactly that story.
14.8 How to Review a Schedule in Thirty Minutes
You will be handed schedules by subcontractors, by owners, by other contractors, and by consultants, and you will be expected to have an opinion. Here is what I actually do, in order, and it takes about half an hour on a schedule of any size.
Minute 0–5: Ask for the file, not the PDF. A PDF is a picture. If the answer is "we can only send a PDF," you have learned something important before you have read anything: either they do not have a network behind the bars, or they do not want you to check it.
Minute 5–10: Six numbers. Get these before anything else.
| Check | What you are looking for | Why it matters |
|---|---|---|
| Activity count and average duration | Is the level of detail proportionate to the duration? | 200 activities on a two-year job means bars of a month each — unmanageable and unverifiable |
| Number of activities with no predecessor | Should be exactly one (the start milestone) | Anything else floats free at the front of the schedule |
| Number of activities with no successor | Should be exactly one (the finish milestone) | Open ends get enormous artificial float and vanish from management attention |
| Number of constrained activities | Small, every one explainable, and zero mandatory constraints | Constraints break the propagation of delay |
| Number of activities with total float greater than ~40 work days | A cluster of very high float almost always means missing logic, not genuine slack | Real float is small and specific |
| Percentage of activities on the critical path | Neither near zero nor near everything | A schedule where 60 percent of activities are critical has usually been compressed to fit and has no room anywhere |
Minute 10–15: Logic quality.
- Relationship types. What fraction are finish-to-start? A heavily FS schedule is normal for building work. A schedule dominated by start-to-start and finish-to-finish pairs with lags is often a bar chart wearing a network's clothes — the relationships were added to make the bars line up, not because they describe the work.
- Lags. How many, and how long? Find every lag over 5 days and ask what it is. Cure time is a real answer. "That's when the sub said they'd get there" is not.
- Negative lags. Any at all is a defect. Fix them into SS relationships.
- Out-of-sequence work (in an update, not a baseline): activities that started before their predecessors finished. Some is inevitable. A lot of it means the logic does not describe how the job is actually being built, and every calculation coming out of that schedule is suspect.
Minute 15–25: Does the critical path make physical sense? Filter to zero total float, print it, and walk it out loud — literally narrate the sequence as if you were describing the job to somebody. You are listening for a break in the story. "Excavate, footings, walls, backfill, slab, steel, deck, fireproofing, curtain wall on the north, then... interior partitions on Level 4?" Stop. Why does Level 4 follow the north curtain wall and not Level 2? Sometimes there is an excellent answer (the material hoist is on the north elevation). Sometimes the answer is that somebody linked the wrong activity in 2:00 a.m. and nobody has read the critical path since.
Minute 25–30: The critical path test. This is the single best five-minute check in scheduling and almost nobody does it. Take a copy of the file. Add 100 days to one activity on the computed critical path. Recalculate. The project finish date should move exactly 100 days. If it moves less, something downstream — a constraint, a calendar, a mandatory date — is absorbing delay, and your schedule cannot compute a true critical path. Then do the reverse: add 100 days to an activity not on the critical path that has, say, 12 days of float. The finish should move exactly 88 days. If it moves a different amount, your float numbers are wrong.
The 14-point framing, honestly
You will hear people refer to a fourteen-point schedule assessment — a framework that originated in U.S. government program management and is now widely used in construction and elsewhere. Its checks map closely onto what you just read: logic (missing predecessors and successors), leads, lags, relationship types, hard constraints, high float, negative float, high duration, invalid dates, resources, missed tasks, the critical path test, a critical path length index, and a baseline execution index.
Two honest cautions. First, the numeric pass/fail thresholds attached to those checks vary by agency, by version of the guidance, and by contract, and you will find contradictory numbers repeated confidently on the internet. If your contract invokes a specific assessment, get the current criteria from the contracting agency in writing — do not take a threshold from a textbook, including this one. Second, a schedule can pass all fourteen checks and still be a work of fiction. Every check is structural; none of them can tell you whether the duration on activity 412 is honest. The checks find defects. Judgment finds lies.
🔄 Check your understanding. A subcontractor's schedule shows 340 activities, of which 96 have no successor. Without doing any other analysis, what do you know about the total float numbers in that schedule?
Answer
They are wrong, and they are wrong in the optimistic direction. An activity with no successor is constrained only by the project finish, so the backward pass gives it a late finish equal to the end of the project and an enormous total float. Twenty-eight percent of that schedule is showing float it does not have. Worse, those 96 activities will be filtered out of every "critical" report and every look-ahead, so nobody will look at them until one of them stops the job.
14.9 Loading the Schedule: Crews, Dollars, and the Cash-Flow Curve
A schedule with only durations and logic answers when. Load it with resources and money and it answers how many and how much — and it becomes the backbone of the cost report, the schedule of values and pay applications (Chapter 32), and earned value (Chapter 30).
14.9.1 Resource loading and the manpower curve
Resource loading means assigning crew size or man-hours to each activity. Sum them by day or week and you get a resource histogram — how many people are on your site, over time. Northgate's total craft effort is roughly 412,000 man-hours, peaking at 210 workers in week 61.
0 25 50 75 100 125 150 175 200
|----|----|----|----|----|----|----|----|--
Month 1 12 craft ##
Month 2 24 craft #####
Month 3 38 craft ########
Month 4 52 craft ##########
Month 5 66 craft #############
Month 6 78 craft ################
Month 7 92 craft ##################
Month 8 108 craft ######################
Month 9 124 craft #########################
Month 10 140 craft ############################
Month 11 158 craft ################################
Month 12 176 craft ###################################
Month 13 196 craft #######################################
Month 14 210 craft ##########################################
Month 15 190 craft ######################################
Month 16 150 craft ##############################
Month 17 96 craft ###################
Month 18 52 craft ##########
Month 19 20 craft ####
That curve is a planning document, not a byproduct. Two hundred and ten craft workers means 210 parking spaces or a shuttle, a break area sized for 210, sanitary facilities per the OSHA requirement, a lunch-hour crush at the hoist, and — the one that matters most — 210 people trying to be productive inside a 132,000 SF building. That is roughly 630 square feet per worker. It is tight. Every additional person past a certain point produces less than the person before, which is the mechanism behind the productivity losses that show up in disruption claims later in this book.
Resource leveling is smoothing that curve — moving activities within their float to flatten the peaks. The critical thing to understand is the price: leveling is free only as long as you are spending float. Once the float on an activity is gone, the only way to level further is to extend the project. Every scheduling tool will happily do this and quietly hand back a longer duration. When somebody runs resource leveling, always ask what happened to the finish date.
14.9.2 Cost loading and the S-curve
Cost loading assigns dollars to activities. Spread them across each activity's duration, accumulate, and you get the cash-flow curve — the time-phased value of the work. It is called an S-curve because it always has the same shape.
Here is Northgate's, at the GMP value of $47,500,000 over nineteen months:
| Month | Period billing | Cumulative | % of GMP |
|---|---|---|---|
| 1 | $500,000 | $500,000 | 1.1% | |
| 2 | $900,000 | $1,400,000 | 2.9% | |
| 3 | $1,300,000 | $2,700,000 | 5.7% | |
| 4 | $1,800,000 | $4,500,000 | 9.5% | |
| 5 | $2,300,000 | $6,800,000 | 14.3% | |
| 6 | $2,900,000 | $9,700,000 | 20.4% | |
| 7 | $3,400,000 | $13,100,000 | 27.6% | |
| 8 | $3,800,000 | $16,900,000 | 35.6% | |
| 9 | $4,500,000 | $21,400,000 | 45.1% | |
| 10 | $4,700,000 | $26,100,000 | 54.9% | |
| 11 | $4,500,000 | $30,600,000 | 64.4% | |
| 12 | $3,800,000 | $34,400,000 | 72.4% | |
| 13 | $3,400,000 | $37,800,000 | 79.6% | |
| 14 | $2,900,000 | $40,700,000 | 85.7% | |
| 15 | $2,300,000 | $43,000,000 | 90.5% | |
| 16 | $1,800,000 | $44,800,000 | 94.3% | |
| 17 | $1,300,000 | $46,100,000 | 97.1% | |
| 18 | $900,000 | $47,000,000 | 98.9% | |
| 19 | $500,000 | $47,500,000 | 100.0% |
0% 20% 40% 60% 80% 100%
|---------|---------|---------|---------|---------|
M1 $ 0.5M cum # 1.1%
M2 $ 1.4M cum # 2.9%
M3 $ 2.7M cum ### 5.7%
M4 $ 4.5M cum ##### 9.5%
M5 $ 6.8M cum ####### 14.3%
M6 $ 9.7M cum ########## 20.4%
M7 $ 13.1M cum ############## 27.6%
M8 $ 16.9M cum ################## 35.6%
M9 $ 21.4M cum ####################### 45.1%
M10 $ 26.1M cum ########################### 54.9%
M11 $ 30.6M cum ################################ 64.4%
M12 $ 34.4M cum #################################### 72.4%
M13 $ 37.8M cum ######################################## 79.6%
M14 $ 40.7M cum ########################################### 85.7%
M15 $ 43.0M cum ############################################# 90.5%
M16 $ 44.8M cum ############################################### 94.3%
M17 $ 46.1M cum ################################################# 97.1%
M18 $ 47.0M cum ################################################# 98.9%
M19 $ 47.5M cum ################################################## 100.0%
🔍 Why this works. The S shape is not a convention; it is a consequence of how construction is staffed. At the beginning, one or two trades are on site, mobilizing, and the value they put in place per week is small. In the middle, every trade is present simultaneously — structure, enclosure, and interiors overlapping — and the value in place per week peaks. At the end, the number of trades collapses to punch, commissioning, and closeout, and the rate falls again. The curve is the integral of the manpower curve weighted by the value of the work each trade installs. Any project whose cash-flow curve is a straight line has been cost-loaded by dividing the contract sum by the number of months, which tells you nobody loaded anything.
Compare the two curves and you will notice something that confuses a lot of people: the money peaks around month 10 and the headcount peaks around month 14. Both are correct. Steel, curtain wall, switchgear, and air handlers are enormous dollar values installed by relatively small crews. Interior partitions, drywall, ceilings, flooring, and painting are enormous headcounts installing relatively low unit value. If you staff your general conditions off the money curve, you will be short of supervision exactly when you have the most people on site.
Two practical uses of the S-curve before you leave it:
- It is your billing forecast. Meridian's finance office needs to know when the draws land. So does Owen Baptiste, Kestrel's CFO, who has to fund payroll and subcontractor payments on 30-day owner payment terms with 10 percent retention until the job is half complete.
- It is your first early-warning system. Actual billings that run consistently below the curve mean the job is behind. Actual billings that run consistently above it may mean you are ahead — or that the schedule of values is front-loaded, which is a different conversation entirely.
Notice too that the curve crosses 50 percent complete between month 9 (45.1%) and month 10 (54.9%). That is not a trivia point: Northgate's retention drops from 10 percent to 5 percent at 50 percent complete, which puts roughly $1.3 million of cash back into Kestrel's hands in month 10 — a date Owen has circled on a calendar.
14.9.3 Phasing, milestones, and building next to a building that stays open
Milestones are zero-duration activities that mark an event. Three kinds matter:
- Contract milestones — dates the contract names, with consequences attached. On Northgate: substantial completion September 18, Year 2, and final completion November 17, Year 2.
- Owner-imposed operational milestones — dates the owner needs for reasons that have nothing to do with your contract. Meridian's interim clinic lease expiring October 1, Year 2 is the example that drove the whole acceleration decision in §14.7.2.
- Interim management milestones — dates you impose on yourself so you find out early. "Building dried-in" is the one that matters most on a building like this, because every interior activity on four floors is behind it.
Northgate's canonical milestone set:
| Milestone | Date |
|---|---|
| NTP / mobilization | March 3, Year 1 |
| Mass excavation complete | May 9, Year 1 |
| Foundations complete | July 3, Year 1 |
| Steel erection start (as planned) | August 4, Year 1 |
| Topping out | November 12, Year 1 |
| Building dried-in / enclosed | March 28, Year 2 |
| MEP rough-in complete | May 30, Year 2 |
| Commissioning start | July 20, Year 2 |
| Substantial completion (contract) | September 18, Year 2 |
| Certificate of occupancy | September 24, Year 2 |
| Final completion | November 17, Year 2 |
🏗️ From the field. The Northgate site has a tight north property line adjacent to an active clinic that stays open the entire job. That single fact is worth about a dozen schedule decisions. Crane picks cannot swing over the occupied building, so the north bay steel has to be set from a position that requires a longer boom and a slower cycle. Deliveries cannot block the clinic's ambulance access, so material arrives before 6:30 a.m. or after 6:00 p.m. Utility tie-ins that interrupt the clinic have to happen on Sundays, which means they are on a different calendar than everything around them, which means a two-day activity may consume nine calendar days of schedule. None of that is visible in a takeoff. All of it belongs in the durations and the calendars. When Margo Deacon says "show me how the crew gets there," this is the category of answer she is after — and it is the reason the site logistics plan and the schedule are the same conversation too. You will build both together in Chapter 17.
Phased turnover is worth a paragraph. Meridian asked whether the first floor imaging suite could be turned over ahead of the rest of the building so the equipment vendor could begin a twelve-week installation and calibration. That is a schedule question with a contract answer: partial occupancy usually requires a separate certificate from the authority having jurisdiction, changes when warranties start, changes when the risk of loss transfers, and often changes the definition of substantial completion for liquidated damages purposes. It can be a very good idea. It is never a small one. Put it in the schedule as its own milestone chain with its own logic, and get the contractual consequences in writing before you commit to the date.
14.10 The Baseline Is a Contract Document — and the Ethics That Come With It
14.10.1 Submission, review, and what "accepted" means
On almost every commercial project, the schedule is a required submittal governed by a specification section in Division 01 — typically the "Construction Progress Documentation" group. A reasonably complete schedule specification tells you: the software and file format required; how many days after Notice to Proceed the baseline is due (commonly somewhere between 15 and 45); the required level of detail and maximum activity duration; whether the schedule must be cost- and/or resource-loaded; whether float ownership is addressed; how often updates are due and what an update must contain; and what happens if the schedule shows a completion date other than the contract date. Read that section before you build anything. It is a set of rules for a document you are contractually required to produce, and it is frequently written by people who have very specific expectations.
⚖️ What the contract says. "Accepted" is not "approved," and neither one means what people assume. Standard industry contract language generally reserves to the contractor the responsibility for means, methods, techniques, sequences, and procedures — which is to say, the schedule is yours. An owner's or architect's review of your baseline is a review for conformance with the specified requirements. It does not transfer responsibility for achieving the dates, it does not warrant that the sequence will work, and it does not, by itself, make every assumption in the schedule contractually binding on the owner. Conversely, an accepted baseline is enormously valuable to you, because it establishes the agreed starting point against which every future delay is measured. Get it accepted. Get the acceptance in writing. Archive the accepted file, unmodified, forever. When somebody asks in month twenty what the plan was, you want to be able to open a file rather than reconstruct a memory. See Chapter 29 for how the baseline becomes the yardstick and Chapter 33 for what happens when it is the only evidence you have.
One more practical point that costs contractors money every year: if your baseline shows completion earlier than the contract date, you have created a question about who owns that early-completion time. Some owners will argue it is float belonging to the project and may be consumed by owner changes at no cost. Contractors who plan to finish early sometimes want it recognized as their own contingency and occasionally pursue "early completion" claims. This is genuinely unsettled and fact-specific. If you intend to finish early and intend to be compensated when the owner takes that time away from you, say so in writing at the time you submit the baseline — not eighteen months later.
14.10.2 The software: it calculates, it does not think
You will use one of three families of tools.
| Tool family | What it is genuinely good at | What to watch for |
|---|---|---|
| Primavera P6 | The enterprise standard on large, public, and institutional work. Multi-project portfolios, resource and role libraries, robust and auditable calculation, retained-logic vs. progress-override options, layered baselines. Frequently specified by name | A steep learning curve, and enough settings that two people can open the same file and see different critical paths if the calculation options differ. Check the scheduling options before you trust a number |
| Microsoft Project | Ubiquitous, cheap, quick, and perfectly adequate up to a few hundred activities on a small or mid-size job | Its defaults are dangerous for construction. Manually-scheduled tasks do not obey logic; dragging a bar silently creates a constraint; and the resource-leveling behavior can extend a project without an obvious warning |
| Cloud / collaborative platforms | Live look-aheads, field feedback, and integration with the daily report, RFI, and submittal logs — which is where most of the value is for a superintendent | The CPM engine underneath varies enormously in rigor. Some are excellent; some are shared bar charts. Ask what the calculation actually does before you rely on it for a time impact analysis |
Four-dimensional (4D) tools link the schedule to the building model, so you can watch the sequence build itself and find sequencing conflicts before the crane shows up. Grace Lindqvist runs that on Northgate; it gets its own treatment later, in the chapter on BIM for construction.
The warning I would put on the splash screen of every scheduling program: the software calculates; it does not think. It will not tell you that a duration is optimistic, that a relationship is a preference dressed as a physical fact, that a constraint is hiding a delay, or that the crew you assumed is working on another job. It performs arithmetic on your assumptions, flawlessly and instantly, and returns a result with the same confidence whether the assumptions were true or invented. A schedule is only as honest as its durations and its logic.
14.10.3 The scheduler's ethics
Everything in this chapter is a technique, and every technique in this chapter can be misused. Here are the four ways it happens, named, because a thing with a name is harder to do accidentally.
1. Burying float in the durations. Add 15 percent to every activity. The schedule now looks tight, defensible, and fully committed — and it contains six weeks of contingency that no one can see, no one can manage, and no one can allocate. It will be consumed, quietly, by the first three problems, and you will not be able to tell the owner what happened because you never disclosed the buffer existed. The professional alternative is to put contingency where it can be managed: honest durations, plus a named, visible project buffer activity ahead of the completion milestone, reported every month. Some owners will not accept a buffer activity; then carry it in the calendar as weather days and say so.
2. Soft logic that manufactures a critical path. The owner issues a change. You resequence the logic in this month's update so that the changed work lands on the critical path, and now the change is compensable delay. Each individual relationship you added is defensible. The pattern is not. Forensic schedulers compare updates precisely to find unexplained logic changes, and once a pattern is established, your credibility on everything else in the claim is gone — including the parts that were true.
3. The schedule of convenience. A baseline is built to satisfy the specification, submitted, accepted, filed, and never opened again. The field runs the job off a whiteboard and a two-week look-ahead nobody reconciles to the CPM. This is the most common failure in this chapter and it is not usually dishonest — it is neglect. The price arrives all at once, in month sixteen, when you need to prove what the plan was and discover you have a document that never described the job.
4. The unrealistic early finish. Submitting a baseline showing completion 40 days ahead of the contract date to bank the difference as private contingency. If you genuinely plan to finish early, say so and defend it. If you do not, you have put a number in a contract document that you know is not true, and you will spend the rest of the job defending a date you invented.
Here is my line, and I will give it to you the way Tomás Reyes gives me his: you can hold contingency, but you cannot hide it. Reserve is professional. Concealment is not. The difference is whether the person on the other side of the table could find it if they asked.
🔄 Check your understanding. A subcontractor submits a schedule for its scope that shows completion three weeks ahead of the date in its subcontract, and asks you to accept it. Name one benefit and one risk of accepting it as submitted.
Answer
Benefit: if the sub genuinely intends to finish early, an accepted early-finish schedule creates useful pressure and gives the whole job three weeks of recovery room on that trade.
Risk: you may have just created an argument about who owns those three weeks. If you later direct a change or a resequence that consumes them, the subcontractor may claim delay damages even though it finished within its contract period. Address it in writing when you accept: state whether the early time is the subcontractor's contingency or the project's, and what happens if it is consumed.
Spaced Review
Answer these from memory before you read the responses. Recall first; recognition is not learning.
1. From Chapter 13: why are general conditions time-dependent, and what is Northgate's daily rate? Do not look it up — say the number, then derive it.
Check yourself
General conditions are the cost of having a project, not of building any particular piece of it: the project staff, the trailer, temporary power and water, the dumpsters, the safety program, the cleanup crew. They accrue every day the job exists, whether or not a single square foot of work is installed. Northgate's GC budget is $2,900,000 over 565 calendar days: $2,900,000 ÷ 565 = $5,133/CD, and the book uses the contractually agreed extended rate of $5,150 per calendar day. Add liquidated damages of $5,500/CD and every calendar day of slip past substantial completion costs $10,650. That is the number that made every trade-off in §14.7.2 decidable — and it is why the schedule and the budget are the same conversation.
2. From Chapter 10: what sets the interior schedule, and what does that mean for how you sequence a floor?
Check yourself
MEP coordination, not structure, sets the interior schedule. Above the ceiling, ductwork, piping, conduit, cable tray, sprinkler mains, and medical gas all compete for the same plenum, and they have to be installed in an order that lets each trade get its work in without demolishing somebody else's. On a floor, that order is usually: overhead rough-in (largest and least flexible first — typically ductwork, then sprinkler mains, then plumbing, then conduit), then in-wall rough-in, then inspections, then close walls, then ceiling grid, then finishes. Every one of those handoffs is a relationship in your CPM, and if you modeled the whole floor as one bar called "interiors," you cannot see, sequence, or defend any of it. This is also why the 20-work-day partition duration in §14.4.3 depends on three floors of overhead rough being complete first.
3. Deep callback — Chapter 6: three-point estimating. Apply it to a duration.
Ironbridge's fabrication and delivery activity (F) carries 45 work days in the baseline. Ask Hank Duffy for three numbers instead of one and he says: best case 38 days if the mill slot holds and detailing goes clean; most likely 45; worst case 68 if the slot moves.
Expected duration: te = (O + 4M + P) ÷ 6
te = (38 + 4 × 45 + 68) ÷ 6 = (38 + 180 + 68) ÷ 6 = 286 ÷ 6 = 47.67 → 48 work days
Standard deviation ≈ (P − O) ÷ 6 = (68 − 38) ÷ 6 = 5 work days.
What this tells you
The 45 days in the schedule is the most likely duration, not the expected duration. The expected duration is 48. Three days does not sound like much — until you notice that this pattern repeats on every activity in the schedule, always in the same direction, because the downside tail of a construction duration is much longer than the upside tail. Nothing finishes in half the time. Plenty of things take twice as long.
That asymmetry is the real reason baselines are optimistic, and it is not dishonesty — it is the arithmetic of taking a most-likely value as a plan. It is also why the four days of float on the steel chain were never four days of comfort: with a standard deviation of five days on F alone, four days of float is less than one standard deviation of protection on a single activity.
Project Checkpoint: The Willow Street CPM Schedule
In Chapter 12 you produced a quantity takeoff for the Willow Street Community Center, and in Chapter 13 you turned it into a detailed estimate by CSI division with bid tabs, markup, and a final number. This chapter turns those same quantities into time. You are going to discover, doing it, that you already have most of what you need — because the schedule and the estimate come out of the same takeoff.
Recall the project: $6.8M, 24,000 SF, two stories, wood-framed second floor over a structural steel and CMU first floor; gymnasium, two multipurpose rooms, commercial kitchen, offices, locker rooms. City of Rivermont Parks & Recreation, design-bid-build, lump sum, 425 calendar days, liquidated damages $1,200 per calendar day, prevailing wage. Flat 2.1-acre site with one existing 8-inch water main to relocate. The full package is in Appendix K.
Build these seven pieces.
1. Calendar conversion. Convert 425 calendar days to available work days: subtract weekend days (roughly 121 in a 425-day span), observed holidays (use 9), and a realistic weather allowance for your climate (use 14 for exterior work). Write down the number of work days you actually have. Every duration you write from here on gets compared to it.
2. Activity list — aim for 55 to 80 activities. Derive them from your Chapter 12 takeoff, organized by a three-level WBS (site/substructure, structure, enclosure, interiors by floor, MEP, sitework, closeout). Apply the five rules from §14.3.2: one responsible party, one type of work, one area, 1 to 20 work days, verb-noun-location. Include a procurement branch — structural steel, the gym floor system, kitchen equipment, and the rooftop units all have submittal-and-lead-time chains, and at least one of them will drive your job.
3. Durations from quantities. For at least eight activities, show the calculation: duration = quantity ÷ (production rate × crews). Write the assumed crew size and production rate next to each one. For every other activity, state the basis in a few words. Label every duration WD or CD and assign the right calendar.
4. Logic. Build the network. For every relationship, note whether it is hard, soft, or resource logic. Keep lags to a minimum and justify any over 5 days in writing. No negative lags. No start-to-finish relationships.
5. Roll up to a 20-activity summary and run it by hand. This is the part you must not skip. Collapse your network into a summary of about 20 activities, then run the forward pass and the backward pass on paper, in a table exactly like the one in §14.6.5. Compute total float and free float for every summary activity. Identify the critical path. Check that the first activity's late start comes back to zero.
6. Gantt chart. Draw it — on paper, in a spreadsheet, or in ASCII like §14.6.8 — with the critical path marked and float shown.
7. The verdict, in writing. Does your schedule fit inside 425 calendar days? Convert your work-day duration back to calendar days and compare. Then answer the harder question: if it does not fit, what would you do? Give three priced options — resequence (free, but what does it cost in risk?), accelerate a critical activity (name it and price the crew), or request contract time (name the entitlement you would rely on and the notice you would have to give). State which you would recommend and why. If it does fit, say how much project float you have and who you think owns it.
Next chapter you take this schedule, the estimate from Chapter 13, and everything you know about the job into a bid/no-bid decision and a complete bid package. The schedule is not a side document in that decision — a job you cannot schedule inside the contract time is a job you should think hard about bidding.
Chapter Summary
The CPM procedure, complete, on one page.
| Step | Rule | Check |
|---|---|---|
| 1. Break down | Decompose scope into a WBS by area, system, and phase | Procurement is its own branch |
| 2. Define activities | One party, one work type, one area, 1–20 WD, verb-noun-location | No activity you cannot verify by walking the building |
| 3. Estimate durations | Duration = quantity ÷ (production rate × crews) | Same two numbers produce the cost — they must agree |
| 4. Assign calendars | 5-day for field work, 7-day for cure and procurement, weather in the calendar | Label every duration WD or CD |
| 5. Build logic | Ask "what physically prevents this from starting?" Mark each relationship hard / soft / resource | No SF, no negative lags, no unexplained lag over 5 days |
| 6. Forward pass | ES = MAX(EF of predecessors); EF = ES + Duration | Project duration = EF of the last activity |
| 7. Backward pass | LF = MIN(LS of successors); LS = LF − Duration | First activity's LS must return to 0 |
| 8. Float | TF = LS − ES = LF − EF. FF = min(ES of successors) − EF. IF = TF − FF | TF computed both ways must match |
| 9. Critical path | The chain of zero-total-float activities; also the longest path | Verify by adding 100 days to a critical activity — the finish must move 100 |
| 10. Load and publish | Resources → manpower histogram. Dollars → cash-flow S-curve | Money peaks before headcount does |
The five sentences worth memorizing.
- The critical path is calculated, not designated. Nobody chooses it, and it moves when durations or logic change.
- Float belongs to a path, not an activity, and it can be spent exactly once by whoever reaches it first.
- Total float protects the project; free float protects your successor. An activity with total float but no free float spends somebody else's room.
- A duration and a cost come from the same two numbers — quantity and production rate — which is why the schedule and the budget are one conversation and why $10,650 a day is a schedule number.
- The software calculates; it does not think. Every wrong schedule was arithmetically perfect.
The five defects that make float disappear. Open ends · mandatory or unjustified constraints · soft logic modeled as hard · lags standing in for unowned work · durations padded at the activity level so the contingency is invisible.
Decision framework — when somebody asks you to accept a delay "because there's float there."
- Is the float total or free? If total but not free, you are spending a downstream party's room.
- How much float does the path have, and how much would this consume?
- What is downstream, and can any of it be accelerated later? A chain ending at a mill slot, a permit, or an owner-furnished item cannot be bought back.
- What is a day worth on this job? Compute it: extended general conditions + liquidated damages per calendar day.
- Who owns the float under this contract, and have you said so in writing, in the minutes, today?
What's Next
You now have a number for the work (Chapter 13) and a number for the time (this chapter), and they were built out of the same takeoff. Chapter 15 puts both in front of the hardest question in this business: should you bid this job at all? You will build a bid/no-bid analysis, assemble a complete bid package, and learn the discipline of walking away from work that will hurt you — a discipline that has saved more contractors than any estimating technique ever invented.