Core Module ยท MVP
Schedule Management

Deterministic, physics-based construction scheduling. BuildOS computes every task's earliest and latest possible dates, identifies which tasks are truly critical, and recalculates the entire schedule in under a second when anything changes.

The Scheduling Problem in Construction

A residential build has hundreds of tasks that depend on each other in complex ways. Framing can't start until the foundation is cured. Electrical rough-in can't start until framing is complete. Insulation can't be installed until rough-in passes inspection. Each dependency creates a constraint โ€” and each constraint means that a delay in one task can ripple forward and push back the entire project completion date.

Most GCs manage this with a spreadsheet or a Gantt chart that they manually update. The problem: the moment something changes (a sub is late, an inspection fails, weather hits), the manual update doesn't happen โ€” or happens days later, too late to adjust. By the time the schedule reflects reality, the team has already made decisions based on stale dates.

BuildOS solves this with a scheduling engine that recalculates automatically. Any change โ€” a task marked complete, a delay reported, a duration updated โ€” triggers an instant full recalculation of every date in the project.

Critical Path Method โ€” Explained Simply

BuildOS uses a scheduling approach called Critical Path Method (CPM) โ€” the same method used by NASA, large construction firms, and aerospace manufacturers for six decades. Here's what it means in plain terms:

๐Ÿ—บ
Think of it like GPS for your construction sequence. CPM maps out every task, every dependency, and every possible path from project start to project end. It identifies the longest path โ€” the one that determines your completion date โ€” and flags every task on that path as "critical." These are the tasks where a one-day delay means a one-day slip in your completion date. Tasks not on the critical path have "float" โ€” buffer time that can absorb small delays without affecting the end date.

Forward Pass โ€” When Can Things Start?

Starting from the project's permit date, BuildOS calculates the earliest possible start and finish for every task, respecting all dependencies. A task cannot start until all its predecessors are complete. The forward pass answers: "Given everything that has to happen first, what's the soonest this task can begin?"

Backward Pass โ€” When Do Things Have to Start?

Working backward from the required project completion date, BuildOS calculates the latest possible start and finish for every task before the end date is pushed out. The backward pass answers: "How late can this task start before it affects our completion date?"

Float โ€” The Risk Buffer

Float is the difference between the latest a task can start and the earliest it can start. A task with 10 days of float can slip up to 10 days without affecting your completion date. A task with zero float is critical โ€” any delay directly extends the project.

Critical Task
Float = 0. Any delay in this task directly delays project completion. BuildOS highlights these in red on the Gantt chart. These are the tasks Mike needs to protect.
Non-Critical Task
Float > 0. Has buffer. The Gantt chart shows how much float is available, allowing Mike to reprioritize crew if needed without affecting the end date.

Task Dependencies โ€” The Four Types

Tasks relate to each other in four ways, each representing a different real-world constraint. BuildOS supports all four, with optional lag time on each:

Dependency TypeMeaningConstruction Example
Finish-to-Start (FS) Task B cannot start until Task A is finished Concrete pour must finish before framing can start (+ 7-day cure lag)
Finish-to-Finish (FF) Task B cannot finish until Task A is finished Punch list can't close until all trades have completed their work
Start-to-Start (SS) Task B cannot start until Task A has started Interior painting can start on Floor 1 as soon as drywall starts (different floors)
Start-to-Finish (SF) Task B cannot finish until Task A has started Old HVAC system can't be shut down until new system has started

Lag days can be added to any dependency. A 7-day lag on a Finish-to-Start means Task B can't start until 7 days after Task A finishes โ€” useful for curing times, permit processing windows, and inspection scheduling windows.

WBS Code System

Every task in BuildOS has a Work Breakdown Structure (WBS) code โ€” a hierarchical number like 9.2 or 12.4. The code identifies which phase and sub-task a task belongs to. The major phases in a residential build:

WBS PhaseScopeWeather Sensitive?
1.xSite Preparation & ClearingYes
2.xExcavation & GradingYes
3.xFoundation (footings, pour, waterproofing)Yes
4.xDrainage & Underground UtilitiesYes
5.xFlatwork & SlabsYes
6.xStructural Steel / Masonry (if applicable)Yes
7.xFraming (first floor)Yes
8.xRoofing & SheathingYes
9.xUpper Floor Framing & Deck (multi-story)Yes
10.xRough MEP (Mechanical, Electrical, Plumbing)No (interior)
11.xInsulation & Air SealingNo (interior)
12.xDrywall & PlasterNo (interior)
13.xExterior Finishes (siding, windows, trim)Yes
14.xInterior Finishes (flooring, paint, cabinets)No (interior)
15.xFinal MEP Trim-OutNo (interior)
16.xInspections & Punch ListNo

How Task Durations Are Calculated

When a project is created from a permit, BuildOS doesn't just copy a generic schedule template. It calculates durations specific to this project using two models:

House Sizing Model (DHSM)

A 4,000 sq ft home takes longer to frame than a 1,800 sq ft home โ€” but not exactly twice as long. BuildOS uses a Size Adjustment Factor based on the project's square footage relative to a standard-sized home. This factor is applied to every task's base duration, scaling the entire schedule proportionally. Inspection tasks are locked to standard durations regardless of house size, since the inspector's time is fixed.

The formula accounts for the non-linear relationship between size and labor: a home that's twice as big doesn't take exactly twice as long, because some tasks (like inspections) don't scale with size, and crew productivity improves on larger continuous runs of work.

Weather Model (SWIM)

Weather-sensitive tasks (WBS phases 1โ€“9 and exterior work in phase 13) receive a weather buffer based on forecast conditions for the project location. BuildOS queries hourly weather forecasts from Tomorrow.io to assess:

Interior work (WBS 10โ€“12, 14โ€“16) is not affected by weather adjustments. Inspection tasks are also weather-immune โ€” the inspector's schedule is what matters there.

๐ŸŒค
Weather-aware scheduling is proactive, not reactive. BuildOS extends durations based on expected conditions during the task window โ€” before the weather arrives, not after it causes a delay. This means the schedule is realistic from day one, not optimistic until it gets rained out.

Schedule Recalculation

The schedule recalculates automatically whenever any of the following occur:

Recalculation of a full 200-task project schedule completes in under 500 milliseconds โ€” fast enough that it happens in the background without any loading wait for the user. The updated dates appear in the Gantt chart and task list immediately.

The Gantt Chart

The Gantt chart is the primary schedule visualization for Tom and Mike. It shows:

Task Bars
Each task shown as a horizontal bar spanning its early start to early finish dates. Critical tasks shown in a distinct color. Non-critical tasks show their float as a lighter extension bar.
Critical Path Highlight
All critical tasks are visually linked, making the longest path through the project immediately visible without any manual analysis.
Progress Overlay
Completed percentage is shown as a fill on the task bar. A task 60% complete shows a bar filled 60%, making it easy to see which tasks are ahead or behind schedule.
Dependency Lines
Dependency arrows connect predecessor and successor tasks, showing the logic that drives the schedule โ€” why a task's start date is what it is.

Performance Standards

The schedule engine is engineered to specific performance targets that are enforced automatically on every code change:

OperationPerformance Target
Full CPM calculation โ€” 80-task project< 200 milliseconds
Full CPM calculation โ€” 200-task project< 500 milliseconds
Full schedule recalculation via API< 800 milliseconds (alert threshold: 2 seconds)
Gantt chart load (p95)< 3 seconds
Duration calculation per task (DHSM)< 1 millisecond
Weather overlay per task (SWIM)< 5 milliseconds

Schedule Integrity Guarantees

BuildOS makes a specific, hard guarantee about schedule accuracy: given the same project data as input, the schedule engine will always produce exactly the same dates as output โ€” on any computer, at any time. This is called deterministic scheduling.

This matters because it means the schedule is auditable. If a client or lender questions why a completion date was set, the calculation can be reproduced step-by-step. There are no "it just showed that date" situations โ€” every date has a calculable reason behind it.

This guarantee is enforced by automated tests that run on every code change, comparing the exact output against a known-correct baseline. Any change that causes even a one-day difference in any task's schedule fails the test automatically.