D1 4.4 - Total float and Gantt charts

D1 4.4 - Total float and Gantt charts

Calculate total float and display activity timings in a Gantt, or cascade, chart. You will distinguish a flexibility window from a chosen schedule and check how delaying one activity affects its successors.

Float is permitted delay, not additional work

In the project from the preceding lesson, EE and GG each have total float 22 hours. Does that give their chain 44 hours of spare time? No: delaying EE by 22 hours uses the room that GG also appeared to have. We will calculate the remaining flexibility rather than spending it twice.

You already know

Forward and backward passes give early event times EiE_i and late event times LiL_i. For an activity i→ji\to j of duration dd, ES is EiE_i, EF is Ei+dE_i+d, LF is LjL_j and LS is Lj−dL_j-d. A critical activity has ES equal to LS.

Use the original project, with one worker needed for each real activity throughout its duration. Its timing data are:

ActivityDurationESEFLSLF
AA4400440044
BB3300333366
CC5544994499
DD2244667799
EE444488661010
FF33991212991212
GG2288101010101212
HH11445511111212

All times are hours from the project start. The project takes 1212 hours; its critical path is A−C−FA-C-F. Activity GG follows EE, while FF follows both C,DC,D.

Total float

The total float of an activity is the amount by which its start can be delayed from its earliest start without delaying project completion, provided the remaining activities are timed consistently with their dependencies.

It is not the duration of the activity, nor a promise that every activity can independently use its full float at once.

A Gantt chart displays a real duration bar and a float extension. Only the duration bar represents work. The extension shows where the bar could move; it is not another task occupying a worker.

Key idea

Float belongs to the timing constraints of the network. A gap visible in one particular worker schedule need not equal an activity's total float.

Check what a float extension means.

Subtract the earliest finish from the latest finish

The latest finish minus the earliest finish measures the activity's available delay. Using LS minus ES gives the same result, since both finishes differ from their starts by the same duration.

Total float

For activity i→ji\to j of duration dd,

TF=Lj−Ei−d=LF−EF=LS−ES\mathrm{TF}=L_j-E_i-d =\mathrm{LF}-\mathrm{EF} =\mathrm{LS}-\mathrm{ES}

For a minimum-time project with consistent data, total float is non-negative. Critical activities have total float 00.

Not in the formula booklet: learn it.

Use the head event's late time and tail event's early time. Mixing two early times can give a different kind of gap and miss some flexibility.

Worked example 1: an activity with an unfixed head event

Question. Calculate the total float of B:1→3B:1\to3, duration 33, where E1=0, E3=4, L3=6E_1=0,\ E_3=4,\ L_3=6.

Plan. Use the late head time, then check with the activity's two start times.

TFB=6−0−3=3L3−E1−dLS−ES=3−0=3independent timing form\begin{aligned} \mathrm{TF}_B&=6-0-3=3 && L_3-E_1-d\\ \mathrm{LS}-\mathrm{ES}&=3-0=3 && \text{independent timing form} \end{aligned}

Why this step? Using E3=4E_3=4 would produce 11, just the early-event gap after BB. Total float must use L3=6L_3=6.

Answer. BB has total float 33 hours.

Check. It can start at hour 33 and finish at hour 66, its latest finish, with downstream activities adjusted consistently.

Change only the activity being examined, to E:3→5E:3\to5.

Worked example 2: another branch

Question. Find the total float of EE, duration 44, where E3=4, L5=10E_3=4,\ L_5=10.

Plan. Subtract its earliest start and duration from the late head time.

TFE=10−4−4=2event-time formulaLS−ES=6−4=2activity-time check\begin{aligned} \mathrm{TF}_E&=10-4-4=2 && \text{event-time formula}\\ \mathrm{LS}-\mathrm{ES}&=6-4=2 && \text{activity-time check} \end{aligned}

Why this step? The tail's late event time is 66, but subtracting that instead of its early time would incorrectly remove the available start flexibility.

Answer. Total float 22 hours.

Check. Starting at hour 66 gives finish 1010, still allowing GG's two hours before the project finish at 1212.

Applying the same formula gives total floats 0,3,0,3,2,0,2,70,3,0,3,2,0,2,7 for A,B,C,D,E,F,G,HA,B,C,D,E,F,G,H, respectively. The calculation uses the network, even if a displayed schedule happens to start a task later than ES.

Watch out

Wrong: call a one-hour wait in a chosen schedule the activity's total float. Right: use Lj−Ei−dL_j-E_i-d, then explain how the schedule uses part of that available allowance.

Use the successor from worked example 2.

Draw duration bars and float extensions on one time axis

In a Gantt, or cascade, chart, place a real duration bar from ES to EF. Extend that row from EF to LF with a clearly different shading or hatching to represent total float. The row's full width is duration plus float; its duration bar may be shifted within the window if the resulting schedule remains feasible.

Group the critical activities at the top. They may form a single consecutive row when they lie on the same critical path; otherwise separate labelled critical rows are clear. Put each non-critical activity on its own row and include every real activity exactly once. Do not add a worker row for a dummy.

This chart convention and its construction method are not in the formula booklet.

[DIAGRAM: asset_name: Gantt chart for the original project; asset_slug: 9fm0-d1174-original-gantt; caption: Duration bars represent work and hatched extensions represent total float; description: A common time axis from 0 to 12 hours has critical activities A from 0 to 4, C from 4 to 9 and F from 9 to 12 along the top row. The separate non-critical rows show B duration 0 to 3 and float 3 to 6; D duration 4 to 6 and float 6 to 9; E duration 4 to 8 and float 8 to 10; G duration 8 to 10 and float 10 to 12; H duration 4 to 5 and float 5 to 12. Real bars have clear outlines and activity labels in ink; float sections are hatched. A key is outside the chart.]
Duration bars represent work and hatched extensions represent total float

Worked example 3: construct the full cascade chart

Question. Draw the Gantt chart for the original timing table.

Plan. Put the critical chain at the top, then draw each non-critical duration and its separate float extension.

RowReal duration intervalFloat extension
Critical chainA:[0,4], C:[4,9], F:[9,12]A:[0,4],\ C:[4,9],\ F:[9,12]None
BB[0,3][0,3][3,6][3,6]
DD[4,6][4,6][6,9][6,9]
EE[4,8][4,8][8,10][8,10]
GG[8,10][8,10][10,12][10,12]
HH[4,5][4,5][5,12][5,12]

Why this step? Draw each activity's earliest bar and its flexibility window, rather than assigning activities to a small number of workers. A worker allocation is a different diagram.

Answer. The pictured Gantt chart, with all eight real activities appearing once.

Check. Each real bar's width is its duration; each extension's width agrees with the calculated total float. The critical row runs continuously from 00 to 1212.

Continue this lesson.

You’re previewing NovaLearn without an account. Create a free account to read the rest.

Create free account