What a CPM Schedule Is, and How to Build One

A CPM schedule is not a chart. It is the output of an arithmetic procedure you could run on the back of an envelope: two passes over a list of tasks and the links between them. The bars you end up looking at are just a drawing of the answer. I think most of the confusion around the term starts there — people are shown the picture and told it is the method.

So here is the method itself, worked end to end on a real plan: a 21-task house renovation, five trades, no invented numbers. Every figure below came out of the same file, and you can run it yourself in a minute.

Gantt chart of a 21-task renovation showing critical tasks in orange and tasks with slack in blue, with daily resource load rows underneath.
The drawing at the end of the arithmetic. Orange bars have no room to move; blue ones do.

Where the method came from

Critical path planning was worked out in 1957 by James Kelley at Remington Rand and Morgan Walker at DuPont, who were trying to schedule chemical plant shutdowns. They published it two years later as Critical-Path Planning and Scheduling at the 1959 Eastern Joint Computer Conference. PERT was invented separately and at almost the same time for the Navy’s Polaris programme. The two get used interchangeably now, which is a shame, because they were answering different questions — CPM assumes you know how long each job takes, PERT assumes you do not.

The forward pass

You need three things per task: a duration in working days, and a list of the tasks that have to finish before it can start. That is it. No dates.

The forward pass walks the list from the start and asks, for each task, what is the earliest this could possibly begin? The rule is one line: a task’s early start is the latest of its predecessors’ early finishes, and its early finish is its early start plus its duration. Tasks with no predecessors start on day zero.

On the renovation, Site setup is 3 days with nothing before it, so it runs day 0 to 3. Demolition waits on it: day 3 to 8. Excavation waits on Demolition: 8 to 12. Foundations, 6 days: 12 to 18. Keep going and the last task, Punch list and handover, finishes on working day 58 — 25 November 2026 once you lay it on a calendar and skip the weekends. That number is the whole reason to do the forward pass. Nobody typed it in.

The backward pass

Now run the same list in reverse, starting from that finish date, asking what is the latest this could begin without pushing the end out? A task’s late finish is the earliest of its successors’ late starts; its late start is that minus its duration.

Subtract the two and you get total float: late start minus early start, the number of days the task could slip before the project finish moves. Roofing, on this plan, can start as early as day 30 and as late as day 39. Nine days of float. Rough electrical can start on day 30 and no later than day 30. Zero.

The critical path falls out of the arithmetic

You do not look for the critical path. You compute float for every task and then read off the ones where it came out zero. On this plan that is twelve tasks of the twenty-one: site setup, demolition, excavation, foundations, slab pour, framing, rough electrical, insulation, drywall, interior painting, flooring, handover. Their durations add up to exactly 58 days, which is the project length, because that is what a critical path is — the longest chain through the network.

Two things follow that are worth saying out loud. There can be more than one critical path, and often is. And the critical path moves: shorten framing by three days and a different chain becomes the longest one, so the tasks you need to watch change. A cpm schedule is only true for the durations you fed it.

The assumption nobody prints on the chart

Here is the part that took me years of doing this for a living to stop being annoyed about. The forward and backward passes never once ask whether the people exist.

On the renovation, the CPM answer says framing, rough electrical, rough plumbing and windows can all run at the same time, because nothing in the dependency list forbids it. Count the bodies on the busiest day and the plan wants five general crew. The job has three. It is over capacity on fourteen separate days, and every one of those days looks perfectly fine on the network, because the network was never told.

Schedule the same 21 tasks so that no day ever needs more than three crew, and the finish moves from 25 November to 2 December. Five working days that were never anywhere in the CPM output — not hidden in it, not implied by it, simply outside what the method models.

Summary tiles: with unlimited people the project finishes Nov 25 2026; with the crew actually available it finishes Dec 2 2026, five working days later.
Left is what the critical path method tells you. Second from left is what happens on site.

CPM schedule, CPM chart, network diagram — which is which

  • CPM schedule — the dated result of the two passes: a start and a finish for every task, plus its float.
  • CPM chart or network diagram — the boxes-and-arrows drawing of the dependencies, before any dates exist.
  • Gantt chart — bars on a calendar. It can show a CPM schedule, or it can show dates somebody typed in by hand, and it looks identical either way.
  • PERT chart — the same network shape, but with three duration estimates per task instead of one.

A small warning if you go searching for tools. “CPM calculator” is almost entirely an advertising term — cost per mille, what a thousand ad impressions cost. Add the word schedule or construction or you will spend an afternoon in the wrong industry.

Doing the passes without doing the arithmetic

Twenty-one tasks is already too many to enjoy by hand, and real jobs are not twenty-one tasks. The forward pass is genuinely easy to put in a spreadsheet — I wrote up how to build one in Excel that calculates its own start dates rather than making you type them. The backward pass is the awkward half, because it needs each task’s successors and your sheet only stores predecessors.

So I put both passes, and the resource side the method ignores, into a free scheduler. Upload the same workbook and it gives you the CPM dates, the float per task, and then the second answer: the schedule that fits inside the crew you actually have, proved optimal by a constraint solver rather than guessed at by a priority rule. That distinction matters more than it sounds — when somebody benchmarked the levelling button in seven commercial packages, the median schedule came back 3.6% above optimal, and worse when crews were tight.

None of which makes the critical path method less useful. It is still the cleanest hundred lines of arithmetic in project management, and it will still tell you which twelve of your twenty-one tasks you cannot afford to be casual about. It just answers the question it was asked, which is how long the work takes if people are free. Knowing that is most of knowing how to read one.

Tradeline Supply
Things that I use, like, and am affiliated with:
Mint Mobile offers great cell phone service for $15 flat, get $15 off using the link. Get discounted phones with service activation and no contract.
I never spend money before I check Mr Rebates or Rakuten to get cashbacks, rebates, discounts, coupons or cheaper gift cards.

Leave a Reply