Saltar al contenido principal

Simulations

ProBeya Simulations brings Monte Carlo probabilistic forecasting to your project portfolio. Instead of single-point schedule estimates that invariably miss, simulations run thousands of iterations with three-point estimates (optimistic, most likely, pessimistic) to produce probability distributions for project completion dates and costs -- giving PMO teams the confidence levels they need for governance decisions.

Overview​

Traditional project scheduling uses single deterministic estimates that create a false sense of precision. A task estimated at 10 days might take 7 or 15 depending on resource availability, complexity surprises, and external dependencies. Monte Carlo simulation addresses this by modeling each task's duration as a probability distribution and running thousands of iterations to reveal the range of likely outcomes.

ProBeya's simulation engine integrates directly with the PPM module's WBS (Work Breakdown Structure), allowing project managers to define three-point estimates on WBS elements, auto-calibrate from historical data, run simulations, compare scenarios side-by-side, and present probabilistic forecasts in governance meetings.

Getting Started​

  1. Navigate to simulations -- Open a project and go to the Simulations tab at /{workspaceSlug}/{projectSlug}/simulations.
  2. Set three-point estimates -- For each WBS element, define optimistic, most likely, and pessimistic duration estimates.
  3. Auto-calibrate (optional) -- Use the auto-calibration feature to fit estimates from historical actual durations of completed tasks.
  4. Create a simulation -- Click "New Simulation", configure parameters (iterations, confidence levels, cost inclusion), and submit.
  5. Review results -- Once the simulation completes, explore the results across six tabs: Overview, Milestones, Sensitivity, Distribution, Scenarios, and Audit.
  6. Compare scenarios -- Create additional simulations with different assumptions and use the comparison view to evaluate alternatives.

Key Concepts​

  • Three-Point Estimate -- An estimation technique using three values per task: optimistic (best case), most likely (expected), and pessimistic (worst case). These define the probability distribution for the task's duration.
  • Distribution Type -- The statistical distribution used to model task duration variability. Supported types include triangular (simple, symmetric-ish), PERT/beta (weighted toward most likely), and normal (Gaussian).
  • Iteration Count -- The number of simulation runs. More iterations yield more precise probability distributions. Typical range: 1,000 to 100,000.
  • Confidence Level -- The probability percentile for a forecast. A P80 (80th percentile) completion date means there is an 80% chance the project will finish by that date.
  • Sensitivity Analysis -- Identifies which tasks contribute most to overall schedule variability, helping project managers focus risk mitigation on the highest-impact items.
  • Auto-Calibration -- Automatically fits three-point estimates from historical actual durations of completed WBS elements, providing an evidence-based starting point.
  • Scenario Override -- Custom adjustments applied to specific tasks within a simulation: modified estimates, duration multipliers, cost multipliers, or task removal for what-if analysis.

How It Works​

Three-Point Estimate Management​

The updateWbsEstimates and batchUpdateEstimates procedures allow project managers to set optimistic, pessimistic, distribution type, and standard deviation values on WBS elements. Since the WBS schema does not have dedicated columns for these fields, estimates are stored in the simulation config's distributions JSONB. The getProjectEstimates procedure returns all WBS elements with their current estimate metadata merged in.

Auto-Calibration​

The auto-calibration engine analyzes completed WBS elements that have both planned and actual durations. It fits a statistical distribution to the historical variance and suggests three-point estimates for tasks that lack manual estimates. The getCalibrationPreview procedure provides a dry-run showing how many tasks would be calibrated and sample distribution fits before committing.

Simulation Execution​

When a simulation is created:

  1. A simulation record is inserted with status pending
  2. The simulation is enqueued for execution via the worker
  3. The worker runs the configured number of iterations, sampling task durations from their probability distributions
  4. Results are written to the ppm_simulation_results table, partitioned by type (schedule, cost, milestone)
  5. The simulation status updates to completed (or failed if an error occurs)

Progress is tracked via the getSimulationProgress procedure, which returns the current percentage.

Results Dashboard​

The simulation results page provides six analytical views:

TabContent
OverviewSummary statistics: P50, P80, P90 completion dates; expected vs. baseline comparison
MilestonesPer-milestone probability distributions and confidence intervals
SensitivityTornado chart showing which tasks contribute most to overall variance
DistributionHistogram of simulated completion dates with percentile markers
ScenariosScenario-specific results when overrides were applied
AuditSimulation parameters, input assumptions, and execution metadata

Scenario Comparison​

The compareSimulations procedure allows side-by-side comparison of 2-5 simulations. This enables what-if analysis: "What if we add two resources to the critical path?" vs. "What if we descope the secondary deliverable?" Each scenario is a separate simulation with different overrides, and the comparison view aligns their results for direct evaluation.

Configuration​

Simulation Parameters​

ParameterDescriptionDefault
IterationsNumber of Monte Carlo iterations10,000
SeedRandom seed for reproducible resultsAuto-generated
Confidence LevelsPercentiles to calculate (e.g., P50, P80, P90)[50, 80, 90]
Include CostWhether to simulate cost distributions alongside scheduleOff
Scenario LabelDescriptive name for the simulation scenarioOptional

Estimate Fields per WBS Element​

FieldDescription
Optimistic DurationBest-case task duration (days)
Most Likely DurationExpected task duration (base WBS duration)
Pessimistic DurationWorst-case task duration (days)
Distribution Typetriangular, pert, or normal
Duration Std DevStandard deviation (used with normal distribution)

Scenario Overrides​

Override TypeDescription
Custom EstimateReplace a task's three-point estimate with specific values
Duration MultiplierScale a task's duration by a factor (e.g., 1.5x for risk)
Cost MultiplierScale a task's cost by a factor
Remove TaskExclude a task from the simulation (descoping analysis)

Permissions​

RoleAccess
Organization Owner / Tenant AdminFull access to all simulations across all projects
Project ManagerCreate, run, and view simulations for their projects
PMO / Portfolio ManagerView and compare simulations across the portfolio
Team MemberView simulation results (read-only)

All simulation procedures use orgProcedure for multi-tenant isolation. Simulation results are linked to specific projects and inherit the project's access control.

Tips & Best Practices​

Start with auto-calibration

If your organization has historical project data in ProBeya, use auto-calibration before manually setting estimates. Historical data provides an evidence-based baseline that reduces estimation bias.

Use P80 for governance reporting

Present the P80 (80th percentile) date in governance meetings. It communicates "we are 80% confident the project will complete by this date" -- which is more honest and actionable than a single-point estimate.

Run sensitivity analysis before risk mitigation

Before investing in risk mitigation actions, check the sensitivity analysis to identify which tasks drive the most schedule variability. Focus mitigation efforts on the top 3-5 sensitivity drivers for maximum impact.

Compare at least two scenarios

Always run a baseline simulation and at least one alternative. The comparison view makes it easy to quantify the impact of proposed changes (additional resources, scope changes, or risk mitigation) in probabilistic terms.

Troubleshooting​

IssueCauseSolution
Simulation stuck in "pending"Worker may not be running or queue is backed upCheck the simulation worker status; the getSimulationProgress procedure shows current state
"WBS element not found"Element was deleted after estimate was setRemove the orphaned estimate reference and re-run the simulation
Flat distribution (no variance)All estimates have identical optimistic/pessimistic valuesAdd realistic variability -- if optimistic equals pessimistic, the simulation adds no value
Auto-calibration returns 0 tasksNo completed WBS elements with actual duration dataComplete some tasks with actual duration tracking before running calibration
Comparison shows misaligned datesSimulations were run against different WBS versionsRe-run simulations against the current WBS to ensure consistent comparison
Results show "failed" statusSimulation engine encountered an errorCheck the simulation's error message via getSimulation; common causes include circular dependencies or missing estimates
  • Monte Carlo Simulations -- Core Monte Carlo engine documentation and methodology
  • Portfolio -- Portfolio-level project management and governance
  • Estimates -- Estimation techniques and CAPEX/OPEX tracking
  • Dependencies -- Project dependency management that feeds simulation models
  • Resource Planning -- Resource allocation that complements schedule simulation