Quantify uncertainty with Monte Carlo simulations. Fit distributions to expert judgment, model correlated variables, and generate thousands of scenarios from a few inputs.
Highlight functions
CreateMetalogDistribution
Fits a Metalog distribution — a highly flexible parametric family that can match almost any empirical shape using only a few quantile estimates. The analyst's alternative to assuming normality.
from analysistoolbox.simulations import CreateMetalogDistribution
dist = CreateMetalogDistribution(
quantile_probabilities=[0.10, 0.50, 0.90],
quantile_values=[50, 100, 200],
variable_name="Project Cost ($K)"
)
SimulateNormallyDistributedOutcome
Standard Monte Carlo sampling for normally distributed variables with visualization.
from analysistoolbox.simulations import SimulateNormallyDistributedOutcome
results = SimulateNormallyDistributedOutcome(
mean=100,
standard_deviation=15,
number_of_simulations=10_000
)
CreateSIPDataframe
Creates a Structured Inputs and Probabilities (SIP) DataFrame — the starting point for multi-variable Monte Carlo models. Each row is one simulation run.
CreateCorrelatedSIPs
Generate correlated random variables to preserve real-world dependencies in Monte Carlo models (e.g., cost and schedule tend to move together).
SimulateCountOutcome
Poisson-distributed count simulation — models rare event frequencies.
Use cases
- Project cost and schedule risk analysis
- Epidemiological simulation (infection counts, outbreak probabilities)
- Financial risk: portfolio return distributions
- Intelligence analysis: uncertainty quantification in assessments