Library Further Decision Mathematics 1 WDM11 Critical Path Analysis
AS Level · Further Decision Mathematics 1 WDM11

Critical Path Analysis

Revise Critical Path Analysis for Further Decision Mathematics 1 WDM11 (AS Level) — revision notes and instant AI marking. Free to start.

📖 Revision notes · preview
Edexcel A Level Further Maths · Decision 1

Critical Path Analysis

The big idea: every project is a network of jobs that depend on each other — CPA is just a systematic way of figuring out the fastest possible finish time, which jobs you absolutely cannot delay, and how to use your workers as efficiently as possible.

Summary — the whole chapter in one scroll

  • Activity networks turn a list of jobs (a precedence table) into a directed graph: nodes = events ("stepping stones"), arrows = activities with a duration.
  • Dummy activities (dotted, zero-duration, no letter) exist purely to fix the logic of the diagram — either giving an activity a unique start/end pair, or showing a "split" in what depends on what.
  • Forward pass through the network gives earliest event times — the fastest a project can reach each stepping stone. The final one is the minimum project duration.
  • Backward pass gives latest event times — the latest you can leave each stepping stone without delaying the whole project.
  • Total float = wiggle room an activity has. Zero float = critical activity. The chain of critical activities from start to finish = critical path.
  • Gantt (cascade) charts turn all this into a visual timeline — critical activities stacked back-to-back on one row, non-critical ones shown with a dotted "float" tail.
  • Resource histograms stack up how many workers are needed on each day, built from a Gantt chart.
  • Resource levelling = shifting non-critical activities within their float to smooth out (minimise) the number of workers needed on the busiest days.
  • Scheduling = the reverse problem — given the workers, how do you assign them to activities (one worker, one job at a time) to hit either the minimum project time, or fit inside a worker limit?

1. Activity Networks & Precedence Tables

What is an activity network?

Imagine you're building a house. You can't put up the walls before the foundations are laid, but you can fit the windows and doors at the same time as each other. An activity network is a graph that captures exactly this kind of "what must happen before what" logic for an entire project.

It has two parts:

  • Arcs (the arrows) represent the activities — the actual jobs. Each arc is labelled with a capital letter (A, B, C...) and its duration in brackets, e.g. D (6) means "activity D takes 6 days".
  • Nodes (the circles) represent events — think of them as "stepping stones". You cannot move past a stepping stone until every activity leading into it has finished.

Because activities can only flow one way (you can't un-lay foundations), this is technically a directed graph — every arc has an arrowhead showing the direction of progress, generally left to right.

The very first event (before anything has happened) is the source node, labelled 0 or S. The very last event (once everything is done) is the sink node — the highest-numbered node, or labelled T.

START 2 (0)──A(4)──►(1)──B(5)──►(2)──D(6)──►(4)──F(6)──►(5) END │ ▲ └────C(3)──►(3)──E(4)───┘

Event 4 can't be reached until both D and E are finished — that's the "stepping stone" rule in action.

What is a precedence table?

A precedence table is the "ingredients list" version of the network. For every activity, it states which activities must have already finished before this one can start. Crucially, it only lists the immediately preceding activities — not every single activity that came before in the whole chain.

  • An activity with no preceding activities is marked with a dash '–' — it can start right at the source node, on day 0.
  • A precedence table might also give the duration of each activity and the number of workers it needs.
Building the network from a table — the method 1. Start at the source node. Add an arc for each activity with no predecessor.
2. For every other activity, find the event where all of its immediate predecessors finish, and draw the new arc from there.
3. Every activity must have a unique start/end node pair.
4. Any activity that nothing else depends on flows into the sink node.
Worked logic Precedence table: A(–), B(–), C(A), D(B), E(A,D), F(B). Notice F depends only on B — but E depends on both A and D. That means the arcs for A and D must physically meet at the same event before E can begin. This "meeting" requirement is exactly what drives the shape of the network — and often forces you to use a dummy (see next section!).
Practice Question 1

A precedence table has: A(–), B(–), C(A), D(A). Explain why activities C and D cannot both be drawn as separate arcs starting and ending at the same pair of nodes.

Practice Question 2

Construct a precedence table from this description: Activity A has no predecessors and takes 3 days. Activity B has no predecessors and takes 5 days. Activity C needs A finished first and takes 2 days. Activity D needs both B and C finished first and takes 4 days.

2. Dummy Activities

A dummy activity is a "fake" activity with a weight of zero — it takes no time and isn't given a letter. On the diagram it's drawn as a dotted arrow. Its whole job is to fix logic problems in the network that can't be fixed any other way. There are exactly two situations where you need one.

Situation 1: Two activities would share the same start/end pair

Suppose both B and C depend on A, and D depends on both B and C. If you just draw B and C as two separate arcs from the same start node to the same end node, they'd have an identical node pair — not allowed! A dummy activity splits them apart: B gets its own end node, and a dotted dummy connects that node to where C ends, preserving the "D depends on both" logic without giving B and C the same pair.

Situation 2: A "split" in predecessors

Suppose D depends on both B and C, but E depends on only B. If B and C both flow into one event, E would incorrectly appear to depend on C too. A dummy lets you draw B leading to its own event (where E can branch off, unaffected by C), while a dotted dummy carries B's "completion signal" onward to join C at the event where D starts.

Two dummy triggers, memorised simply Trigger 1 — "Same pair": two arcs would otherwise start and end at identical nodes.
Trigger 2 — "Split": one activity depends on a set of predecessors, but another activity only depends on part of that same set.
Golden rule A good activity network uses the minimum possible number of dummies. Exam questions often tell you exactly how many to use — if your diagram needs more, go back and see if you've missed a smarter way to draw it.
Practice Question

Activity G depends on C and F. Activity H depends only on F. Explain, in your own words, why this forces the use of a dummy activity, and describe (without drawing) how it would be used.

3. Critical Path Analysis: Earliest, Latest, Float & the Critical Path

What is CPA actually finding?

Critical Path Analysis uses the completed activity network to answer three big questions about a project:

  1. What's the minimum possible duration of the whole project?
  2. Which activities are critical — meaning they must start and finish exactly on time, with zero room to slip, or the whole project gets delayed?
  3. For every other activity, how much can it be delayed (its total float) without affecting the finish date?

Each node on a fully-worked network ends up with two boxes: the top one is the early event time, the bottom one is the late event time.

Earliest event times — the "forward pass"

Think of the early event time as: "what's the earliest moment this stepping stone can possibly be reached?" Start at the source node with time 0. Then work forward through the network. For every event, look at every arc leading into it — for each one, take (early time at its start node) + (its duration). The early event time of the new node is the maximum of all these — because you can't move on until every incoming activity has finished, including the slowest one.

Forward pass formula Early event time = MAXIMUM over all arcs (i, this node) of: [Early event time at i] + [duration of that activity]
The #1 forward-pass mistake Students forget to check every arc arriving at a node — especially dummy arcs, which are easy to miss because they're dotted and unlabelled. A dummy still has a duration of 0, but it still counts as a real arc that must be checked when taking the maximum!

Latest event times — the "backward pass"

Now flip the logic. The late event time asks: "what's the latest moment I can leave this stepping stone and still finish the whole project on time?" Start at the sink node — its late time equals its early time (this is the minimum project duration). Then work backwards. For every event, look at every arc leaving it — for each one, take (late time at its end node) − (its duration). The late event time of this node is the minimum of all these results, because the earliest deadline among all the activities leaving this node is the one that actually constrains you.

Backward pass formula Late event time = MINIMUM over all arcs (this node, j) of: [Late event time at j] − [duration of that activity]
Memory trick Forward pass: ADD going forward, take the MAX (because you must wait for everyone).
Backward pass: SUBTRACT going backward, take the MIN (because the tightest deadline wins).

Total float — how much slack does an activity have?

The total float of an activity is how much its start can be delayed without pushing back the whole project. It compares the "room available" (from the late time at its end down to the early time at its start) against the time the activity actually needs.

Total float formula Total float of activity = (Late event time at END node) − (Early event time at START node) − (Activity duration)

Formally you might see this written as F(i,j) = lj − ei − duration(i,j), where ei is the early time of event i and lj is the late time of event j. Don't let the notation scare you — it's the exact same formula above, just in symbols.

Careful — "total" means one number, one activity Don't overthink the word "total" — it doesn't mean you add up floats across activities. The total float is a single number that belongs to a single activity.

Critical activities & the critical path

A critical activity is simply one whose total float is zero — there's no room to delay it at all. A critical event is a node where the early time equals the late time.

Here's a subtlety worth remembering: if an activity is critical, its start and end events must both be critical events. But the reverse isn't automatically true — you can have a non-critical activity sitting between two critical events! So always double-check float = 0, don't just eyeball matching top/bottom numbers.

The critical path is the unbroken chain of critical activities running from the source node all the way to the sink node. There can sometimes be more than one critical path through a network.

How to write your answer Critical path (a route): written as a sequence, e.g. A – C – G – I, or using node numbers, e.g. 0 – 2 – 4 – 5 – 8.
Critical activities (a list): written with commas, e.g. A, C, G, I.
These look similar but examiners want them presented in these different formats!
Practice Question 1 — Forward & backward pass

An activity X starts at a node with early time 5 and has duration 7. Its end node currently shows a provisional early time of 10 from another incoming arc. What should the early time at the end node actually be, and why?

Practice Question 2 — Float

Activity Y runs from a node with early time 4 to a node with late time 19, and Y has duration 6. Find the total float of Y, and state whether Y is critical.

4. Gantt (Cascade) Charts

A Gantt chart (also called a cascade chart) turns all your early/late time and float calculations into a single visual timeline. It's essentially the "picture" version of everything you worked out in the previous section.

How to draw one

  • Draw a horizontal time axis along the top.
  • Every activity is assumed to start at its earliest event time, and runs as a single unbroken block (no pausing halfway through!).
  • Critical activities all sit on one shared row, drawn back-to-back with zero gaps — because they have zero float, there's no slack between them.
  • Non-critical activities each get their own row: a solid bar showing the activity itself, followed immediately by a dotted bar showing its total float — the "room to slide".
  • Bars are labelled with the activity letter and duration. Floats themselves aren't separately labelled.
0 5 10 15 20 25 ├────┼────┼────┼────┼────┤ [ A(5) ][ C(7) ][ G(6) ][I(5)] ← critical row (no gaps!) [B(4)][- - - - float - -] [D(3)][- float -] [E(7)][float] [F(6)][- - float - -] [H(4)][fl] [J(4)][fl]
Think of the dotted bar as "wiggle room" Picture the solid bar as a block that can physically slide left and right within its box (solid + dotted combined). It must start no earlier than its early time, and finish no later than its late time — the dotted section shows exactly how far it's allowed to slide.
Practice Question

An activity has early event time 7, duration 4, and total float 3. Describe exactly how its bar would be drawn on a Gantt chart.

5. Resource Histograms

A resource histogram shows, day by day, exactly how many workers (or machines, or any "resource") are needed to run the project. It's built directly from a Gantt chart, and it's the tool that reveals whether your project has an unmanageable spike in staffing needs on a particular day.

Three starting assumptions

  1. Every activity begins at its earliest event time.
  2. A worker can only do one activity at a time.
  3. Once an activity starts, it must run straight through to completion — no stopping and resuming later.

How to draw one

  • Horizontal axis = time (treated as discrete days — day 1 is labelled under the first column).
  • Vertical axis = number of workers.
  • For each day, stack a box per worker, labelled with the activity they're on.
  • Stack critical activities at the bottom, then other activities in alphabetical order above them.
Why this matters Once drawn, a spike (e.g. "7 workers needed on days 6 and 7, but only 6 on every other day") jumps straight out at you visually — and this is exactly the problem that resource levelling (next section) is designed to fix.
Practice Question

Activity A (2 workers) runs days 0–5. Activity B (1 worker) runs days 0–4, with float allowing it to slide to 1–5. Activity C (3 workers) runs days 5–12. How many workers total are needed on day 5?

6. Resource Levelling

Most projects have "busy" days needing lots of workers and "quiet" days needing few. Resource levelling is the process of shifting the start times of non-critical activities (using their float) to smooth this out — spreading workers more evenly, or keeping the maximum workers per day under some limit.

Two flavours of problem

  • Type 1: Minimise the number of workers needed at any point, while keeping the critical time completely unchanged. Critical activities cannot move — only non-critical ones, and only within their float.
  • Type 2: There's a hard limit on workers available. If needed, even critical activities can be delayed — but the goal is to delay the project's finish time by as little as possible.
Method for Type 1 (critical time fixed) 1. Find the day(s) with the highest worker count.
2. Find a non-critical activity active that day whose start can be delayed (using its float) without pushing its end past its late event time.
3. Delay it — check for "knock-on" effects on any activities that depend on it (they may also need delaying, again within their own float).
4. Repeat until the peak is reduced as far as possible.
If the critical time is allowed to change Try non-critical activities first — use their float as efficiently as possible. Only delay a critical activity if you truly have no other option, and remember: delaying a critical activity changes the minimum project duration itself, which means the critical path (and which activities count as critical) can change too!

Lower bound for the number of workers

If every activity only needs one worker (or one team), you can calculate the theoretical minimum number of workers needed to finish in the minimum project duration — it's the smallest whole number that's big enough to cover all the work if it were spread perfectly evenly.

Lower bound formula Lower bound ≥ (Total time of all activities) ÷ (Minimum project duration)
→ round UP to the next whole number. Note: it's not always possible to actually achieve this bound in practice!
Practice Question

Total activity time across a project = 51 days. Minimum project duration = 23 days. Find the lower bound for the number of workers.

7. Scheduling Activities

Scheduling is the flip side of resource levelling: instead of asking "how many workers do I roughly need?", you're actually assigning named workers to specific activities, one at a time, and checking whether the plan actually works out.

The rules of the game

  • Each activity needs exactly one worker (or one team, treated as one resource).
  • An activity gets assigned the first available worker.
  • If a worker has a choice of activities to start, they should pick the one with the lower late end time — i.e. the more urgent one.
  • A worker can only be on one activity at a time, and once started, an activity must run to completion.

Type 1: Minimum workers, no delay allowed

Since the critical time can't change, all critical activities go to one worker, back-to-back (this mirrors the critical row on the Gantt chart). Then, for every non-critical activity, imagine its bar "sliding" within its float window and try to pack these activities into as few extra rows as possible — placing them back-to-back wherever they can immediately follow one another. Each resulting row = one worker.

Type 2: Fixed worker limit — find the new minimum time

Here the constraint flips: you're told the maximum number of workers available, and you need to find how long the project will now take. Take your best schedule from Type 1, then look for the row(s) that would exceed the limit — delay activities (respecting precedence!) until the schedule fits within the row limit, and read off the new, longer finishing time.

Don't forget precedence still applies! Even while you're shuffling activities between workers to balance the load, an activity that depends on another still cannot start before its predecessor finishes. A common exam trap is delaying an activity in a way that accidentally breaks this rule — always cross-check against the precedence table.
Practice Question

The critical activities of a project are A, C, G, I (total 23 days). A separate non-critical chain B→D→E also fits neatly into that same 23-day window on its own row. If a third non-critical activity F also needs scheduling and can't fit on either existing row without overlap, what does this tell you about the minimum number of workers required?

What to Memorise

Term / FormulaMeaning
Source node / Sink nodeThe very first event (0 or S) / the very last event (highest number or T)
Dummy activityZero-duration, unlettered, dotted arc — used to fix "same pair" or "split predecessor" logic problems
Early event time = MAX[ei + duration]Forward pass: earliest a stepping stone can be reached, taking the max over all incoming arcs
Late event time = MIN[lj − duration]Backward pass: latest a stepping stone can be left, taking the min over all outgoing arcs
Total float = lj − ei − durationRoom an activity has to be delayed without pushing back the whole project
Critical activityTotal float = 0
Critical pathThe unbroken chain of critical activities from source to sink (there may be more than one!)
Minimum project durationThe early event time (= late event time) at the sink node
Lower bound (workers) ≥ total activity time ÷ min. durationRound up to nearest whole number; may not always be achievable

Concepts Checklist

Exam Tips & Common Mistakes

Mistake: forgetting dummy arcs in the forward/backward pass Dummies are unlabelled and dotted, so they're easy to skip when scanning "all arcs into/out of this node". They still have duration 0 and still count! Always trace every single arrowhead into or out of a node.
Mistake: assuming matching early/late times means critical A node being a "critical event" (early = late) doesn't automatically make every activity touching it critical. Always confirm with the actual total float calculation — float must equal exactly zero.
Mistake: mixing up critical path vs critical activities format Critical path = a sequence with dashes, e.g. A–C–G–I. Critical activities = a comma-separated list, e.g. A, C, G, I. Examiners expect both in the correct format when asked.
Mistake: rounding the lower bound the wrong way The lower bound formula always rounds up (you can't have a fraction of a worker, and you need enough capacity to cover all the work) — even if the decimal is something small like 2.05, round up to 3.
Examiner tip: rough sketch first Start with a "curly-edged" rough version of the network — it lets you rearrange things and fix logic errors before committing to a clean, straight-line final diagram.
Examiner tip: minimum dummies A network should use as few dummy activities as possible. If your solution needs more dummies than the question specifies, you've probably missed a smarter arrangement — go back and re-check.
Examiner tip: scheduling needs practice, not memorised steps There's no strict algorithm for scheduling problems — the best preparation is working through several different examples so you build intuition for how activities "slide" and combine into rows.
Examiner tip: watch the wording on "at time X" Phrases like "on day 14" need care — check whether the histogram's time axis is being treated as discrete (whole days) or continuous, since this changes exactly which activities count as active at that moment.
Edexcel A Level Further Maths — Decision 1 · Critical Path Analysis Revision Guide
Also in the full note
  • 1. Activity Networks & Precedence Tables
  • 3. Critical Path Analysis: Earliest, Latest, Float & the Critical Path
  • Exam Tips & Common Mistakes
  • Critical activities & the critical path
What's inside
📖 Revision notes ✦ AI flashcards ✓ Instant AI marking

Read the full Critical Path Analysis notes free

That's the preview — create a free account to read the rest, plus flashcards and practice questions with instant AI marking. No credit card.

Unlock the full notes free →

More Further Decision Mathematics 1 topics