GenerateRandomSearch

Critical Path Calculator

Every plan has a handful of tasks where a day's delay is a day on the finish date, and a majority where it is not. Telling them apart is the difference between managing a project and worrying about all of it equally. The arithmetic is standard, and people get it wrong by hand for one specific reason: the backward pass is counter-intuitive — a task's latest finish is the *earliest* of its successors' latest starts, not the latest.

What this generator does

Computes the schedule rather than displaying one. The countdown planners on this site work backwards from a date in fixed steps; this takes a network of tasks with dependencies and derives the earliest and latest each can start, the float each has, and which chain of zero-float tasks sets the overall duration. It also detects circular dependencies and names them, rather than hanging.

How to use this tool

  1. List each task as “Name, duration, then anything it waits on”.
  2. So “Test, 4, Build, Copy” is a four-day task that waits on Build and Copy.
  3. Press calculate.
  4. The critical tasks are highlighted; everything else shows its float.

Understanding the controls

Tasks
One per line: name, duration, then the names of anything it waits on. Durations can be days, weeks or hours as long as you are consistent — the tool does not care which, and neither does the arithmetic.

Worked examples

Design 3 → Build 5 → Test 4 → Launch 1
13 days, all four critical.
A parallel 2-day Copy alongside a 5-day Build
Copy has 3 days of float and is not critical.
Three independent tasks of 4, 7 and 2
Duration 7; the others have 3 and 5 days of float.
A circular dependency
Named and reported, rather than the page hanging.

Common use cases

  • Finding out whether a deadline is achievable before committing to it
  • Deciding which slipping task actually matters
  • Working out what can safely be handed to somebody who is already busy
  • Explaining to a stakeholder why adding people to a non-critical task changes nothing
  • Checking a plan somebody else built before signing it off

How this generator works

Tasks are sorted into dependency order using Kahn's algorithm, which detects a cycle by running out of ready tasks rather than by recursing forever. A forward pass then gives every task its earliest start and finish; a backward pass gives its latest start and finish; the difference is float. Tasks with zero float are critical. The result is checked before display: no task may start before a predecessor finishes, no float may be negative, and the critical chain's durations must total the project duration exactly.

Randomness and fairness

Nothing here is random. The same tasks and durations always produce the same schedule, which is what makes it worth checking a plan against.

For how randomness is produced across the whole site, see how Generate Random works.

Assumptions this tool makes

  • Every dependency is finish-to-start, and any number of tasks can run at once if nothing links them.

Limitations and good to know

  • The answer is exactly as good as your duration estimates, and estimates are the hard part.
  • It does not model resources: two critical tasks needing the same person will not both start on time, and this will not tell you that.
  • There is no calendar. Durations are abstract units, so weekends and holidays are not skipped — pair it with the business day calculator.
  • Partial dependencies — start B when A is half done — are not supported; every dependency is finish-to-start.
  • The network exists only while the page is open, so save the CSV before a schedule anybody is relying on disappears.

Common mistakes

Adding people to a task with float
It changes nothing about the finish date. Only the critical path moves the end, which is the whole reason to compute it.
Reading float as spare time for everybody
Float belongs to a chain, not to a task. Spending it on one task removes it from the others behind it.
Mixing units
Durations must all be in the same unit. Two days and three weeks in the same list gives a nonsense answer with no warning.

Practical tips

  • Compute it before agreeing a date rather than after missing one.
  • Recalculate whenever a duration changes — the critical path moves, sometimes to a chain nobody was watching.
  • The task with the most float is usually the safest thing to give somebody who is already stretched.

Privacy and your data

Your task names, durations and dependencies stay in your browser. Nothing is uploaded, nothing is stored between visits, and none of it is written into the page address — which matters for an unannounced project. Analytics records that the tool ran and how many tasks were scheduled, never any text.

Frequently asked questions

What is float?
How long a task can slip before it starts pushing the finish date. Zero float means it is on the critical path; three days of float means three days of slippage costs nothing overall.
Why is my whole plan critical?
Usually because it is a single chain with nothing running in parallel. That is a real finding: there is no slack anywhere, so every task is a risk to the date.
Does it handle weekends?
No — durations are abstract units. Work out the duration in working days here, then convert to calendar dates with the business day calculator.
What happens with a circular dependency?
It names the tasks caught in the loop and stops. No ordering can satisfy a cycle, so producing a schedule anyway would be inventing one.