MBPHPBLOCK000000X
Project Management · Método de Ruta Crítica

Critical Path Method (CPM) Schedule Generator

Automatically calculates ES, EF, LS, LF, slack, and the critical path of your project. Gantt visualization included. 100% free, no registration, all in the browser.

📋 Actividades del Proyecto
ID Activity Name Duration Predecessors (IDs)
💡 Predecesores: lista de IDs separados por coma. Ej: 1,3. Deja vacío si no hay.
📊 Análisis CPM (Forward + Backward Pass)
ID Activity Dur. ES EF LS LF Slack Status
📅 Diagrama de Gantt
Normal Crítica Holgura

What is the Critical Path Method (CPM)?

The Critical Path Method (CPM) is a project planning technique developed in 1957 by Morgan R. Walker (DuPont) and James E. Kelley (Remington Rand). It allows identifying which activities determine the total duration of the project and which have slack to delay without affecting the final date.

It is used in construction, software development, manufacturing, event planning, product launches, and practically any project with more than 5 interdependent activities.

⏱️

ES (Early Start)

The earliest date an activity can start without violating predecessor constraints. It is calculated in the "forward pass."

🏁

EF (Early Finish)

The earliest finish date = ES + Duration. The entire project ends at the maximum EF of all activities without successors.

LS / LF (Late Start / Late Finish)

The latest dates an activity can start/finish without delaying the project. It is calculated in the "backward pass."

⚖️

Slack

Slack = LS − ES = LF − EF. It is how much the activity can be delayed without affecting the project. Activities with slack = 0 are critical.

🔴

Critical Path

The chain of activities connected with zero slack. It is the longest path and determines the minimum possible duration of the project.

📈

Forward / Backward Pass

Two passes: the forward calculates ES and EF from start to finish; the backward calculates LF and LS from finish to start. Difference = slack.

How to use this calculator step by step

1. List all project activities

Each row represents a task. Give it a descriptive name and a duration (days, weeks, or whatever you prefer — the unit is consistent for the entire project).

2. Define dependencies (predecessors)

In the "Predecessors" column, write the IDs of the activities that must finish before this one can start. If the activity can start from day 0, leave the cell empty. Example:

3. Interpret the results

4. Optimize the schedule

Once the critical path is identified, typical actions are:

Frequently Asked Questions

What is the difference between CPM and PERT?

CPM uses deterministic durations (a single value per activity), while PERT uses three estimates (optimistic, most likely, and pessimistic) and calculates an expected duration with standard deviation. CPM is ideal when you have reliable historical data; PERT when there is high uncertainty.

Can there be multiple critical paths?

Yes. When two or more independent chains have the same total duration and all activities in them have zero slack, the project has multiple parallel critical paths. This increases risk: a delay in any of them affects the project.

Is slack always positive?

In a feasible schedule, yes. If you calculate and get negative slack, it means the project cannot finish on the planned date with the current dependencies — you need crashing, fast tracking, or extending the date.

Is this tool suitable for large projects?

For projects of up to ~50 activities it works perfectly. For larger projects (200+ activities, complex resources, costs), use professional software like Microsoft Project, Primavera P6, or GanttProject.

Are my data stored on any server?

No. All calculations occur in your browser with JavaScript. Nothing is sent or stored on any server. If you refresh the page, you must re-enter the activities (or use the "Load example" option to start).

Why does a cycle in dependencies produce an error?

CPM only works on directed acyclic graphs (DAG). If A depends on B and B depends on A, there is no valid order to calculate ES/EF. The tool detects cycles and shows an error.