Builder's Library

CPM for Builders

Critical Path Method sounds like something that belongs in a PMP exam, not on a job site. But the underlying idea is straightforward, and once you understand it, you'll look at your schedule differently. CPM tells you two things every builder needs to know: which tasks, if delayed, will push your completion date — and which tasks have room to slip without hurting you. That's it. The math behind it is simple arithmetic. This guide explains how it works in plain language and how to use it to run a tighter job.

Why Your Start Dates Are Probably Wrong

The most common scheduling approach in residential construction: take the promised completion date, count backwards to today, divide the calendar time roughly among phases, and fill in start dates. Framing starts June 1. Rough MEP starts June 22. Drywall starts July 10. It looks like a plan. The problem is that none of those dates were derived from the logic of the work — they were derived from the calendar and a completion deadline. When you set "framing starts June 1," have you confirmed that foundation cure time will be satisfied by then? That the framing crew is available June 1 and not finishing another job? That windows have been ordered with enough lead time to arrive before the building needs to be dried in? CPM forces these questions to the surface before they become problems.

Start dates that aren't anchored to task durations and dependencies are wishes. They'll hold as long as nothing goes wrong. The moment one task slips — and one task always slips — your entire date structure collapses and you're rebuilding it manually. CPM gives you a schedule that recalculates itself automatically when reality diverges from the plan.

What CPM Actually Does

CPM calculates, for every task in your schedule, two windows: the earliest it can possibly start and finish (given when its predecessors complete), and the latest it can start and finish without pushing the project end date. The difference between those two windows is called float — or slack. A task with 5 days of float can slip 5 days before it affects anything downstream. A task with zero float cannot slip at all without moving your completion date.

The critical path is the chain of tasks with zero float that runs from project start to project end. It's the longest path through your schedule. Delay any task on it and the project end date moves by exactly that much. Tasks off the critical path have float — they're on branches that rejoin the critical path later, and the branch is shorter than the main trunk.

CPM doesn't make decisions for you. It doesn't tell you what to prioritize or how to fix a problem. What it does is tell you what matters. When you're managing 60 active tasks across three subs, that's not a small thing. Knowing that your electrician's two-day delay doesn't affect the critical path — while your inspector's three-day backlog does — determines where you spend your energy that week.

The Forward Pass: Earliest Possible Finish

The forward pass is how CPM calculates the earliest possible dates for every task. You start at the beginning of the project and push forward through the network, asking: given when each task's predecessors finish, when is the earliest this task can start and finish?

Walk through a concrete example. Four tasks in sequence: Pour Footings (3 days) → Cure Concrete (5 days) → Framing (10 days) → Roof Sheathing (3 days). The project starts on Day 1. Pour Footings can start Day 1, finish Day 3. Cure Concrete can start Day 4 (as soon as footings finish), finish Day 8. Framing can start Day 9, finish Day 18. Roof Sheathing can start Day 19, finish Day 21. The earliest the project can finish — assuming this is the only chain of work — is Day 21. That's your forward pass. Every number came from arithmetic, not from guessing at a reasonable timeline.

On a real project with dozens of tasks, the forward pass follows every branch of the network simultaneously and tracks the longest path forward. Any task that has multiple predecessors can't start until all of them finish — its earliest start is determined by whichever predecessor finishes latest. That constraint is what creates the critical path.

The Backward Pass: Latest Allowable Start

The backward pass starts from the target end date and works backwards, asking: given when each task's successors must start, what is the latest this task can finish and still allow the project to finish on time?

Using the same four-task example, with a target finish of Day 21. Roof Sheathing must finish by Day 21 — so it must start no later than Day 19 (it's 3 days long). Framing must finish by Day 18 so Roof Sheathing can start Day 19 — so Framing must start no later than Day 9. Cure Concrete must finish by Day 8 so Framing can start Day 9 — so Cure must start no later than Day 4. Pour Footings must finish by Day 3 so Cure can start Day 4 — so Footings must start no later than Day 1.

Notice what just happened: the latest allowable start for every task equals the earliest possible start. The difference between them — the float — is zero for every task in this chain. They're all on the critical path. Any slip anywhere and Day 21 moves. That's the nature of a purely sequential chain with no parallel work.

Float: Your Schedule's Breathing Room

Float is what makes CPM actually useful in practice. Float equals the latest allowable start minus the earliest possible start. A task with 4 days of float can start up to 4 days later than the earliest possible date without affecting the project end date. It's not a mistake in the schedule — it's real slack that exists because a parallel branch of work finishes later than this branch does.

Add a parallel task to the example: while the concrete is curing (Days 4–8), the electrician can run underground conduit (2 days). Underground conduit has one predecessor — it needs the footings to be poured so the trench can be dug — and one successor — it connects to the rough electrical, which happens after framing. Let's say rough electrical starts Day 19 at the earliest. Underground conduit finishes at Day 5 at the earliest (starts Day 4, takes 2 days). That means conduit has float of roughly 14 days — it can slip almost two weeks without affecting anything. Your electrician has a lot of flexibility in when exactly they run that conduit during the cure window.

This is the insight that separates builders who use CPM from builders who don't. When your electrician calls and says they need to push underground conduit two days, you don't panic — you look at the float and say "you've got 14 days of float on that task, move it." When your lumber delivery is two days late and it's on the critical path, you call the supplier back immediately and find a solution, because those two days come directly off your completion date.

Critical path Non-critical (has float) Pour Footings 3 working days Days 1–3 Cure Concrete 5 working days Days 4–8 · Float: 0 Underground Conduit 2 days · Float: ~14d Framing 10 working days Days 9–18 · Float: 0 Roof Sheathing 3 working days Days 19–21 · Float: 0 ▲ Critical path: A → B → D → E (21 days). Underground Conduit joins at D but has ~14 days of float.
Critical path in navy (zero float). Underground Conduit in gray — it has roughly 14 days of float and can be scheduled flexibly without affecting the project end date.

How to Use Float Strategically

Float is not permission to be late. It's a buffer against legitimate delays. The builder who burns float through disorganization — sub crews showing up a day late because nobody confirmed the schedule, materials sitting in the driveway because nobody called for delivery at the right time — has used up a risk buffer that should have been available for the unexpected. When the inspector can't come until Thursday, you want that float. Don't spend it on things you could have controlled.

Float is also a sequencing tool. If your plumber has 5 days of float and your electrician is backed up two days, you can give the electrician first access and tell the plumber to start Wednesday instead of Monday. Both crews make progress, neither conflicts, and you haven't moved the completion date. This is the kind of coordination that turns a chaotic job site into a smooth one. It requires knowing which tasks have float and how much — which is exactly what CPM gives you.

One warning sign that experienced builders learn to recognize: if you build your schedule and nearly every task shows zero float, something is wrong. Either you've left out dependencies that should be there (making the network look more sequential than it is), your durations are too tight and don't reflect reality, or your project genuinely has no room for any delay anywhere. The first two are fixable by building the schedule more accurately. The third is a signal to have a conversation with your homeowner about schedule risk before the project starts, not mid-project when a delay has already happened.

The Critical Path on a Real House Build

For a custom home, the critical path typically runs: site prep and clearing → excavation → footings → foundation walls → waterproofing and backfill → framing → exterior sheathing → roofing → rough MEP (all trades) → rough inspections → insulation → drywall → prime coat → interior trim and doors → paint → finish MEP (fixtures, devices) → flooring → final trim and hardware → punch list and final inspections → certificate of occupancy. That chain represents the longest sequence of dependent work with no parallel shortcuts. Every task on it has zero float.

What typically has float? Flatwork — driveways, patios, sidewalks — can usually be scheduled anywhere in a wide window relative to interior work, as long as it's done before final grading and landscaping. Landscaping itself often has significant float and is frequently scheduled opportunistically based on weather. Detached garage construction, if the main house is the critical path, can have substantial float. Hardscape and exterior lighting similarly. The float on these items gives you flexibility in scheduling crews and managing cash flow without affecting your homeowner's move-in date.

The rough MEP phase deserves special attention because it's where the critical path gets complicated. Your plumber, electrician, and HVAC contractor all need access simultaneously or in tight sequence, and the rough inspection covers all three trades. The inspection can't happen until all three are complete. Whichever trade finishes last determines when you can call for inspection — and that trade's completion is the critical constraint. Manage your rough MEP subs as a coordinated sequence, not three independent schedules, or you'll find yourself waiting on one trade to get your inspection called.

Common CPM Mistakes

The most common: no dependencies at all. Every task floats independently, connected to nothing. You have a list of durations but no network. CPM can't run without dependencies — the relationships between tasks are what create the critical path. If your schedule tool shows zero critical path tasks, it's because you haven't linked anything. The schedule is decorative.

The second most common: every task on the critical path. This typically happens when builders use "link in sequence" tools that chain every task to every other task in a single linear sequence, with no parallel branches and no float anywhere. A real residential project has dozens of tasks that can run in parallel — finishes in one area while rough MEP continues in another, site work continuing while interior work proceeds. A schedule where 100% of tasks are critical is almost certainly too sequential. Revisit your dependencies and build in the parallelism that actually exists in the work.

In Baulit

Baulit's CPM engine runs automatically in the background whenever you have tasks with dependencies and durations assigned. You don't run a calculation — the schedule is always current. The Gantt Chart displays the critical path highlighted in red so it's immediately visible. Non-critical tasks show a slack bar extending from their earliest finish to their latest allowable finish — a visual representation of how much float they carry. You can see at a glance which tasks need your attention today and which have room.

The Dependency Wizard is the primary tool for building the task network that CPM needs to run. It walks you through each task and lets you assign predecessors in a structured interface — no manual entry of task IDs, no risk of creating circular dependencies. All dependencies in Baulit are Finish-to-Start (FS), which is the correct dependency type for the vast majority of residential construction sequences: a task cannot start until its predecessor is fully complete. Durations are entered in working days throughout, and the Gantt chart translates those to calendar dates automatically.

If you're new to CPM, start with a small project or a single phase and build the dependency network for just that portion. Run the Gantt, look at what the critical path shows, and verify it against your experience of how that work actually sequences. Once the logic looks right, you'll have a schedule that does real CPM — and a much clearer picture of where your project stands at any given moment.