Engine · Post-award · BETA

Forecast the slip before it slips.

Runs a CPM forward/backward pass over your schedule, then samples activity durations from a triangular distribution driven by real risk data — late procurement, stale RFIs, pending COs, overdue submittals. 1,000 trials. Returns p50/p90 completion bands, named drivers ranked by contribution, and pull-forward actions with their expected day-savings. Re-runs automatically on every tracker event.

15–30s
per simulation
1,000
Monte Carlo trials
p50 / p90
completion bands
Business
plan tier
01 · What it does

Drivers, not vibes. Probabilities, not gut feel.

Every risk on the project is a named row with a probability and an impact-days estimate. Late procurement on switchgear (32-week lead time, 8 weeks float consumed) is one row. An RFI on Floor 12 demising open 18 days against an architect median of 8 is another. A pending CO with cost impact still in owner review is a third. The forecast is the probability-weighted critical-path delay across every active driver.

The engine runs a CPM forward/backward pass over schedule_items (predecessors + durations as imported from P6, MS Project, or native), then samples each activity duration from a triangular distribution — min/most-likely/max derived from the named drivers feeding that activity. One thousand trials. The completion-date distribution is the output. PMs can override any driver's probability; the forecast recomputes live without re-uploading the schedule.

02 · When to run it

Pre-mobilization. Every OAC. Every owner-update Friday.

Schedule Risk is the engine that turns a flat Gantt chart into a forward-looking forecast. Run it at the moments where committing to a date matters.

03 · What feeds it

The schedule, plus every signal the platform already collects.

The schedule is the structure. The trackers are the live state that turns the structure into a forecast. No separate uploads — the engine reads from the project's existing data.

Required

Schedule baseline

P6 .xer / MS Project .mpp / native Trueleveler schedule_items with predecessors and original durations. The engine runs CPM on whatever you have.

Auto

Procurement state

ROJ vs forecast delivery. Items with lead-time slip become driver rows tied to the activities they feed (switchgear → energization, RTU → commissioning, etc.).

Auto

RFIs

Open RFI age vs this project's architect median response time. RFIs older than median become drivers with rising probability as age increases.

Auto

Submittals

Review backlog by trade. A 12-submittal backlog on the architect's desk against a 10-day median review is a driver on every dependent activity.

Auto

COs

Pending owner approval with time impact. Approved adds days; rejected adds claim-prep time; pending sits as a driver with owner-side latency probability.

Auto

Weather + meeting risks

14-day NWS forecast tied to outdoor activities (concrete pours, roofing, sitework). Severity-tagged meeting risks (per Voice Synthesis) get auto-categorized as drivers.

04 · What you get back

The distribution. And what to do about it.

Sample output from a 14-floor commercial office tower at month 7 of 18:

P10EARLYSubstantial completion: 12-Sep-2027 · 1,000 trials · -14 days vs baseline · Requires recovery on Floor 12 demising AND switchgear arrival on current promise date. 7% of trials
P50MEDIANSubstantial completion: 02-Oct-2027 · +6 days vs baseline · Contract date 26-Sep-2027. 6-day exposure at the median. 50% probability
P90LATESubstantial completion: 28-Oct-2027 · +32 days vs baseline · $184K LD exposure at $5,750/day liquidated damages. 10% tail
D1DRIVERSwitchgear delivery slip · -22 days CP contribution · Promise date 8/14 vs ROJ 7/22 (lead time 32 wk, current week 28). Contributes to energization milestone on CP. Probability of further slip: 38%. P(impact) 38%
D2DRIVERRFI-0042 demising STC · -8 days CP contribution · Open 18 days; architect median 8 days. Affects Floor 12–14 demising rough-in, which feeds finishes float. Probability of 5+ day extension: 64%. P(impact) 64%
D3DRIVERSubmittal backlog · arch reviewer · -5 days · 14 open submittals; median 10-day review; 3 are critical-path predecessors. Probability of cumulative slip: 51%. P(impact) 51%
D4DRIVERWeather · concrete pours Aug 12–19 · NWS 14-day shows 60% rain probability on 2 pour days. Each pour delay = 1 day. P(impact) 60%
ΣPULL-FORWARDTop action: Expedite switchgear with 2-week premium ($14K) → -10 expected p50 days → eliminates LD tail in 78% of trials. ROI ratio 13:1. Recommended
Pull-forward actions

The engine doesn't just show the slip — it ranks the cheapest moves that compress the p50/p90 bands. Expedite premiums, re-sequence opportunities, owner-side decision dates that unblock float. Each action has expected day-savings, expected cost, and an ROI ratio. The PM walks the list and picks.

05 · How it chains

The forecast routes back into the work.

A risk model is only useful if the actions surface where decisions get made. Schedule Risk's drivers and pull-forward actions chain straight into the engines that consume them.

06 · FAQ

Things everyone asks first.

What schedule formats are supported?

P6 .xer and Primavera XML are native. MS Project .mpp and .xml parse cleanly. Native Trueleveler schedule_items (the platform's own table) is the fastest path because tracker linkage is automatic. Asta Powerproject and Synchro export to P6 XML — that path works. Excel-as-schedule files are supported with a manual predecessor-mapping step.

Why a triangular distribution instead of beta or PERT?

Triangular gives a defensible min / most-likely / max anchored to real driver data rather than the curve-fit math behind beta. Construction PMs read "min 8 days, likely 12, max 18" faster than they read a beta's alpha/beta parameters. The 1,000-trial sample size is enough to stabilize p50/p90 within ~1 day on most projects.

Does the engine require a perfectly-built CPM schedule?

No. It works on whatever predecessor logic you have. If the schedule has open ends or missing predecessors, those activities get flagged in the output rather than silently treated as unconstrained. The simulation runs on the subset of activities with valid logic; the report names the un-modeled gaps so the scheduler can fix them.

How is the architect/owner median response time computed?

From this project's historical RFI tracker. Once the project has ~12 closed RFIs to the same architect, the engine computes the empirical median response time and uses that as the driver baseline. Before that, it falls back to industry medians by project type (commercial 10 days, healthcare 14, federal 21). The empirical baseline replaces the industry default the moment enough data exists.

Can the owner see this forecast?

Yes — the owner-reporting export inherits the p50/p90 bands and the top 3 drivers (redacted to the level the contract requires). The full driver list with probability math stays internal. Both views update from the same engine run.

What about resource constraints (crew, equipment)?

v1 models duration-driven critical path. Resource leveling (crew shortages compressing crashable activities) is on the v2 roadmap and runs against the Equipment + Crew trackers. For v1, severe crew shortages get flagged through Daily Log Synth and surface as drivers, but the engine isn't currently running resource simulation on top of CPM.

Drop a P6 file. See the p50/p90 forecast in 30 seconds.

Bring a live project schedule plus a screenshot of the procurement/RFI state to a 15-minute call. We'll run the simulation on screen, walk the named drivers, and you keep the forecast.

Start free — 14 days, no card →