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
- List each task as “Name, duration, then anything it waits on”.
- So “Test, 4, Build, Copy” is a four-day task that waits on Build and Copy.
- Press calculate.
- 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.
Related generators
- Priority Matrix GeneratorRanks a backlog by impact, urgency, effort and confidence — with effort counting against a task, not for it.
- Makespan Scheduling Problem GeneratorJobs across identical machines, scheduled longest-first, with two lower bounds that often prove the schedule optimal.
- Launch Countdown PlannerTurns a launch date into working-day start dates for every task, and flags what will not fit.
- DAG GeneratorDirected acyclic graphs where the absence of cycles is structural rather than checked afterwards — for testing schedulers, build systems and topological sorts.
- Decision Tree GeneratorBuilds a complete tree of every path through a series of decisions, so you can see how quickly the options multiply.