Skip to main content
Risks in the register are one source of variability. The other is estimating uncertainty: the fact that a duration or a cost is an estimate rather than a fact. Uncertainty classes are how you describe that spread, and the Monte Carlo simulation samples from them.
This setup pays off on Risk Pro. Uncertainty classes can be created and assigned on either tier, but the features that consume them (the Cost and Schedule Uncertainty cascade, and the Combined and Uncertainty Only simulation modes) are Pro. On Lite the simulation is locked to Risk Events Only, so classes you assign will not change its results.Setting them up on Lite is still worthwhile if you expect to upgrade, because the assignments are already in place when you do. See Getting Started with Risk for the full tier comparison.

Seed the standard classes

1

Open the Uncertainty Classes tab

Go to Admin > Projects, click the pencil icon on the project, and select the Uncertainty Classes tab.
2

Click Add Default Classes

This seeds the standard ladder of classes in one action. It skips any class whose name already exists, so it is safe to run on a project that already has some defined.
For most projects this is enough to get to a first simulation. Add custom classes only where the standard ladder does not describe your estimates.

Add a custom class

1

Click Add Uncertainty Class

The form opens below the table.
2

Set the identity fields

Choose a Resource Type (All, Labor, Non-Labor, or Travel) and a Name. The name is what estimators see in the class pickers.
3

Choose a Distribution Method

PERT for most estimates, Triangular for a simpler and more conservative shape, Uniform when any value in the range is equally plausible, or Single Point to switch uncertainty off while keeping the class assigned.
4

Enter the factors

Schedule and cost each take a Min, Most Likely, and Max, expressed as a percentage of the estimate, where 100 means no change. A schedule set of 80 / 100 / 150 samples a 10 day activity between 8 and 15 days.
5

Click Save Uncertainty Class

The class becomes selectable on activities and resource assignments.
A class can carry spread on one dimension and none on the other. Leaving cost at 100 / 100 / 100 while the schedule runs 80 / 100 / 150 is a perfectly normal setup for a class that only affects duration.

Map basis codes to classes

Estimators already record how each cost was arrived at, in the basis code. The basis code map turns that into a default uncertainty class, so a vendor quote can carry tighter bounds than an engineering judgment without anyone assigning classes line by line.
1

Scroll to Basis Code Defaults

It sits below the classes table on the same tab.
2

Pick a Cost class and a Schedule class for each basis code

Leave a dropdown blank where you do not want a default. Those assignments are simply left unassigned.
3

Save

The map is stored against the project.
Saving the map does not assign anything on its own. It only records the defaults. Nothing changes on any resource assignment until somebody runs the apply step below. This catches people out, because the map looks like it has taken effect the moment it is saved.

Apply the map across a work package

1

Open the Budget Form

Go to Estimating > Budget Form and select the work package.
2

Run Apply Uncertainty to Work Package

Each resource assignment receives the class mapped to its basis code, and activities take the class matching the most common basis code among their resource assignments.
3

Check the count in the result message

It reports how many assignments were newly given a class, which is the quickest confirmation that the map is wired the way you expected.
The apply step skips anything already set. A resource assignment or activity that already has an uncertainty class keeps it, so deliberate choices made by an estimator are never overwritten by a later bulk apply.

Next