Skip to content
Monte Carlo Budgeting

icon picker

Welcome to the Monte Carlo Budgeting Coda Doc. This tool allows one to use a Monte Carlo simulation to determine the likelihood of completing a project within a budget given task time estimates it is provided with. Watch the video below for a demonstration of how to use it or jump straight to .

Getting Started

All you need to do to start utilizing this tool is make a copy of this document, which can be done using the button below.
Copy this doc

How to Use

This is a simple to use document where you enter data on the Input Page and view results on the Reports Page.

Use the Table to enter your tasks. Each row represents one task and contains information such as the task’s name, the best and worst case estimates for task duration, an indication if the task is optional, and any notes you would like to make for yourself about the task.
Use the table to indicate the cost of working per week, and the budget the project should work within.
Use the table if you would like to use non-default values for the high and low risk factor values, as well as the number of simulations to run. In general 1,000 or less should run in under 45 second. If you are wanting a bit more precision 10,000 takes a couple of minutes; whereas any more than that could take a decent amount of time.
Finally, use the “Generate Reports” button to run the simulation.
At any point you can click “Reset Inputs” to clear any data you have entered

The table shows you the chance of a task and all tasks before it being completed within the budget you provided.
The table then shows you an overview of the chances of completing all tasks, as well as exclusively those marked as mandatory.
The table then shows you different percentiles of likely cost of your project.
Finally, the Histogram visually shows you the distribution of time and cost likelihoods.

How it Works

This section gives a step by step overview of how the pack runs through a Monte Carlo Simulation.


The pack formula runMonteCarlo() takes in the task data (low and high time estimates for each task) and simulation settings (budget, cost per time unit, risk factors, number of samples (N), and number of histogram buckets) provided by the user.
Using this data and the library, a value is sampled from a beta distribution for each task.
The total estimate is calculated by summing the sampled values for each task.
Steps 2 and 3 are repeated N times to form a set of N samples forming a beta distribution
The pack checks how many of these samples fit within the budget to determine the likelihood of completing all of the tasks.
Based on the range of samples and how many histogram buckets are requested (default is 10), the pack calculates the percentage of samples that fall within each bucket.
Separately, various percentiles are calculated to give the user an idea of the likelihood of the project being completed at a variety of price points.


The doc runs through the tasks provided in one by one and runs the runMonteCarlo() formula for all tasks up to and including the current task.
The results of each task-level formula execution are used to populate the for each set of tasks as well as the for mandatory tasks only and for all tasks.
The results of the formula execution containing all mandatory tasks used to populate the table and the histogram.

Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
) instead.