Skip to main content

Overview

The Dash360 Monte Carlo runs on the Risk Analysis page (Risk > Risk Analysis). It is a single, unified engine: one set of simulation runs produces both the Cost distribution and the Schedule (project finish date) distribution at the same time, so the two views are always consistent with each other. Each press of Run performs thousands of independent “iterations.” In every iteration the engine:
  1. Samples each activity’s duration and each resource assignment’s cost from its uncertainty distribution.
  2. Rolls each risk event (does it occur this iteration?) and, if it occurs, samples its cost and schedule impact.
  3. Sums all costs into a project total, and runs a critical path calculation to get a project finish date.
Recording those two numbers across every iteration produces the cost histogram and the finish-date histogram, plus the cumulative-probability “S-curves” and the percentile tables (the built-in rows are P10, P50, P70, P75, P80, and P90, plus any custom percentile you add). Two run controls shape the whole simulation:
  • Iterations: how many scenarios to simulate (more iterations gives a smoother, more stable distribution).
  • Random Seed: the starting point for the random number generator. Re-running with the same seed and the same inputs reproduces the exact same results, which makes a run auditable. Leave it blank for a fresh random seed each time; the seed actually used is shown under the chart and can be reused.

Shared concepts (apply to both Cost and Schedule)

Simulation modes

A run can isolate where the variability comes from: The mode is echoed in the chart subtitle so the result is never ambiguous.

Distribution methods

Every uncertain input (an uncertainty class, or a risk’s impact) is sampled from one of four shapes: If an Uncertainty Class has its Min, Most Likely, and Max entered out of order, the engine sorts them before sampling, so a mis-keyed class will not error (but it also will not warn). This auto-sort applies to Uncertainty Classes only; a risk impact entered with its Min greater than its Max is not reordered. If a PERT or Triangular input is missing its Min or Max, it falls back to the Most Likely single point.

Risk vs Mitigated Risk

The engine produces two distributions:
  • Risk (the unmanaged, pre-response state): the project before any risk response actions are applied.
  • Mitigated Risk (after planned responses): the project after the planned responses are applied.
The engine always computes both a Risk and a Mitigated Risk distribution. When at least one risk has a response that changes its outcome, both curves are shown so you can see how much the response plan buys you; if no risk is mitigated, only the Risk curve appears. The Mitigated Risk curve is the one used for contingency and the WBS rollup. (These two labels are configurable per project; they default to Risk and Mitigated Risk.)

Which risks are included

The Risk Analysis page has a Status filter and a Classification filter (the floating filter bar) that decide which risks enter the simulation. Both the Monte Carlo and the Scenario Planner use the same selection, so the planner always shows exactly the risk set being simulated.
  • Status defaults to Active. You can add Proposed, Realized, Retired, or Deprecated.
  • Classification defaults to Threats Only. You can switch to Opportunities Only or All.
Threats add cost and extend the schedule (positive impact). Opportunities reduce cost and pull the schedule in (negative impact).

Percentiles and the S-curve

The cumulative-probability S-curve answers “what is the chance the outcome is at or below this value?” A percentile (for example P80) is the value you have an 80% chance of not exceeding. P10 is optimistic, P50 is the median, P80/P90 are conservative. Use the checkboxes in the percentile tables to overlay reference lines on the chart, or + Add to plot any custom percentile.

Uncertainty: the Uncertainty Cascade

Estimating uncertainty is defined by Uncertainty Classes and assigned through the Uncertainty Cascade on the Risk Analysis page.

Uncertainty Classes

An Uncertainty Class is a named distribution defined as percentage factors of the deterministic value, with a chosen distribution method. For example, a “Conservative” class with Schedule factors 75 / 100 / 105 means an activity can finish as fast as 75% of its planned duration and as slow as 105%. Each class holds separate Cost and Schedule factors, so the same class can shape cost differently from duration:
  • Cost factors (Min / Most Likely / Max %) scale a resource assignment’s cost.
  • Schedule factors (Min / Most Likely / Max %) scale an activity’s duration.

The cascade and inheritance

Classes are assigned down a hierarchy: Project > WBS > Work Package > Activity > Resource Assignment. An assignment at any level cascades down to everything beneath it, and a more specific level overrides a less specific one. In the cascade grid:
  • A lock icon marks a row with its own explicit assignment.
  • An italic row is inheriting from a parent.
  • The Off position (the “Deterministic (single point)” class) stops inheritance and forces no spread for that branch.
An activity or resource assignment with no class anywhere up its chain uses a built-in deterministic fallback (single point, no spread), so unconfigured items simply contribute their planned value.

Risk events

A risk event is a discrete thing that may or may not happen. In each iteration the engine draws a single random number per risk and compares it to the risk’s probability to decide whether it occurs. If it occurs, the engine samples the risk’s cost and schedule impact from its distributions.

Handling strategies (Risk vs Mitigated Risk)

How the Mitigated Risk impact is derived depends on the risk’s Risk Handling Strategy: The same random draw governs whether the risk fires on both the Risk and Mitigated Risk sides in a given iteration, so the two distributions stay correlated and comparable.

Response actions

For Mitigate and Enhance risks, individual Response Actions can each carry a Probability Reduction, a Cost Reduction, and a Schedule Reduction. Active actions reduce the risk’s Mitigated Risk probability and impact. (The Scenario Planner, below, can turn individual actions on and off.)

Scenario Planner

A saved scenario lets you ask “what if?” without changing the underlying risk data. A scenario can:
  • Turn specific risks off (a deactivated risk contributes nothing: its probability becomes zero for that run).
  • Turn specific response actions on or off for Mitigate risks (so you can model a partial or expanded response plan).
When a scenario is selected for a run, the engine applies those on/off choices before sampling. An action left at its default stays active; only the changes you make are stored, and the engine treats every in-scope action as active unless the scenario explicitly turns it off.

Cost specifics

Baseline and cost sampling

The deterministic baseline is the sum of the selected cost class’s resource-assignment costs (Budget by default) at their planned values (the vertical line on the cost chart). Each iteration samples every resource assignment’s cost from its Cost Uncertainty Class, then adds the sampled risk-event cost contributions to produce that iteration’s total cost.

Cost Overlay (cost that scales with duration)

Normally cost and duration are sampled independently. Cost Overlay links them: when an activity (or resource assignment) is flagged as an overlay, a sampled increase in that activity’s duration scales its cost up by the same ratio. This captures the common reality that a task running long also costs more.
  • The flag lives on the activity (“Cost scales with duration”), with a per-resource-assignment override of Inherit / Yes / No.
  • The scaling uses the iteration’s uncertainty-only duration ratio (so it does not double-count the risk-event impact).

Correlation (shared random draws)

To avoid unrealistically independent results, the engine shares one random draw between an activity’s duration and the costs of the resource assignments on that activity (and a shared draw per work package). So when an activity is sampled “long” in an iteration, its associated costs tend to be sampled “high” in the same iteration. This positive correlation widens the combined distribution in a realistic way.

Cost contingency and its decomposition

Cost contingency at a confidence level is that percentile minus the deterministic baseline (for example, P80 cost minus baseline). The Contingency Decomposition panel breaks the contingency into independent sources at the chosen confidence level: Each source is estimated by running the same iterations through that source alone, so the parts may not sum exactly to the combined contingency; the gap is the Interaction line.

Schedule specifics

The schedule simulation builds an activity network and runs a Critical Path Method (CPM) calculation in every iteration on that iteration’s sampled durations.

The CPM calculation

A forward pass computes early start/finish dates from the project start (or the data date for in-progress projects); a backward pass computes late dates and total float. The project finish date is the latest finish among the activities that actually drive the schedule. Total float is tracked so the engine can report each activity’s criticality (the share of iterations in which it sat on the critical path). The network honors three relationship types between activities: Start-to-Finish (SF) relationships are not modeled and are excluded. SF links are rare and usually a modeling error; an activity whose only predecessor is an SF link will be scheduled from the project start, which can make its dates look optimistic. Convert SF links to a normal Finish-to-Start link for accurate results.

Activity types

Not every activity is sampled or drives the finish date:

In-progress projects

For a project with status, the schedule is calculated from the data date (the snapshot’s status date) forward; completed work is not re-simulated. An activity’s remaining duration is its original duration scaled by the percent complete (an activity at 100% contributes zero remaining duration and lets its successors proceed from the data date).

Calendars

Durations and lags are stepped in working time, not raw calendar days:
  • Each activity uses its own assigned calendar if it has one.
  • If not, it uses the project’s default calendar.
  • If no default calendar is set, it falls back to a 5-day work week (Monday through Friday).
  • A lag on a dependency is stepped on the predecessor’s calendar.
Per-activity calendars currently affect this risk analysis only (not the Schedule Viewer). Float across activities on different calendars is approximate and may differ slightly from other schedulers.

How risk schedule impact reaches the finish date

A risk’s schedule impact has to land somewhere on the network to move the finish date:
  • A risk mapped to one or more activities extends those activities’ durations. With Absolute mapping the full impact is applied to each mapped activity; with Relative mapping the impact is split by each mapping’s weight.
  • A risk with no activity mapping applies its sampled delay directly to the project finish (threats push it out, opportunities pull it in). This way an unmapped risk still affects the schedule rather than being silently dropped. Multiple unmapped risks add in series, which is intentionally conservative.
A mapped risk only moves the finish when at least one of its mapped activities is on the critical path; a risk mapped only to activities with float will not change the finish.

Constraints are ignored

The simulation intentionally ignores schedule constraints (Start/Finish No Earlier/Later Than, Must Start/Finish On, As Late As Possible). A constrained date never moves, which would distort the analysis; remove constraints for accurate schedule risk results.

Schedule contingency and its decomposition

Schedule contingency is the number of days between the deterministic baseline finish and the finish date at the chosen confidence level. It is shown primarily in calendar days (unambiguous, and consistent with the finish dates and the Delta column), with the working-days equivalent alongside. Working days is counted on the project’s default calendar (its work week and holidays), falling back to a plain five-day week only if no default calendar is set; because it is anchored to that one calendar, calendar days is the safer figure when the driving path spans multiple calendars. Its decomposition mirrors the cost side, with three sources (there is no cost-overlay analog for schedule):

Reading the results

Percentile tables and the Mean

Each row of the Percentile Summary (cost) and Percentile Details (schedule) shows the Risk and Mitigated Risk value at that confidence level. The cost tables also show the Reduction and % Improved between Risk and Mitigated Risk; the schedule table shows the Delta in days.

Monte Carlo by WBS, and why percentiles do not sum

The Monte Carlo by WBS rollup shows the Mitigated Risk cost distribution rolled up the WBS tree. Within every single iteration the dollars roll up exactly (a parent equals the sum of its children), which is why the Mean column ties out top to bottom. The percentile columns do not sum, and should not: a percentile is found by re-sorting each row’s own iteration values, and a parent’s P80 comes from a different iteration than each child’s P80. Because risks do not all hit at once, a parent’s upper percentiles are lower (and its lower percentiles higher) than the sum of its children. Capturing that diversification is the entire point of running Monte Carlo at the project level. When you need a column that ties out across the tree, use the Mean.

Key takeaways

  • The Mean is additive (it rolls up); percentiles are not.
  • A wider distribution means more uncertainty.
  • The gap between the Risk and Mitigated Risk curves is the value of your response plan.
  • Project-level contingency is smaller than the sum of part-level worst cases because of diversification, and that is correct.

Per-node distributions and bucketing

The Risk Analysis page lets you drill into the Monte Carlo result for any single node from the Reports column of the Uncertainty Cascade (Cost, Schedule, and Schedule Delay Drivers). Those per-node views are stored differently from the project total, and it helps to know how. The project result keeps every iteration, so the project charts and percentiles are exact. The per-node drill-downs (WBS, Work Package, Activity, Resource Assignment) instead keep a compact summary of each node’s distribution: a 30-slot histogram (think of it as a tally of how many iterations landed in each slice of the range) plus the exact mean, minimum, maximum, and deterministic value. A real project has hundreds of nodes, so storing every iteration for every node would make a saved simulation enormous; the summary keeps it small, at a small and well-understood cost in precision. What that means when you read a sub-node chart:
  • The mean, minimum, maximum, and deterministic values are exact at every node.
  • The project percentiles are exact.
  • A sub-node’s percentiles are read from its histogram, so they can differ from the exact value by roughly 0.1% to 0.5% of that node’s own range (about a day on a multi-year schedule node, or a few hundredths of a percent on a large cost node). The overall shape of the distribution is preserved.
  • A node with no variance (for example a fixed-price resource, or a milestone) shows its single exact value at every percentile, with no artificial spread.
If you need an exact percentile for a specific sub-node, read the project-level result (always stored in full), or focus a run on that scope.

Correlation (Pro)

By default every activity and every risk is sampled independently each iteration. Independent draws tend to cancel out (one activity runs long while another runs short), which understates the real spread of the total. Correlation lets you tell the simulation that certain items move together. There are two independent correlation surfaces:
  • Activity correlation (on the Cost and Schedule Uncertainty tree): pick a driving activity, then select the activities that should follow it. Each iteration the driven activities inherit the driver’s uncertainty draw, so they run long or short together. Because an activity’s cost draw follows its schedule draw, correlated activities move together on both cost and schedule.
  • Risk correlation (on the Risk Register): pick an independent risk, then select the risks correlated to it. Correlated risks tend to occur together and to be large together (both the occurrence and the impact draws are correlated).
Each correlation group has a single coefficient from -100% to +100%:
  • +100%: the followers take the driver’s draw exactly (they fully move together).
  • A positive value below 100%: the followers move partly with the driver and partly on their own.
  • 0%: independent (no effect).
  • A negative value: the followers tend to move opposite the driver.
Correlation is applied at the random-draw level using a single-factor Gaussian copula, so the shape of each item’s own distribution is preserved. Positive correlation widens the total cost and finish-date distributions (higher P80 and P90) because related items no longer cancel out, which is the more realistic result. The graphs keep the same shape and chart types; only the numbers shift. In this release each activity or risk can belong to only one correlation group, and an item cannot be both a driver and a follower. Correlation is a Pro feature.
Correlation links like to like (risk to risk, or activity to activity). It is not the same as Activity Mapping, which routes a risk’s schedule impact to activities. For a plain-language walk-through of all three features, when to use each, and how they relate, see Correlation and Activity Mapping.

Assumptions and caveats summary

  • Schedule constraints are ignored; remove them for accurate results.
  • Start-to-Finish (SF) links are excluded; convert them to Finish-to-Start.
  • Activities with no calendar use the project default, or a 5-day work week if none is set.
  • A risk’s schedule impact only moves the finish if it is mapped to a critical-path activity, or is unmapped (in which case it extends the project finish directly).
  • Per-activity calendars affect the risk analysis only, not the Schedule Viewer; mixed-calendar float is approximate.
  • Components in the contingency decompositions are estimated independently and may not sum exactly to the combined contingency; the difference is the Interaction / correlation line.
  • Per-node distributions (WBS / Work Package / Activity / Resource Assignment, from the Reports column) are stored as compact histogram summaries, so their percentiles are approximate (within about 0.5% of the node’s range); the project result is stored in full and is exact.