See your critical path on a Gantt.
Enter your activities, durations, and dependencies. The forward and backward pass compute every activity's float, and the zero-float critical path lights up red across the schedule.
| Type | Formula | Means |
|---|---|---|
| Total float | Late start − early start | Slip before the project finish moves |
| Free float | Successor ES − early finish | Slip before the next activity moves |
| Forward pass | ES = max(EF of predecessors) | Earliest each activity can start |
| Backward pass | LF = min(LS of successors) | Latest each can finish without slipping the job |
| Zero float | Total float = 0 | On the critical path |
Project Schedule — Gantt
PODSchedule
performance
Gantt timeline
| Activity | Dur | ES | EF | LS | LF | Total float | Free float | Critical |
|---|---|---|---|---|---|---|---|---|
| A Mobilize | 2 | 0 | 2 | 0 | 2 | 0 | 0 | yes |
| B Foundations | 6 | 2 | 8 | 2 | 8 | 0 | 0 | yes |
| C Structure | 10 | 8 | 18 | 8 | 18 | 0 | 0 | yes |
| D MEP rough-in | 8 | 18 | 26 | 18 | 26 | 0 | 0 | yes |
| E Sitework | 9 | 2 | 11 | 17 | 26 | 15 | 15 | no |
| F Finishes | 7 | 26 | 33 | 26 | 33 | 0 | 0 | yes |
Your activities
Set a duration, a percent complete, and which activities must finish first. Everything recomputes live.
Worked example: both passes on the starter schedule
The six activities this page loads by default make a complete lesson, so walk them once by hand. Mobilize (A, 2 days) opens the job. Foundations (B, 6) follows A, then Structure (C, 10), then MEP rough-in (D, 8) in a chain. Sitework (E, 9) also follows A but runs on its own branch. Finishes (F, 7) cannot start until both D and E are done.
Forward pass (early dates). A starts at day 0 and finishes day 2. B runs days 2–8, C days 8–18, D days 18–26. E starts when A ends: days 2–11. F needs both D (26) and E (11), and an activity's early start is the latestearly finish among its predecessors, so F runs days 26–33. Earliest possible completion: day 33.
Backward pass (late dates). Now push back from day 33. F must start by 26. D must finish by 26, so it must start by 18; C by 8; B by 2; A by 0. E only has to finish by 26, so its late start is 26 − 9 = 17, even though it could start at day 2.
Float. Total float = late start − early start. For A, B, C, D, and F that difference is zero: they are the critical path, A→B→C→D→F, 33 days end to end. Sitework carries 17 − 2 = 15 days of total float, and since its only successor F cannot start before day 26 anyway, its free float is also 26 − 11 = 15: Sitework can lose three full weeks before anyone downstream feels it. Change one duration above and watch the table re-derive all of this instantly.
Where each rule comes from
Nothing on this page is invented: every step is standard critical-path method, and each piece traces to published scheduling literature.
| Rule | Statement | Reference |
|---|---|---|
| Forward pass | ES = max(EF of predecessors); EF = ES + duration | Kelley & Walker, “Critical-Path Planning and Scheduling” (1959) |
| Backward pass | LF = min(LS of successors); LS = LF − duration | Kelley & Walker (1959) |
| Total float | TF = LS − ES = LF − EF | PMBOK Guide, 7th ed. (PMI, 2021) |
| Free float | FF = min(successor ES) − EF | PMI Practice Standard for Scheduling, 3rd ed. (2019) |
| Critical path | The zero-total-float chain; the longest path through the network | PMBOK Guide (PMI, 2021) |
| Float health checks | No negative float; flag activities with > 44 working days total float | DCMA 14-Point Schedule Assessment (EVMS Program Analysis Pamphlet, 2012) |
The 44-day threshold is a review trigger from DCMA guidance, not a rule that float above it is wrong — it flags activities whose slack is more likely missing logic than real slack.
How float actually gets used on a jobsite
Float is a budget that spends itself. Every schedule update re-runs the two passes against the new data date, and float an activity had last month may be gone this month because a predecessor slipped, a duration grew, or a crew got pulled. That is why a healthy update rhythm matters more than the baseline: the critical path is not a fixed list of activities, it migrates as work burns down. In the starter example, let Sitework drift 16 days and it stops being the forgiving branch — it becomes the critical path, and Foundations suddenly has float instead.
Two practical habits follow. First, watch the near-critical band, not just the red bars: an activity with 2 days of total float is one delivery problem away from owning your end date. Second, treat free float as the coordination number. A subcontractor who knows their free float knows exactly how much slip they can absorb without triggering the trade behind them, which is a far more useful conversation than arguing about the finish date. Who owns the float, contractor or owner, is a contract question worth settling before a delay claim makes it expensive.
Prefer a spreadsheet? Download the free delay and EOT log — real formulas and cited sources built in.
Download the delay and EOT log (XLSX)A demo schedule here. Your real one in POD.
This runs the critical-path method on the activities you type in. POD reads the schedule files your team already exports and keeps total float and the critical path current across the whole job, so a shrinking buffer shows up the day it starts, not at the next look-ahead.
Questions & answers
The number of days an activity can slip before the project completion date moves. Arithmetically it is late start minus early start (equivalently, late finish minus early finish), and it only exists once both passes have run: the forward pass fixes the early dates, the backward pass fixes the late dates, and float is the gap between them.
Method & sources
This runs the standard critical-path method on the activities you enter. The forward pass sets each activity's earliest start and finish (ES = the latest early-finish of its predecessors); the backward pass sets the latest start and finish without slipping the project. Total float = late start minus early start; free float = the earliest-start of the successors minus this activity's early finish; zero-total-float activities are the critical path. The Gantt plots each activity from its early start to early finish, with the schedule status (SPI, on-schedule and behind counts) derived from the percent-complete and data date you enter. Nothing is assumed.
Sources: PMI PMBOK Guide (schedule network analysis / CPM) · Kelley & Walker, "Critical-Path Planning and Scheduling" (1959) · DCMA 14-Point Schedule Assessment (schedule health checks)
Methodology reviewed by the Plan of Day construction team · July 2026
Your durations and dependencies drive the path; we don't guess the rest.
See the critical path on your own schedule.
Load the schedules you already export and POD keeps float and the critical path current between updates, so a shrinking buffer shows up the day it starts, not at the next look-ahead.
Last updated: September 2026