Zepth Rx · Schedule Intelligence

Completion Date Forecasting

Your critical path gives you one date. This gives you the probability of every date, including the one in your contract.

Last updated

Zepth Rx module

Forecasting

AI agent built into the module
Uncertainty measured, not asked forSampling chosen by evidenceCorrelated delayEvery iteration re-runs the network

Overview

A deterministic critical path produces a single finish date. It is the answer to a question nobody should be asking, because it carries no information about how likely it is. Two projects can show the same completion date — on one, nearly every plausible outcome lands within a fortnight of it; on the other, the realistic range runs to five months and that date sits near the optimistic end. The single date is identical. The commercial position is not remotely comparable.

Forecasting replaces “when will it finish?” with “what is the chance it finishes by the date I am contractually exposed on?” — which is the question an owner actually has.

The uncertainty is measured, not assumed

This is where most probabilistic scheduling falls down. The usual approach asks a planner to enter optimistic and pessimistic durations for each activity — producing a forecast built on opinion, at enormous manual cost, anchored to whatever the planner expects.

Zepth Rx does not ask. It measures, from your project’s own record, how long work has actually taken against how long it was planned to take, per trade. Every ratio compares a calendar span with a calendar span, and ratios outside a sane band are rejected as data errors rather than absorbed.

  • Baseline, where one exists. Actual span against the baseline span, and a reconstruction from a working-day count converted onto the activity’s own calendar.

  • First-planned history. Actual span against the span the activity was first planned to take, from the earliest revision it appeared in. This is the rung that makes calibration work on a P6 XER, which carries no true baseline at all.

  • In-progress work, past halfway. Elapsed against expected-so-far, and only past 50% complete, because the observation is right-censored before that.

  • Field productivity, where quantities are tracked. On a P6 or Excel import these are not present, so this source contributes nothing and publishes its own coverage counts rather than quietly returning an empty result.

Delays do not happen independently

Sampling every activity independently is the most common flaw in construction Monte Carlo. Real disruptions are shared — the weather, the subcontractor, the approvals authority — and independent sampling lets those effects cancel out, understating risk systematically.

The copula adds a global correlation across the programme, a stronger one within a group, and an independent component. Three honesty mechanisms sit on top: settings are clamped to a sane range with every adjustment recorded rather than silently applied; an activity with no trade takes only the project-wide correlation, because it has no group to move with; and where named risk drivers already carry co-movement explicitly, the copula is reduced by that amount so a cause is not counted twice.

It grades its own track record

Unusually, the platform scores its own forecasting against its record — how often the next reading landed inside the previous run’s band, whether its P50 drifts consistently in one direction, and its realised error on milestones that have now completed.

And a run-to-run comparison is refused outright when the calibration method or the model version has changed between them. Reporting a methodology change as your project slipping is the most damaging thing a forecasting tool can do.

How it looks

The instruments this module produces, drawn on illustrative data so the method reads clearly.

Figure 3.1 — Calibration provenanceIllustrative
0.8×1.0×1.2×1.4×1.6×1.8×as plannedConcretecalibrated64 obsBlockworkcalibrated41 obsMEP 1st fixcalibrated28 obsFacadecalibrated11 obsLift installproject-wide4 obsLandscapingdomain defaultno datalow — most likely — high, as a multiple of the planned duration
  • Calibrated on this trade’s own record
  • Borrowed from the project-wide pool
  • Domain default — stated, not hidden

The model says where its uncertainty came from, per trade — calibrated on that trade’s own observations, borrowed from a project-wide pool, or a stated domain default. Never silently substituted.

Figure 3.2 — Outcome distributionIllustrative
P10P50 · 4 SepP80 · 27 OctP90Contract date · 30 Junreached in 6% of futuresJunJulAugSepOctNovDecsimulated completion date — 40 binsblack line: cumulative probability

The contract date against the range of outcomes. Percentiles are read nearest-rank, so the live readout and the published figure are the same number.

Figure 3.3 — Milestone confidence bandsIllustrative
JunSepDecMarJunStructure completeon dateFacade watertighton dateMEP energisationP50 +2wPractical completionP50 +7wP10 — P90 confidence band, with P50 marked
  • P10–P90 range (light) and P50–P80 (solid)
  • Contract date

P10–P90 per milestone, against the contract date. The band width is the information a single date cannot carry — two milestones can share a P50 and be nothing alike.

Figure 3.4 — Joint time and cost outcomeIllustrative
contract datebudget11%on time · on budget18%late · on budget9%on time · over62%late · over budget+0d+40d+80d+120d4m8m12mdays beyond contract date →final cost

On-time and on-budget are not independent. Each point is one iteration; the quadrants are split at the contract date and the budget.

The value

Why it matters

A completion date with a probability attached, per milestone, against your contract date.

Uncertainty measured from your own completed work rather than a planner’s optimism and an industry assumption.

The activities that actually drive the outcome — including ones that look comfortable deterministically.

Recovery tested against the same model: what change to which activities would move P80 to a target date.

Capabilities

What you can do

01

Uncertainty measured, not asked for

There is nowhere to type a three-point estimate. The model measures how long work has actually taken against how long it was planned to take, per trade, from your project’s own record — drawing that ratio from up to five sources in strength order.

02

Sampling chosen by evidence

With enough observations for a trade it uses that trade’s measured spread; with more, it stops assuming a shape and resamples the trade’s own histogram directly. Below the threshold it widens to a project-wide pool, then to a stated domain default — and always says which of the three it used.

03

Correlated delay

A bad winter, a struggling subcontractor, a slow approvals authority hit many activities at once. A three-component Gaussian copula models that co-movement, because sampling independently lets those effects cancel and systematically understates risk.

04

Every iteration re-runs the network

Each iteration samples a remaining duration for every incomplete activity and runs a complete forward pass over the real network — logic, lags, calendars, constraints, the data date. Completed work is held at its actuals. The distribution reflects your actual network, including paths that only become critical under stress.

05

Named risk events

Discrete risks in three mechanics — systemic, per-activity and recurring. “What did this risk cost?” is answered by a paired counterfactual: an extra pass per driver with that driver suppressed, reusing the same random draws.

06

Mined risk drivers, arriving disabled

Risk drivers can be mined from your own data — overrun approvals, rework days, categorised delay notes — each with a measured frequency and impact and the working retained. Every one arrives disabled: nothing a machine inferred reaches a claim-facing forecast until a person enables it.

07

Reproducible and resumable

Runs are seeded and every random draw is addressed by its own named stream, so adding a risk driver cannot shift another activity’s samples. Inputs are resolved once, hashed and frozen before a run starts, so splitting the work across windows cannot change the answer.

The workflow

How it actually runs

  1. 1

    Calibrate on completed work

    The model measures actual against planned duration per trade, and states whether each trade was calibrated on its own record, borrowed from a project-wide pool, or defaulted.

  2. 2

    Set the risk register

    Named risk events in three mechanics, plus any mined drivers you choose to enable. Mined drivers arrive disabled.

  3. 3

    Run the simulation

    Each iteration samples remaining durations and re-runs the full critical path over the real network. The run is seeded, and its inputs are frozen before it starts.

  4. 4

    Read the distribution

    P10 / P50 / P80 / P90 per milestone with the confidence band, on-time probability against the contract date, and the activities that actually drove the outcome.

  5. 5

    Test recovery

    What change to which activities would move P80 to a target date, and what that implies for the resources involved.

AI that does the work

How AI changes Forecasting management.

Explains the distribution

Turns a histogram and a set of percentiles into the sentence an owner needs: what the range is, what it is driven by, and how it moved since last month.

Surfaces hidden risk

Activities showing comfortable float deterministically that nevertheless drove the outcome in a meaningful share of futures — invisible to every conventional method.

The model produces no number

Not a date, not a probability, not an impact. The simulation, the percentiles and the sensitivity are computed by deterministic engines; the model narrates, and anything it states that cannot be reconciled against the engine is flagged on screen.

The engineer’s judgment stays in charge; the AI removes the latency and the blind spots.

Best practices

  • Let the project produce evidence before leaning on the forecast. Early on the model falls back to a project-wide spread and then a domain default — it says which, and the forecast sharpens as completed work accumulates.
  • Set the contract date and identify the milestones, or there is nothing for the on-time probability to be measured against.
  • Read the confidence band, not just the P50. Two milestones can share a P50 and be nothing alike.
  • Treat the precision figure as sampling error, not as a claim that the model is right. It says how far P80 would move on a different seed, and nothing more.

Dashboards & reporting

Per milestone: P10, P50, P80 and P90 finish dates, the confidence band, drift from baseline and its trend, and an outcome histogram. Across the project: on-time probability, a criticality index, hidden risk, delay-driver sensitivity as a tornado, and a joint time-cost view. Percentiles use the nearest-rank convention, stated openly, so the live readout and the published figure are the same number.

Live dashboards
Drill-down & filters
Export to Excel / PDF
FAQ

Common questions

Do we have to enter optimistic and pessimistic durations?

No — there is nowhere to type them. The model measures how long your trades have actually taken against how long they were planned to take, from your own project record, per trade.

What happens early in a project, before there is history?

It falls back to a project-wide spread, and below that to a stated domain default — and it tells you which of the three it used, per trade, on screen. The forecast sharpens as the project produces evidence.

Is the simulation just adding up durations along the critical path?

No. Every iteration runs a complete forward pass over the real network — logic, lags, per-activity calendars, constraints and the data date — so the distribution includes paths that only become critical under stress.

Can we model specific risks rather than general uncertainty?

Yes, in three mechanics: systemic, per-activity and recurring. What each one cost is answered by a paired counterfactual — an extra pass with that driver suppressed, reusing the same random draws.

Is a run reproducible?

Runs are seeded and inputs are frozen before they start, so the outcome distribution is reproducible. The forecast is defensible at the distribution level rather than by pointing at one individual iteration, and the model card says so.

Does field productivity feed the calibration?

It is wired end to end, but it needs tracked quantities that a P6 or Excel import does not carry — so on those imports it contributes nothing and publishes its own coverage counts rather than quietly returning an empty result.

Sources

  • AACE International RP 57R-09 — Integrated Cost and Schedule Risk Analysis Using Monte Carlo Simulation of a CPM Model
  • AACE International — the risk-driver method for discrete risk events

Related modules

Zepth is the construction project delivery platform — it runs construction, procurement and asset management on one record, and does the work: reading the drawings, reviewing the submittals, matching the invoices and flagging the risks, with a human sign-off on anything consequential.

See it on your project.

A short, tailored walkthrough on your real workflow — no generic demo.