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:- Samples each activity’s duration and each resource assignment’s cost from its uncertainty distribution.
- Rolls each risk event (does it occur this iteration?) and, if it occurs, samples its cost and schedule impact.
- Sums all costs into a project total, and runs a critical path calculation to get a project finish date.
- 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.
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.
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.
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).
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).Link (dependency) types
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.
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.
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.
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).
- +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 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.

