The Dependency Wizard
The Dependency Wizard is the primary tool for building task dependency networks in Baulit. It provides a guided, visual interface for connecting tasks with Finish-to-Start relationships, and it prevents common scheduling mistakes by detecting circular dependencies in real time.
Why Use the Dependency Wizard?
Construction projects are not assembly lines. Work happens in parallel: your plumber and electrician can rough-in at the same time after framing is done. Your landscaper can start exterior work while interior finishes are underway. The Dependency Wizard helps you model these parallel work streams accurately, which gives CPM the information it needs to calculate a realistic project duration.
Key advantages over manual predecessor entry or Link in Sequence:
- Cycle detection. If adding a predecessor would create a circular dependency, the wizard blocks it immediately and shows a warning. You cannot accidentally break your schedule.
- Visual feedback. You see the current predecessors and successors for each task in a clear list format. No guessing about which tasks are connected.
- Real-time health updates. The network health percentage updates as you add or remove connections, so you can see your schedule improving as you work.
- Search-based selection. Find tasks by name instead of scrolling through a long list. Type a few characters and select from matching results.
Accessing the Dependency Wizard
You can open the wizard from two places:
- From the Gantt view: Click the Edit Dependencies button above the Gantt chart. The wizard panel appears on the right side of the screen.
- From a task popover: Click any task bar on the Gantt chart, then click Edit in Wizard in the popover. The wizard opens with that task already selected.
Step-by-Step Walkthrough
Best Practices for Building Your Network
Start from the beginning and work forward
Begin with the first task in your schedule (usually something like Site Prep or Permit Application) and work forward chronologically. For each task, ask yourself: what must be finished before this task can start? That is your predecessor.
Think about hard constraints, not preferences
A dependency should represent a physical or regulatory constraint, not a scheduling preference. Framing must finish before roofing because you cannot roof a building that has no frame. That is a hard constraint. But painting and fixture installation might happen in either order depending on crew availability. Those are soft preferences that should not be modeled as dependencies.
Build parallel branches
Residential construction has natural parallelism. After the foundation is poured and cured:
- Framing can start (leading to roofing, sheathing, etc.)
- Underground plumbing can start (leading to the plumbing rough-in inspection)
- Underground electrical can start (leading to the electrical rough-in inspection)
All three branches start from the same predecessor (Foundation) but run in parallel. This parallel structure gives CPM the information it needs to calculate float accurately. If you chain everything into a single serial sequence, every task ends up on the critical path with zero float, and your calculated project duration is artificially long.
Use inspection tasks as merge points
In residential construction, inspections are natural merge points where multiple work streams converge. The rough-in inspection requires plumbing, electrical, and HVAC rough-in to all be complete. Model this by making all three trades predecessors of the inspection task. This creates a realistic network where the inspection cannot happen until all required work is done.
Do not over-connect
Not every task needs to be connected to every other task. If Task C already depends on Task B, and Task B depends on Task A, you do not need to also connect Task A to Task C. The transitive dependency is already captured. Adding redundant connections clutters the Gantt chart without improving the schedule calculation.
Network Health Targets
| Health % | Meaning | Action |
|---|---|---|
| 90%+ | Excellent. Nearly all tasks are connected with durations. | Your critical path is reliable. Review the Gantt chart for accuracy. |
| 80-89% | Good. Most tasks are connected. A few orphans remain. | Connect the remaining orphan tasks or verify they are intentionally standalone. |
| 50-79% | Partial. CPM runs but the critical path may not reflect reality. | Spend time in the wizard connecting tasks before relying on the schedule. |
| Below 50% | Incomplete. Too many disconnected tasks for a meaningful schedule. | Focus on building the network before using the Gantt chart for planning. |
Fixing Circular Dependencies
A circular dependency occurs when tasks form a loop: A depends on B, B depends on C, and C depends on A. This makes scheduling impossible because no task in the loop can start first.
If the CPM engine detects a cycle, the network health banner turns red and names the tasks involved. To fix it:
Dependency Wizard vs. Link in Sequence
| Feature | Dependency Wizard | Link in Sequence |
|---|---|---|
| Network structure | Parallel branches and merge points | Single serial chain |
| Cycle detection | Real-time, blocks invalid connections | Not applicable (always linear) |
| Float calculation | Accurate (parallel paths create float) | Zero float everywhere (everything is critical) |
| Project duration | Realistic minimum duration | Artificially long (sum of all durations) |
| Best for | Full project scheduling | Short linear runs (3-5 tasks) |
Use the Dependency Wizard for your primary schedule network. Use Link in Sequence only for short runs where tasks genuinely must happen one after another with no parallel work.