Mastery

Gantt Chart & CPM Scheduling

The Gantt chart is where your project schedule comes to life. It draws every task as a horizontal bar on a timeline, connects them with dependency arrows, and highlights the critical path so you know exactly which tasks control your project end date. Combined with the built-in Critical Path Method (CPM) engine, it gives you a scheduling tool purpose-built for residential construction.

What is the Gantt Chart?

A Gantt chart is a visual timeline. Each task appears as a horizontal bar whose length represents its duration. Tasks are stacked vertically in the order they appear on your task list, and dependency arrows show which tasks must finish before others can start.

In Baulit, the Gantt chart does more than display bars. It runs the CPM engine on your task network and color-codes the results: critical tasks in red, tasks with float in blue, and unscheduled tasks in gray. At a glance, you can see your project duration, identify bottlenecks, and find where you have scheduling flexibility.

Accessing the Gantt Chart

Open the Gantt chart from any project:

The Gantt chart fills the right side of the screen. Your task list remains on the left so you can reference task names while reading the timeline.

The Network Health Banner

At the top of the Gantt chart, a colored banner reports the health of your task network. This banner tells you whether your schedule has enough information for CPM to produce meaningful results.

Green: Fully Connected

Every task has a duration and at least one dependency connection (either as a predecessor or successor). Your network is complete and the critical path calculation is reliable. This is your target state.

Amber: Partially Connected

Some tasks are missing durations or have no dependency connections. CPM still runs on the connected portion of the network, but orphan tasks are excluded from the critical path calculation. The banner shows a health percentage: the number of tasks with both a duration and at least one connection divided by the total task count.

Red: Circular Dependency Detected

The engine found a cycle in your dependency chain. For example, Task A depends on Task B, Task B depends on Task C, and Task C depends on Task A. CPM cannot run until you break the cycle. The banner identifies which tasks are involved so you can fix the issue in the Dependency Wizard.

Tip: Aim for 80% or higher network health before relying on the critical path. Below that threshold, too many orphan tasks make the calculated project duration unreliable.

Understanding CPM

The Critical Path Method is a scheduling algorithm that calculates the shortest possible duration for your project based on task durations and their dependency relationships. It has been the standard scheduling technique in construction since the 1950s, and Baulit runs it automatically every time your task data changes.

How CPM Works

CPM performs two passes through your task network:

Forward pass. Starting from tasks with no predecessors, the engine calculates the earliest each task can start and finish. It walks forward through the network, respecting every Finish-to-Start dependency. The earliest finish of the last task becomes the project duration.
Backward pass. Starting from the project end date and working backward, the engine calculates the latest each task can start and finish without delaying the project. The difference between the latest and earliest dates for each task is its float.

The Critical Path

Tasks where the earliest start equals the latest start have zero float. These tasks form the critical path. If any critical task slips by even one day, the entire project end date moves by one day. The critical path is the longest chain of dependent tasks through your project, and it defines your minimum project duration.

Float (Slack)

Float is the number of working days a task can be delayed without pushing the project end date. A task with 5 days of float can start up to 5 days late (or take 5 extra days to complete) before it becomes a problem. Float gives you scheduling flexibility for non-critical work.

Dependencies: Finish-to-Start Only

All dependencies in Baulit are Finish-to-Start (FS): the predecessor task must finish before the successor task can start. This is the most common and most intuitive relationship in construction scheduling. Your framing crew finishes before the roofers start. The rough-in inspection passes before drywall begins.

Duration in Working Days

Task durations are measured in working days (Monday through Friday). A 5-day task that starts on Monday finishes on Friday. A 5-day task that starts on Thursday finishes the following Wednesday. The Gantt chart handles weekends automatically when a project start date is set.

How CPM Looks on the Gantt Chart

The diagram below shows a simple 5-task network for a residential project. The critical path runs through Foundation, Framing, Roofing, and Inspection. The Plumbing Rough-In runs in parallel and has float because it takes fewer days than the Framing-to-Roofing path.

Sample CPM Network: Residential Build Foundation 5 days Framing 8 days Roofing 3 days Inspection 1 day Plumbing Rough-In 4 days 7d float Critical path (zero float) Non-critical (has float) Available float (slack) Critical Path: 5 + 8 + 3 + 1 = 17 working days

In this example, the critical path runs across the top: Foundation (5 days), Framing (8 days), Roofing (3 days), and Inspection (1 day), totaling 17 working days. The Plumbing Rough-In takes only 4 days but cannot start until the Foundation is done and must finish before the Inspection. Since the parallel critical path takes 12 days (Framing + Roofing + Inspection) but plumbing only takes 4 days, the plumbing crew has 7 days of float.

The next diagram walks through the actual forward and backward pass calculations on a simpler 4-task network. Each box shows the Early Start / Early Finish on top and Late Start / Late Finish on the bottom, so you can see exactly how float is calculated.

Forward & Backward Pass Calculation Start Day 0 ES=0 EF=3 Task A (3d) LS=2 LF=5 Float = 2d ES=0 EF=5 Task B (5d) LS=0 LF=5 ES=5 EF=7 Task C (2d) LS=5 LF=7 End Day 7 Critical path (ES = LS, zero float) Non-critical (ES < LS, has float) Critical Path: Start → B (5d) → C (2d) → End = 7 working days

Reading the Gantt Chart Bars

Every bar on the Gantt chart is color-coded to tell you its scheduling status at a glance.

Bar Color Meaning
Red Critical path task. Zero float. Any delay pushes the project end date.
Blue with gray padding Non-critical task with float. The gray extension shows how many days the task can slip.
Dark thin bar with triangles Phase summary bar. Automatically spans from the earliest child start to the latest child finish.
Gray Unscheduled task. Missing a duration, missing predecessors, or disconnected from the network.
Green Completed task. Work is done and approved.

Dependency arrows connect predecessor bars to successor bars. The arrows help you trace the logic of your schedule and see why a particular task is scheduled where it is.

Task Popover

Click any task bar on the Gantt chart to open the task popover. This floating panel gives you quick access to scheduling details and editing tools without leaving the chart.

The popover shows:

Zoom Controls

Construction projects range from a two-week renovation to a twelve-month custom home. The Gantt chart provides multiple zoom levels to match your project scope.

Named Zoom Buttons

Three buttons above the chart set common zoom levels:

Fine Adjustment

Use the + and - buttons for incremental zoom changes between the named levels. Your scroll position is preserved when zooming so you stay focused on the same part of the timeline.

Keyboard Shortcuts

When the Gantt chart has focus:

Phase Summary Bars

If you organize tasks into phases (like Pre-Construction, Foundation, Framing, etc.), the Gantt chart automatically generates a summary bar for each phase. These thin dark bars with triangular endpoints span from the earliest start date of any child task to the latest finish date of any child task within the phase.

Phase summary bars give you a high-level timeline view. You can see at a glance that the Framing phase runs from week 3 to week 6, even if it contains twelve individual tasks with complex dependencies.

Project Start Date and Calendar Dates

The Gantt chart can display two types of timelines:

Important: Setting a project start date is required to see real calendar dates on the Gantt chart. Without it, tasks show relative day numbers. Go to your project settings (Edit Project) to set the start date.

When calendar dates are active, the Gantt chart accounts for weekends automatically. A 5-day task starting Monday finishes Friday. A 5-day task starting Thursday finishes the following Wednesday (skipping Saturday and Sunday).

Building Your Network for CPM

The critical path is only as good as the data behind it. For CPM to produce meaningful results, every task needs two things: a duration (in working days) and at least one dependency connection.

Set durations. Open each task and enter how many working days it takes. Be realistic. If your framing crew takes 8 days on a typical 2,000 sq ft house, enter 8. Do not pad durations with contingency; that is what float is for.
Add dependencies. Use the Dependency Wizard to connect tasks. For each task, ask: what must finish before this task can start? Foundation must finish before Framing. Framing must finish before Roofing. Rough plumbing must finish before the plumbing inspection.
Check network health. Watch the health banner turn from red to amber to green as you connect more tasks. Aim for 80% or higher.
Set the project start date. Once your network is built, set the start date in Edit Project to see real calendar dates on the Gantt chart.
Tip: Use the Dependency Wizard (not Link in Sequence) to build your task network. The wizard is the recommended path for accurate scheduling. It provides guided predecessor selection with cycle detection, preventing common mistakes that serial chaining can introduce.

Practical Tips for Builders

Common Questions

Why are some tasks gray on the Gantt chart?

Gray bars mean the task is unscheduled. It is either missing a duration, missing predecessor connections, or both. Open the task to add the missing information, or use the Dependency Wizard to connect it to the network.

Why did my critical path change after I added a task?

The critical path is the longest chain through the network. Adding a new task with dependencies may create a longer chain than the previous critical path. This is normal. Review the new critical path to make sure it reflects the actual sequence of work.

Can I manually set a task as critical?

No. The critical path is calculated automatically by the CPM engine based on durations and dependencies. You cannot override it. If you want a task to be on the critical path, adjust its dependencies or durations to reflect the real constraints of your project.

What happens when I mark a critical task as complete?

The CPM engine recalculates with the remaining tasks. The critical path may shift to a different chain of tasks. This is expected behavior as your project progresses.

Deep dive: For the theory behind CPM and how it applies to residential construction, see CPM for Builders in the Builder's Library.