Creating and editing tasks & subprojects


A task is a unit of work. You can identify this task and estimate the distribution of outcomes — how long it will take to complete, based on a range of possibilities or a set of estimates.

To create a task, click Add Task at the top of the list. That will create a new entry for the task, and open the panel with options for that task.


A subproject is a collection of tasks that you group together. Subprojects can be useful to organize complex graphs, but they are completely optional. You don’t have to use subprojects.

To create a subproject, click Add Project at the top of the list.

When you create a subproject, the task pane allows you to select dependencies and enter a conditional probability, but there are no distribution options.

To edit the subproject, click the Edit button in the task view. This will switch the list of tasks to the tasks in the subproject. You can see the currently active project or subproject in the top-left of the window.


Any task can have dependencies on other tasks. This means that those other tasks (the dependencies) must be completed before this task can begin.

Imagine that you have two tasks, construction and planning. Planning needs to be completed before construction can begin. So planning is a dependency of construction.

You can model dependencies in the task view by clicking the checkboxes of tasks that must be completed before the current task can start.

To model dependencies, we always start with the dependent task — the second task in the calculation order. The dependent task has a list of tasks that it depends on. You could theoretically model it the other way, starting from the first task, but we think this way makes more sense.

Circular dependencies

If a task is grayed out in the dependency list, that means that adding it would create a circular reference. The type of graph we are building does not support circular references, so we don’t let you add circular dependencies.

If you don’t expect a dependency to be circular, but it’s grayed out, try removing other dependencies until you see it become selectable. That will tell you which task is causing the loop.

Implicit dependencies

If a task in the dependency list is colored orange, that means it’s an implicit dependency; it’s a dependency of a dependency. This can be easier to see in the graph.

Adding implicit dependencies is not going to affect the calculation. It just adds unecessary lines to the graph. Still, in some cases it may be useful to show a logical relationship so we leave the ability to select implicit dependencies.

Conditional probability

We include the ability to assign a probability to each task, which means “what is the likelihood that this task will happen at all”?

You might have tasks that are likely to occur, or unlikely to occur, and this setting tries to model that. You can assign any probability between 0% and 100%. If you assign a probability, you will be able to see it in the detail chart on the graph page — there will be a number of zeros in the graph in addition to the random distribution.

If you don’t want to assign that kind of probability to tasks, just leave the field blank and we will treat that as “always calculate this task”.

The conditional probability is completely independent of the task distribution.


The distribution section selects the random distribution to use when modeling a task. See the next section on distribution parameters for some more information about the supported distributions.

You can select discrete or continuous sampling for each task.

Discrete and continuous sampling

Discrete sampling means we select whole numbers any time we generate a random value. The value could be 1, 2, 3, but never a fraction.

Continuous sampling samples real numbers, and can be any value like 10.2321.

Which sampling method to use depends on how you want to model your project. It also depends on what kind of unit you are using. If you are modeling hours or days, for example, it might not make sense to be able to select 3.1 or 3.2, because you don’t really split up time like that.

If you are modeling months or years, it might make sense to use continuous sampling for creating fractional values.

Distribution parameters

After you select a distribution, the next step is to enter parameters for that distribution.

Constant distribution parameters

A task with a constant distribution always returns the same value. It’s not random. Just enter the value you want.

Uniform distribution parameters

A task with a uniform distribution will select randomly between the minimum and maximum values, inclusive (meaning it’s possible to select the minimum or maximum value). In a chart the uniform distribution usually looks like a flat line across the range of values.

Triangular distribution parameters

The triangular distribution is used for random sampling when you know the range of possible outcomes (the min and max), and you also have an idea of the most likely value.

A graph of a triangular distribution looks like a triangle, with the peak at the most likely value.

PERT distribution parameters

The PERT distribution is a lot like the triangular distribution, except that instead of the sharp lines of the triangle, it creates a smoother curve and a rounded peak around the most likely value.