Forward & Backward Scanning (EST & LST)
Master forward and backward scanning for NSW Year 12 Mathematics Standard 2. You will run the forward scan through an activity network to find every event's earliest start time (EST), using the maximum of (tail EST + duration) wherever activities meet.
Then you will run the backward scan to find each latest start time (LST), seeded by \(\text{LST(final)}=\text{EST(final)}\) and using the minimum of (head LST - duration) wherever activities split β a core critical path analysis skill for scheduling building projects, event set-ups and product launches.
Theory
Forward and backward scanning are the two passes over an activity network. This Year 12 Standard 2 (NSW) guide shows how the forward scan finds each event's earliest start time (EST) with the maximum rule, and the backward scan finds each latest start time (LST) with the minimum rule β seeded by \(\text{LST(final)}=\text{EST(final)}\).
In an activity network, numbered circles are events (moments in the project) and the arrows between them are activities, each labelled with a name and a duration. Forward and backward scanning are the two passes that fill in the timing of every event.
The forward scan works from left to right and finds each event's earliest start time (EST) β the soonest that event can happen. The backward scan works from right to left and finds each event's latest start time (LST) β the latest it can happen without delaying the whole project.
This Year 12 Standard 2 (NSW) topic shows each event circle split into three cells: the event number on top, the EST (lower-left, green) and the LST (lower-right, red). Forward scanning uses a maximum where activities meet; backward scanning uses a minimum where they split.
Forward scan (EST). Start at the first event with \(\text{EST}=0\), then at each event take the maximum over the incoming activities:
Backward scan (LST). Seed the final event with \(\text{LST(final)}=\text{EST(final)}\), then at each event take the minimum over the outgoing activities:
How to scan an activity network
- Forward scan. Write \(\text{EST}=0\) in the lower-left of the starting event.
- Work left to right. For each event, \(\text{EST}=\max(\text{tail EST}+\text{duration})\) over the incoming activities; at an event with one activity in, just add.
- Seed the end. Copy the final event's EST into its LST: \(\text{LST(final)}=\text{EST(final)}\).
- Work right to left. For each event, \(\text{LST}=\min(\text{head LST}-\text{duration})\) over the outgoing activities, back to the starting event (which should return to \(0\)).
Work left to right, adding durations and taking the maximum at the join.
| \(\text{EST}(2)\) | \(=\) | \(0+8 = 8\) |
| \(\text{EST}(3)\) | \(=\) | \(0+5 = 5\) |
| \(\text{EST}(4)\) | \(=\) | \(\max(8+6,\ 5+7) = 14\) |
| \(\text{EST}(5)\) | \(=\) | \(14+4 = 18\) |
EST \(=8,5,14,18\) minutes at events \(2,3,4,5\).
Seed the end, then work right to left, subtracting durations (minimum at a split).
| \(\text{LST}(5)\) | \(=\) | \(\text{EST}(5) = 18\) |
| \(\text{LST}(4)\) | \(=\) | \(18-4 = 14\) |
| \(\text{LST}(3)\) | \(=\) | \(14-7 = 7\) |
| \(\text{LST}(2)\) | \(=\) | \(14-6 = 8\) |
| \(\text{LST}(1)\) | \(=\) | \(\min(0,\ 2) = 0\) |
LST \(=0,8,7,14,18\) minutes at events \(1\)β\(5\).
Forward scan uses the maximum where the two activities meet at event \(6\).
| \(\text{EST}(4)\) | \(=\) | \(5+4 = 9\) |
| \(\text{EST}(5)\) | \(=\) | \(3+6 = 9\) |
| \(\text{EST}(6)\) | \(=\) | \(\max(11,\ 16) = 16\) |
| \(\text{LST}(6)\) | \(=\) | \(\text{EST}(6) = 16\) |
The final event has \(\text{EST}=\text{LST}=16\) days.
Event \(2\) is a split, so the backward scan uses the minimum.
| \(\text{EST}(5)\) | \(=\) | \(\max(7+5,\ 9+2) = 12\) |
| \(\text{LST}(3)\) | \(=\) | \(12-5 = 7\) |
| \(\text{LST}(4)\) | \(=\) | \(12-2 = 10\) |
| \(\text{LST}(2)\) | \(=\) | \(\min(7-4,\ 10-6) = 3\) |
The LST of event \(2\) is \(3\) hours.
Common pitfalls
Frequently asked questions
What is the difference between EST and LST?
The earliest start time (EST) of an event is the soonest it can happen once every activity leading into it has finished. The latest start time (LST) is the latest it can happen without delaying the whole project. The forward scan finds every EST; the backward scan finds every LST.
How do you do a forward scan in critical path analysis?
Start at the first event with an EST of 0. Working left to right, the EST of each event is the maximum of (EST of the tail event + activity duration) over all the activities leading into it. Where only one activity leads in, you just add its duration to the tail event's EST.
Why does the forward scan use the maximum but the backward scan use the minimum?
An event cannot start until every activity feeding into it has finished, so the forward scan keeps the largest running total. Going back, an event must not delay any activity leaving it, so the backward scan keeps the smallest value. Max on the way forward, min on the way back.
Where does the backward scan start?
It starts at the final event, and you seed it by copying that event's EST into its LST, so LST(final) = EST(final). Then you work right to left: the LST of each event is the minimum of (LST of the head event - activity duration) over the activities leaving it.
What do the numbers inside each event circle mean?
Each event circle is split into three cells: the event number is at the top, the EST is in the lower-left (shown in green) and the LST is in the lower-right (shown in red). Reading EST and LST straight off the circle is the whole point of the two scans.
Should the forward and backward scans agree at the starting event?
Yes. After a correct backward scan the starting event's LST should come back to 0, matching its EST. If it does not, there is an arithmetic slip somewhere in one of the scans.