The backward pass computes the latest each activity can start and finish without moving the project duration. It works backward from the terminal finish, turning the forward-pass duration into activity-level schedule windows.

highlighted = computed this step

Finish window

Activity F latest start is 9 and latest finish is 11. Why: the terminal activity anchors the backward pass at project duration. Interpretation: latest times ask how late work can happen without moving that duration.

LSF=9LFF=11LS_F=9\quad LF_F=11
backward pass tabletaskdurESEFLSLFslackA202020B325361C426260D257792E369690F29119110

Predecessor E window

Activity E latest start is 6 and latest finish is 9. Why: E must finish before F's latest start. Because E feeds the terminal activity, its window is tight in this example.

LSE=6LFE=9LS_E=6\quad LF_E=9
backward pass tabletaskdurESEFLSLFslackA202020B325361C426260D257792E369690F29119110

Branch B window

Activity B latest start is 3 and latest finish is 6. Why: the backward pass uses the tightest successor window. Interpretation: B has some room, but only until a successor would be delayed.

LSB=3LFB=6LS_B=3\quad LF_B=6
backward pass tabletaskdurESEFLSLFslackA202020B325361C426260D257792E369690F29119110

Diagram note

Latest starts and finishes are exact values from the reverse pass through the DAG. They are schedule windows inside the model, not negotiated due dates. Pixel positions are rounded for layout; every number shown is exact.

backward pass values are exact\text{backward pass values are exact}
backward pass tabletaskdurESEFLSLFslackA202020B325361C426260D257792E369690F29119110