EPiCCircleshared sheet

Interactive learning for EPC. Connecting disciplines.

Float, the Critical Path, and Who Owns Delay

"We had three days of float, so we're fine"

Your stress analysis package (activity D) was due Tuesday. It went out Friday — three days late. You checked the schedule first: D showed 3 days of total float. You consumed it, the project end date did not move, nobody said anything.

Six weeks later the contracts manager asks you to write a statement about that week, because the valve vendor is claiming an extension of time and the argument turns on who used the float.

Guess first: you used float that existed on your own activity. Whose was it?

Most engineers answer "mine — it was on my line." The honest answer is: it depends entirely on a clause in the contract, and in many contracts it was not yours at all. Which brings us to the belief this note exists to kill:

"Float belongs to the contractor."

It is repeated everywhere and it is not a fact about schedules. It is a contract term — one that different standard forms answer three different ways, and that some contracts do not answer at all, which is worse.

Total float, free float, and the path that moves

Everything below comes from two passes over the logic network. No judgement, no opinion — just arithmetic.

FORWARD PASS  (earliest dates)
ES = max(EF of all predecessors)          EF = ES + duration

BACKWARD PASS (latest dates, from the project finish or the contract date)
LF = min(LS of all successors)            LS = LF − duration

TF = LS − ES        total float : slip before the PROJECT finish moves
FF = min(ES of successors) − EF     free float : slip before the NEXT ACTIVITY moves

Three consequences people get wrong:

Near-critical paths — anything within, say, 5–10 days of the critical path — deserve the same attention, because one bad update promotes them.

Why "longest path" beats "zero float" as the definition

Under a simple network with the backward pass run from the calculated finish, the critical path is exactly the set of zero-total-float activities, and the two definitions agree. They stop agreeing as soon as the schedule has:

  • a contract completion date earlier or later than the calculated finish (the backward pass runs from the imposed date, so every activity on the driving path carries the same non-zero float — negative if the date is unreachable);
  • constraints (Start-No-Earlier-Than, Finish-On, deadlines) which break float propagation;
  • multiple calendars, where an activity with float in calendar days may have none in working days;
  • resource levelling, which delays activities for reasons the logic does not record at all.

That is why the modern forensic definition (and the AACE Recommended Practice 29R-03 guidance) is the longest path through the network, and why planners say "the longest path" while software still colours "TF ≤ 0". Use zero-float as the everyday shorthand; use longest-path when money is on the table.

A real 7-activity network, calculated by hand

This is the network in the interactive. Piping deliverables on one chain, a long-lead valve package hanging off the line list.

A  P&IDs issued for design      10 d   —
B  Line list + critical lines    6 d   after A
C  Piping GA / 3D layout        14 d   after A
D  Pipe stress analysis          8 d   after B and C
E  Support design + MTO          6 d   after D
F  Isometrics IFC                5 d   after D and E
G  Long-lead valve PO → site    24 d   after B

Forward pass. A: 0→10. B: 10→16. C: 10→24. D starts at max(16, 24) = 24 → 32. E: 32→38. F starts at max(32, 38) = 38 → 43. G: 16→40. Project finish = 43 days.

Backward pass from day 43. F: LF 43, LS 38. G: LF 43, LS 19. E: LF = LS(F) = 38, LS 32. D: LF = min(LS E 32, LS F 38) = 32, LS 24. C: LF = LS(D) = 24, LS 10. B: LF = min(LS D 24, LS G 19) = 19, LS 13. A: LF = min(LS B 13, LS C 10) = 10, LS 0.

Act Dur ES EF LS LF TF FF
A 10 0 10 0 10 0 0
B 6 10 16 13 19 3 0
C 14 10 24 10 24 0 0
D 8 24 32 24 32 0 0
E 6 32 38 32 38 0 0
F 5 38 43 38 43 0 0
G 24 16 40 19 43 3 3

Critical path: A → C → D → E → F = 10 + 14 + 8 + 6 + 5 = 43 days. Not the valve, even though the valve is the longest single activity on the job.

Now look at B: total float 3, free float 0. B can slip 3 days without moving the finish — but the moment it slips one day, G starts a day later and G's own 3 days of float shrink to 2. B's float is not B's; it is shared with G down the path. That single line is the reason the float-ownership question exists.

Drag any duration and watch the two passes recompute, the table update and the highlight jump when the path switches — stretch B from 6 to 10 days and the critical path becomes A → B → G: ▶ open the interactive: project float critical path calc

The same network in space, with the float drawn as translucent volumes trailing the non-critical blocks, is the clearest picture of "float is a gap, not a property of the bar": ▶ open the interactive: project float critical path 3d

Symbol key — every symbol on this sheet

Who owns the float — the three answers

Float is a project resource created by the logic, and the contract decides who may spend it.

What the standard forms actually do: FIDIC is famously silent — it grants an EOT only when completion "is or will be delayed," which is a completion-date test and therefore behaves like project-owns-float in practice. NEC3/NEC4 handles it differently again through terminal float and time risk allowance, and moves the Completion Date only when the planned Completion is pushed. The SCL Delay and Disruption Protocol (2nd ed.) recommends the project-owns-float position and says so explicitly. If your contract says nothing, assume a fight.

And the practical point behind all of it: consuming float changes the evidence. An activity at zero float is one disruption away from being critical. "We had float" is a statement about last month's schedule, not this month's.

Excusable, compensable, and the concurrency problem

Three categories, and mixing them up is how people lose claims:

  • Non-excusable — contractor's own fault. No EOT, no money; LDs apply.
  • Excusable but non-compensable — neither party's fault (exceptionally adverse weather, a named force-majeure event). EOT yes, money no. The parties share the pain: the owner loses time, the contractor loses its overhead recovery.
  • Excusable and compensable — owner's fault (late access, late free-issue, a variation, late P&IDs). EOT and prolongation cost.

Concurrent delay is where two delays — one the owner's, one the contractor's — affect the critical path over the same period. The classic outcome is time but no money: the contractor gets the EOT (so no LDs) but not the prolongation cost, because it would have been delayed anyway. Getting there requires deciding whether the delays are truly concurrent (the "Malmaison" approach vs the dominant-cause approach vs apportionment), and whether you analyse prospectively (time impact analysis on the schedule as it stood) or retrospectively (as-built collapsed). Different methods on the same facts give different answers — which is why a contemporaneously updated, logic-driven schedule is worth more than any argument made afterwards.

What corrupts float — and what negative float on your package means

Float is only as honest as the logic that produced it. Things that manufacture fake float, or hide real risk:

Negative float on your IFC package is the one every discipline engineer eventually sees, and it is usually misread as "you are behind." It is not a measurement of you. It means the backward pass was run from a contract date the logic can no longer reach, so the planner's arithmetic says the work should have finished before today. Concretely: −6 days on your isometric package means the schedule, as currently logicked, requires six days you do not have. Your response is not to work faster in silence. It is to say which of the three things is true: the duration is wrong, the logic is wrong, or the date is unachievable and needs a recovery plan or an EOT.

The delay-injection control in the playground makes the ownership question concrete: put six days on A (owner-caused, zero float) and every downstream activity goes negative; put five days on C and compare what "project owns float" and "contractor owns float" each say about who pays: ▶ open the interactive: project float critical path calc

Common pitfalls

Outcome

Open items

Know why, not just what.

One sheet from EPiC Circle

Interactive engineering lessons across every EPC discipline — calculators, 3D models and misconception-first teaching. Free to read; sign in to track progress, take the quizzes and ask questions.

Open in EPiC Circle →

Educational teaching material — simplified and illustrative. Not for engineering design use.
© EPiC Circle · provided by PipeAxis