Project Schedule¶
At a glance
- Purpose: Record activities, durations, dependencies, and dates — including the critical path and float — in one place that can be challenged and updated.
- Use it when: After the WBS and the network. The approved version becomes the schedule baseline against which progress is measured.
- Owner: The project manager; activity durations are owned by whoever does the work.
- Related: Module 06 · Lab 08 · Lab 10
- Spreadsheet version:
csv/project-schedule.csv
How to use this template¶
- Complete the activity table first: activity, duration, predecessors. No dates yet.
- Run the forward pass (earliest start and finish), then the backward pass (latest start and finish).
- Calculate float per activity, and mark the critical path. If every activity has float, you have an arithmetic error somewhere.
- Convert day numbers to dates on a working calendar, excluding weekends and public holidays.
- State the schedule's basis — the productivity assumption, the resource availability, and the external lead times included. A schedule without its assumptions cannot be defended.
- Re-run the passes whenever a duration, dependency, or resource changes. A stale critical path is worse than none.
Field descriptions¶
| Column | What goes in it | Watch out for |
|---|---|---|
| ID | Short reference (A, B, C) used in the diagram | Renumbering after the diagram is drawn |
| Activity | Deliverable-oriented, sized to be owned by one person | Very long activities nobody can track |
| Duration | Working days, at the agreed resource level | Days of effort rather than duration |
| Predecessors | Which activities must finish first | Missing an external dependency |
| Dependency class | Mandatory / discretionary / external | Everything marked mandatory — it hides the options |
| ES / EF | Earliest start and earliest finish from the forward pass | Starting at 1 rather than 0 without saying so |
| LS / LF | Latest start and latest finish from the backward pass | Starting the backward pass from the wrong finish |
| Float | LF − EF (or LS − ES) | Treating float as a personal allowance |
| Critical | Yes / No | More than a few activities marked critical without checking |
| Owner | A role, not a name | Unassigned activities |
Blank template¶
# Project Schedule — [Project name]
| | |
| --- | --- |
| **Version** | [1.0 — becomes the baseline on approval] |
| **Project start** | [YYYY-MM-DD, and which weekday] |
| **Working pattern** | [e.g. 5 days per week; public holidays 20 Mar and 6 Apr] |
| **Productivity assumption** | [e.g. 80% of paid time is project work] |
| **External lead times included** | [e.g. security review queue of 10 working days] |
## 1. Activities
| ID | Activity | Duration (days) | Predecessors | Dependency class | Owner |
| --- | --- | --- | --- | --- | --- |
| A | [Activity] | [n] | — | — | [Role] |
| B | [Activity] | [n] | A | Mandatory | [Role] |
## 2. Network
```mermaid
flowchart LR
accTitle: How to show a dependency between two activities
accDescr {
Two activities in a schedule: activity A takes 5 days and must finish before activity B, which
takes 4 days.
}
A[A 5d] --> B[B 4d]
3. Schedule calculations¶
| ID | Duration | ES | EF | LS | LF | Float | Critical |
|---|---|---|---|---|---|---|---|
| A | 5 | 0 | 5 | 0 | 5 | 0 | Yes |
| B | 4 | 5 | 9 | 5 | 9 | 0 | Yes |
Total project duration: [n] working days Critical path: [A → B → …] Calendar finish: [YYYY-MM-DD]
4. Milestones¶
| Milestone | Planned date | Evidence that it is met |
|---|---|---|
| [Milestone] | [YYYY-MM-DD] | [Observable evidence] |
5. Basis and assumptions¶
[The productivity factor, the resource level assumed per activity, any external queue, and what is not included. State which of these would invalidate the schedule if they changed.]
6. Baseline approval¶
| Role | Name | Date | Accepted variance tolerance |
|---|---|---|---|
| Sponsor | [e.g. ±3 days on any milestone] | ||
| ``` |
Worked example¶
From Lab 10, on the admission portal — a 10-activity network with invented durations for teaching. The dependency logic is B after A; C, D, and E after B; F after C; G after D; H after G; I after E, F, and H; and J after I:
| ID | Activity | Duration | ES | EF | LF | LS | Float | Critical |
|---|---|---|---|---|---|---|---|---|
| A | Requirements workshops | 5 | 0 | 5 | 5 | 0 | 0 | Yes |
| B | Data model design | 4 | 5 | 9 | 9 | 5 | 0 | Yes |
| C | Applicant form build | 6 | 9 | 15 | 25 | 19 | 10 | No |
| D | Document upload build | 5 | 9 | 14 | 14 | 9 | 0 | Yes |
| E | Eligibility rules engine | 8 | 9 | 17 | 31 | 23 | 14 | No |
| F | Admin console | 6 | 15 | 21 | 31 | 25 | 10 | No |
| G | Student-record integration | 7 | 14 | 21 | 21 | 14 | 0 | Yes |
| H | Security review (external) | 10 | 21 | 31 | 31 | 21 | 0 | Yes |
| I | System testing | 5 | 31 | 36 | 36 | 31 | 0 | Yes |
| J | UAT and training | 4 | 36 | 40 | 40 | 36 | 0 | Yes |
Duration 40 working days. Critical path A → B → D → G → H → I → J. Note that C and E are large activities with 10 and 14 days of float, while H — an external activity the project cannot compress — is critical. That single observation is what the schedule exists to reveal.
Common mistakes¶
- Effort recorded as duration. A 1-day effort task with a two-week external queue has a duration of eleven working days.
- Summing predecessors instead of taking the maximum. At a converging activity, the start is the latest predecessor finish, not the total.
- Forgetting the working calendar. Weekends and public holidays are the most common source of date errors.
- No float column. Without float you cannot tell which slips matter.
- A schedule with no stated basis. Someone will challenge the dates; the assumptions are your defence.
- Never re-running the passes. When one duration changes, the critical path can move — and a schedule that has not been recalculated is a document, not a control.