Total Float vs Free Float: What Planners Actually Need to Know
Float is one of the first things anyone learns about scheduling and one of the most misunderstood things on site. I have sat in plenty of meetings where someone says an activity "has two weeks of float" as if that means it can slip two weeks without consequence. Sometimes that is true. Often it is not.
This article explains the difference between total float and free float, how scheduling tools work them out, and what they actually tell you when you are making decisions.
The short version
- Total float is how long an activity can be delayed without delaying the project finish (or another constrained milestone).
- Free float is how long an activity can be delayed without delaying the early start of any activity that follows it.
Free float is always less than or equal to total float. If an activity uses its free float, nobody else notices. If it uses total float beyond its free float, it pushes successors later and eats into float that other activities were relying on.
How the dates are calculated
Every scheduling tool, whether Primavera P6 or MS Project, runs the same basic calculation, the critical path method.
Forward pass. Starting from the project start, the tool calculates the earliest each activity can start and finish, following the logic links. This gives the early start and early finish dates.
Backward pass. Starting from the project finish (or a constraint), the tool works backwards to find the latest each activity can start and finish without delaying the end date. This gives the late start and late finish dates.
From those four dates:
- Total float = late finish minus early finish (or late start minus early start in a simple case).
- Free float = the earliest early start of the successors minus this activity's early finish, adjusted for any lag on the links.
In P6 you will see these as Total Float and Free Float columns. MS Project calls them Total Slack and Free Slack. Same idea, different words.
A simple example
Imagine three activities in sequence:
- A: Install cable tray, 5 days
- B: Pull cables, 10 days, which follows A
- C: Terminate and test, 5 days, which follows B
Separately, a fourth activity:
- D: Install distribution boards, 4 days, which also must finish before C can start.
Path A-B-C is 20 days. D only needs 4 days and can start on day 1, so it finishes on day 4. But C cannot start until day 16, after B is done.
D therefore has 11 days of free float. It can slip up to 11 days and C still starts on day 16. Because the A-B-C path is critical and D only feeds into it at C, D's total float is also 11 days.
Now add an activity E after D, for example "Energise boards", 3 days, which must also finish before C. D's free float drops to zero, because any slip in D immediately delays E. But D still has total float, because the D-E chain has slack before it hits C. That is the key distinction: D can slip without hurting the project, but not without hurting E.
Why the difference matters on site
Total float is shared. On a chain of activities, the total float figure usually belongs to the whole chain, not to any one activity. If the first activity uses it all, every activity after it becomes critical. This is why "it has float" is a dangerous statement when you are talking about the first activity in a long chain.
Free float belongs to the activity. If a subcontractor asks whether they can start a week later, free float is the honest answer to the question "will that affect anybody else?"
Negative total float means you are already late. If a milestone constraint sits earlier than the logic allows, the backward pass produces negative float. That is not a calculation error. It tells you that, as the programme stands, you will miss that date by that amount.
What can distort float
Float values are only as good as the schedule behind them. A few common things give misleading numbers:
Open ends. An activity with no successor will show large total float because nothing downstream constrains it. That float is not real. It is a logic gap.
Hard constraints. Mandatory start or finish constraints override logic and can create float or remove it artificially.
Calendars. Float is calculated in working time on the activity's calendar. An activity on a 5-day calendar and one on a 7-day calendar can show different float for the same calendar-day gap. Mixing calendars across a chain is a common source of confusion.
Lags. Long lags hide work. A 20-day lag between two activities might represent curing, approvals or procurement. If it really is work or waiting time, it should usually be an activity, so its float is visible.
Settings. In P6, the total float calculation can be set to use start float, finish float, or the smallest of the two. Most people never change the default, but if two schedules show different float for the same logic, check the scheduling options.
How I use float in practice
When I review a schedule, float is one of the first things I look at, but mostly as a diagnostic:
- Sort by total float. Very high float on many activities usually means missing logic. Activities with float measured in hundreds of days need an explanation.
- Look at the near-critical paths. Anything within a week or two of critical deserves as much attention as the critical path itself, because it can become critical with one bad week.
- Check free float before agreeing a change. If a trade wants to resequence, the free float tells me whether the change stays local or ripples through.
- Watch float erosion over time. Comparing total float at each update shows which paths are degrading. A path losing three days of float a month is a problem you can see coming.
Who owns the float?
This is a contract question, not a scheduling one, and the answer depends on the contract you are working under. Some contracts say float belongs to the project, some say it belongs to the contractor, and some are silent. I am not going to give legal advice here, but it is worth knowing what your contract says before you start relying on float in a programme submission, because it affects how delays are assessed.
Summary
- Total float protects the project end date. Free float protects the next activity.
- Total float is usually shared along a chain, so the first activity to use it takes it from everyone else.
- Float numbers are only reliable if the logic is complete and constraints are kept to a minimum.
- Use float as a diagnostic as much as a planning tool.
If you want more practical scheduling notes like this, the weekly newsletter covers one topic each issue, written from the planning side of real projects.
One practical scheduling lesson every week, from 25 years planning big, complex builds. Join Critical Path Notes Weekly.