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.
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.
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
- How to Set Up Spread Profiles and Calendars, the last piece of setup.
- Running the simulation: Risk Analysis.
- Full field reference: Uncertainty Classes.

