Resources For Teachers For Tutors For Students & Parents Pricing
Year 12 Maths Standard 2 (2027) Critical path analysis

Forward & Backward Scanning (EST & LST)

20 practice questions 0 video lessons Theory + worked examples

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.

Create a free accountTrack your progress and save your work as you go.
Create free account

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.

Fully scanned activity networkFive-event network with EST (green, lower-left) and LST (red, lower-right) in each circle. A 4 B 6 C 5 D 2 E 3 1 0 0 2 4 4 3 6 7 4 9 9 5 12 12
A fully scanned network: green \(\text{EST}\) from the forward scan, red \(\text{LST}\) from the backward scan.
Forward scan part way throughForward scan begun: EST filled at events 1, 2 and 3; events 4 and 5 still marked with a question mark. A 4 B 6 C 5 D 2 E 3 1 0 2 4 3 6 4 ? 5 ?
A forward scan part way through β€” EST filled at events \(1,2,3\); events \(4,5\) still to do.

Forward scan (EST). Start at the first event with \(\text{EST}=0\), then at each event take the maximum over the incoming activities:

\[\text{EST} = \max\big(\text{EST of tail} + \text{duration}\big)\]
EST=max(EST+duration)

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:

\[\text{LST} = \min\big(\text{LST of head} - \text{duration}\big)\]
LST=min(LST-duration)
Why max, then min. An event cannot start until every activity feeding into it has finished, so the forward scan keeps the largest running total. On the way back, an event must not delay any activity leaving it, so the backward scan keeps the smallest value.

How to scan an activity network

  1. Forward scan. Write \(\text{EST}=0\) in the lower-left of the starting event.
  2. 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.
  3. Seed the end. Copy the final event's EST into its LST: \(\text{LST(final)}=\text{EST(final)}\).
  4. 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\)).
Example 1 β€” Forward scan (EST)
A car service is modelled by the network below (durations in minutes); event \(1\) has \(\text{EST}=0\). Complete the forward scan for events \(2\)–\(5\).
Solution

Work left to right, adding durations and taking the maximum at the join.

Example 1 car-service network, forward scanEST filled by the forward scan: 0, 8, 5, 14, 18 at events 1 to 5. A 8 B 5 C 6 D 7 E 4 1 0 2 8 3 5 4 14 5 18
\(\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\).

Example 2 β€” Backward scan (LST)
For the same car-service network, the forward scan gave EST values \(0,8,5,14,18\). Carry out the backward scan to find each LST (minutes).
Solution

Seed the end, then work right to left, subtracting durations (minimum at a split).

Example 2 car-service network, both scansEST (green) and LST (red) filled: LST 0, 8, 7, 14, 18 at events 1 to 5. A 8 B 5 C 6 D 7 E 4 1 0 0 2 8 8 3 5 7 4 14 14 5 18 18
\(\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\).

Example 3 β€” Two activities into the final event
A garden makeover is modelled below (durations in days). Complete both scans and state the EST and LST of the final event \(6\).
Solution

Forward scan uses the maximum where the two activities meet at event \(6\).

Example 3 garden-makeover network, both scansFully scanned; final event 6 has EST = LST = 16 days. A 5 B 3 C 4 D 6 E 2 F 7 1 0 0 2 5 10 3 3 3 4 9 14 5 9 9 6 16 16
\(\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.

Example 4 β€” Two activities out of one event
Setting up a pop-up restaurant is modelled below (durations in hours). Event \(2\) has two activities leaving it. Complete both scans and find the LST of event \(2\).
Solution

Event \(2\) is a split, so the backward scan uses the minimum.

Example 4 pop-up restaurant network, both scansFully scanned; event 2 LST = min(3, 4) = 3 hours. A 3 B 4 C 6 D 5 E 2 1 0 0 2 3 3 3 7 7 4 9 10 5 12 12
\(\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

Forward scan takes the maximum. Where two or more activities meet at an event, use the largest \((\text{tail EST}+\text{duration})\), not the smallest and not the sum β€” the event waits for the last one.
Backward scan takes the minimum. Where activities split from an event, use the smallest \((\text{head LST}-\text{duration})\); the largest would push an outgoing activity past its deadline.
Seed the end correctly. Start the backward scan with \(\text{LST(final)}=\text{EST(final)}\); do not restart at \(0\) or the LST values will be wrong.

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.