# Critical Path Method Calculator (CPM)

Activity-on-node CPM: ES/EF/LS/LF, total float, project duration, and every critical path; cycles and unknown predecessors are rejected.

> Canonical page: https://elysiatools.com/en/tools/critical-path-method

- **Category:** Math & Numbers

- **Keywords:** critical path method, cpm, project scheduling, critical path, total float, slack, forward pass, backward pass, project management, operations research

## Overview

The Critical Path Method (CPM) Calculator performs forward and backward pass analysis on activity-on-node project networks. It automatically computes Early Start (ES), Early Finish (EF), Late Start (LS), Late Finish (LF), total float, overall project duration, and identifies all critical paths while rejecting circular dependencies and undefined predecessors.

## Inputs

- **Activities (one per line: name, duration, predecessors)** (textarea): One activity per line: unique name (1–8 letters/digits), non-negative duration, then predecessor names separated by spaces ('-' if none).
- **Decimal Places** (number)

## When to use

- Determining the minimum total duration and bottleneck sequence of activities in a project schedule.
- Calculating total float (slack) to understand how much non-critical tasks can be delayed without affecting completion dates.
- Validating project network logic against cyclic loops, duplicate activity names, and missing predecessor definitions.

## How it works

- Enter activity lines containing the activity name, duration, and predecessor names separated by commas (use '-' for initial tasks).
- Set the desired decimal places for duration and schedule precision.
- The tool performs a topological sort to validate network dependencies and detects any cyclical dependencies or invalid predecessors.
- A forward pass calculates ES and EF, followed by a backward pass to determine LS, LF, total float, and all critical paths.

## Use cases

- Operations research coursework and exam problem verification for Activity-on-Node (AON) network scheduling.
- Construction and engineering schedule optimization to pinpoint zero-float milestone sequences.
- Software sprint planning to identify task dependencies and calculate workflow buffers.

## Frequently asked questions

### What format should I use to input activities?

Enter each activity on a new line formatted as: activity name, duration, and predecessor names separated by spaces (e.g., 'D, 5, B C' or 'A, 4, -' if none).

### What indicates that an activity is on the critical path?

An activity is on the critical path when its total float (slack) equals zero, meaning any delay in that activity directly delays the project completion.

### Can the calculator identify multiple critical paths?

Yes, if two or more parallel dependency branches share the same maximum duration, the tool enumerates all critical paths.

### How does the calculator handle cyclic dependencies?

The topological sort algorithm detects loops (cycles) in the network graph and rejects the input with an error.

### Are non-integer durations supported?

Yes, you can enter decimal values for activity durations and configure the decimal precision output setting.

## Related tools

- [Basic Calculator](https://elysiatools.com/en/tools/basic-calculator): Perform basic arithmetic calculations with support for multiple operations
- [Sum Calculator](https://elysiatools.com/en/tools/sum-calculator): Calculate sum of numbers with partial sums, cumulative sums, and statistics
- [Venn Diagram Problem Solver (Set Cardinality)](https://elysiatools.com/en/tools/venn-diagram-problem-solver): 2-set and 3-set inclusion-exclusion solver: every disjoint region, the union, and the outside count, with consistency checks.
- [Active Earth Pressure (Rankine)](https://elysiatools.com/en/tools/active-earth-pressure): Calculate the Rankine active earth pressure on a smooth vertical wall backfilled with cohesionless soil. K_a = tan²(45°−φ/2). Optional uniform surcharge q. Returns the base pressure p₀, the total force P, and the resultant height.
- [RLC Admittance Calculator (Y = G + jB)](https://elysiatools.com/en/tools/admittance-calculator): Compute complex admittance Y = 1/Z = G + jB for series or parallel RLC circuits: G = R/|Z|², B = −X/|Z|². Returns conductance, susceptance, magnitude and phase angle. Supports any subset of R/L/C.
- [Antilog Calculator](https://elysiatools.com/en/tools/antilog-calculator): Calculate antilogarithms for any valid base and optionally verify the result by applying the logarithm again
- [Bayes Theorem Calculator](https://elysiatools.com/en/tools/bayes-theorem-calculator): Calculate posterior probability P(A given B) using prior, likelihood, and false-positive rate
- [Bearing Capacity Calculator (Terzaghi)](https://elysiatools.com/en/tools/bearing-capacity-calculator): Calculate the Terzaghi ultimate bearing capacity of a shallow foundation: q_ult = c·Nc·sc + q·Nq·sq + 0.5·γ·B·Nγ·sγ. Computes Nc/Nq/Nγ and shape factors automatically; supports strip, square, and circular footings. Result in kPa.

## Samples

- [Path Analyzer Samples](https://elysiatools.com/en/samples/path-analyzer): Comprehensive collection of file system paths from Windows, Linux, and macOS for path analysis and testing
- [Import Path Examples](https://elysiatools.com/en/samples/import-path-examples): Collection of JavaScript and TypeScript import examples demonstrating various import patterns and module systems
- [Android Image Processing Java Samples](https://elysiatools.com/en/samples/android-image-processing-java): Android Java image processing examples including reading/saving images, scaling, and format conversion
- [Android Image Processing Kotlin Samples](https://elysiatools.com/en/samples/android-image-processing-kotlin): Android Kotlin image processing examples including reading/saving images, scaling, and format conversion
