Glossary
Buffer
Float, slack, total float, free float, schedule buffer
A buffer is the time by which an activity can move or take longer without putting another date at risk. If an activity has 3 days of total float, it can finish 3 days late without delaying the project end. Total float protects the project end, free float protects the early start of the successor.
In everyday project work, "buffer" means three different things. Mixing them up means planning with a reserve that does not exist.
What types of buffer are there?
| Type | Source | Meaning |
|---|---|---|
| Float or slack (total, free) | results from the network diagram | room the schedule logic leaves an activity |
| Lead or lag on a dependency | you enter it | fixed waiting time or overlap between two activities |
| Schedule buffer (project buffer) | you plan it on purpose | reserve for risks, usually before the deadline |
Float comes from the forward and backward pass of the critical path method. Activities with zero total float form the critical path. The entry float or slack explains the network calculation step by step.
What is the difference between total float and free float?
- Total float (TF): how long an activity can slip without moving the project end. TF = LS − ES, latest start minus earliest start.
- Free float (FF): how long an activity can slip without moving the early start of any successor. FF = ES of the successor − EF of the activity. With several successors, the smallest value applies.1
Free float is never larger than total float. If an activity has no successor, both are equal.
Example: a flyer for a trade fair
A flyer takes four activities. Layout (A) and copy (B) start at the same time, proofreading (C) follows the copy, printing (D) needs the layout and the proofread copy. Durations in working days, the calculation starts at day 0:
| Activity | Duration | Predecessor | ES | EF | LS | LF | TF | FF |
|---|---|---|---|---|---|---|---|---|
| A Design layout | 6 | none | 0 | 6 | 0 | 6 | 0 | 0 |
| B Write copy | 2 | none | 0 | 2 | 3 | 5 | 3 | 0 |
| C Proofread copy | 1 | B | 2 | 3 | 5 | 6 | 3 | 3 |
| D Print | 2 | A, C | 6 | 8 | 6 | 8 | 0 | 0 |
Printing starts on day 6 because it waits for the layout. B and C each show 3 days of total float, but they are the same 3 days. If the copy (B) slips by 2 days, proofreading (C) starts 2 days later; the project still ends on day 8, but C has only 1 day of float left. Total float belongs to the path B, C, not to each activity. The free float of C belongs to C alone: proofreading can finish 3 days late without touching any other activity.
What is lead and lag on a dependency?
Between two linked activities you can set a fixed time span. A positive value (lag) creates waiting time, for drying or delivery. A negative value (lead) creates an overlap, as in fast tracking. Lag is not a reserve: it lengthens the path. In the example, a lag of 1 day between C and D for management approval reduces the free float of C from 3 to 2 days. The entry dependency types covers the link types.
How do you plan a schedule buffer?
On the critical path, float is zero. To cover estimating errors and risks there, you need a reserve of your own, such as an activity "project buffer" before the final milestone. Critical chain project management, developed by Eliyahu M. Goldratt, pools such reserves in a project buffer at the end and in feeding buffers where side paths join the critical chain.2 Derive the size of the reserve from a PERT estimate with standard deviation or from a Monte Carlo simulation.
Common mistakes with buffers
- Counting float twice: in the example, B and C do not have 6 days of room together, only 3.
- Using float early: if you use up the total float of a side path in week one, it turns critical and leaves no room later.
- Reading lag as a reserve: a lag of 2 days is planned duration, not a cushion.
How does Merlin Project show buffers?
Merlin Project keeps both kinds apart in its interface:
Lead/Lag on a dependency: click the dependency arrow in the Gantt chart and enter the duration in the Lead/Lag field in the Inspector. Alternatively, edit the Lead/Lag column on the activity's Dependencies tab. With units such as hours or days, Merlin Project takes the predecessor's work calendar into account; with ehours or edays, it counts elapsed time. Negative values create an overlap. (The German interface calls this field "Puffer", which is why German guides use "Puffer" for lead and lag.)
Calculated slack: Merlin Project stores the results of the network calculation in four attributes:
- Expected Start Slack: difference between the earliest and the latest start date.
- Expected End Slack: difference between the earliest and the latest end date.
- Expected Free Slack: you can move the activity without delaying the activities that follow. Without successors, it equals total slack.
- Expected Total Slack: the smaller value of start slack and end slack; you can move the activity without delaying the project end.
Show the columns Expected Free Slack and Expected Total Slack in the Work Breakdown view. The PERT display of the Net Plan also shows slack on each card. Resource leveling uses slack too: with the option Within slack only on the Utilization tab of the Project Settings, Merlin Project delays activities only within their slack, and the project end does not move. The Net Plan, the Dependencies tab and resource leveling are part of Merlin Project, not Merlin Project Express.