Schedule Calculation (CPM)
Applies to: Pro · Enterprise Last updated: 27-Feb-2026
Overview
Kazinex includes a full Critical Path Method (CPM) engine that calculates early and late dates, total and free float, the critical path, and the longest path. The engine runs a 15-step pipeline covering topological sorting, forward pass, backward pass, constraint handling, LOE calculation, and summary roll-ups. Results display in the Schedule Results Panel with statistics and warnings.
Prerequisites
- Active Pro or Enterprise subscription
- Editor Mode enabled
- At least one project with activities and relationships
Running the Calculation
| Method | Description |
|---|---|
| Editor Toolbar → Run CPM button | Click the schedule button in the editor toolbar |
| Keyboard | Press F9 |
| Schedule Options dialog | Click "Schedule (F9)" at the bottom of the dialog |
A progress indicator shows completion from 0% to 100% during calculation.
The 15-Step Pipeline
The CPM engine processes your schedule in the following order:
| Step | Progress | Operation |
|---|---|---|
| 1 | 5% | Build activity calculation states |
| 2 | 10% | Topological sort (Kahn's algorithm) |
| 3 | 15% | Pre-process in-progress activities |
| 4 | 25% | Forward pass — calculate early start and early finish dates |
| 5 | 40% | Determine project finish date |
| 6 | 50% | Backward pass — calculate late start and late finish dates |
| 7 | 65% | ALAP (As Late As Possible) adjustment |
| 8 | 70% | LOE (Level of Effort) calculation |
| 9 | 75% | WBS summary calculation |
| 10 | 80% | Post-process in-progress activities |
| 11 | 85% | Calculate total float and free float |
| 12 | 88% | Detect constraint conflicts |
| 13 | 90% | Determine critical path |
| 14 | 95% | Longest path calculation (optional) |
| 15 | 98% | Build final result |
Forward Pass
The forward pass iterates through activities in topological order, calculating the earliest possible start and finish for each activity. It considers:
- All four relationship types (FS, SS, FF, SF) with lag
- Primary and secondary constraints
- Calendar working hours
- The driving predecessor for each activity
Backward Pass
The backward pass iterates in reverse topological order, calculating the latest allowable start and finish without delaying the project. It considers:
- Successor constraints
- The driving successor for each activity
- Open-ended finish handling
Constraint Types
The engine handles all nine P6 constraint types:
| Code | Name | Behaviour |
|---|---|---|
| CS_MSO | Must Start On | Hard — forces exact start date |
| CS_MANDSTART | Mandatory Start | Hard — forces exact start date |
| CS_SNET | Start No Earlier Than | Soft — sets minimum start date |
| CS_FNET | Finish No Earlier Than | Soft — sets minimum finish date |
| CS_MFO | Must Finish On | Hard — forces exact finish date |
| CS_MANDFIN | Mandatory Finish | Hard — forces exact finish date |
| CS_SNLT | Start No Later Than | Soft — sets maximum start date |
| CS_FNLT | Finish No Later Than | Soft — sets maximum finish date |
| CS_ALAP | As Late As Possible | Special — adjusted in post-pass |
Calculated Fields
For each activity, the engine produces:
| Field | Description |
|---|---|
| Early Start / Early Finish | Earliest possible dates |
| Late Start / Late Finish | Latest allowable dates |
| Total Float | Slack before delaying the project (in hours and days) |
| Free Float | Slack before delaying a successor |
| Is Critical | Whether the activity is on the critical path |
| Is Longest Path | Whether the activity is on the longest path |
| Driving Predecessor | The predecessor that determines the early start |
| Driving Successor | The successor that determines the late finish |
Near-Critical Threshold
Activities with total float below the near-critical threshold (default: 10 working days / 80 hours) are flagged as near-critical. You can adjust this threshold in the Schedule Options dialog.
Schedule Results Panel
After calculation, the Results Panel displays:
Statistics Row
| Statistic | Colour | Description |
|---|---|---|
| Total | — | Total number of activities |
| Scheduled | — | Activities with calculated dates |
| Critical | Red | Activities on the critical path |
| Near-Critical | Yellow | Activities within the near-critical threshold |
| Completed | Green | Activities already finished |
| Longest Path | Purple | Activities on the longest path (if enabled) |
Open Ends
Open-start and open-finish counts are shown as tags. Activities without predecessors (open start) or without successors (open finish) may indicate missing logic.
Warnings
Expandable warning list with severity icons, code tags, and descriptive messages:
| Warning Code | Description |
|---|---|
| Circular Dependency | Logic loop detected (includes the cycle path) |
| Missing Calendar | Activity references a calendar that does not exist |
| Missing Predecessor | Relationship references a non-existent activity |
| Open End — Start | Activity has no predecessor relationships |
| Open End — Finish | Activity has no successor relationships |
| Negative Float | Activity has negative total float |
| Constraint Conflict | Constraint produces impossible dates |
| LOE No Connections | Level of Effort activity has no driving relationships |
| Milestone Has Duration | Milestone activity has a non-zero duration |
| Zero Duration | Non-milestone activity has zero duration |
Calculation Time
The panel footer shows execution time in milliseconds.
Tips & Best Practices
- Run F9 after every batch of edits to keep dates current
- Fix circular dependency warnings immediately — they prevent accurate scheduling
- Review open-end warnings to ensure complete logic networks
- Enable Longest Path in Schedule Options for complex networks with multiple calendars
- Use Retained Logic (default) for most projects; switch to Progress Override only when needed
Related Documentation
- Schedule Options — Configure calculation parameters
- Project Properties — Set the data date and default calendar
- Critical Path Checks — Quality checks for CPLI and BEI
- Logic Checks — Quality checks for missing logic and negative float