| name | schedule-monte-carlo |
| description | Project completion as a distribution, not a date — Monte Carlo over the task graph. Use when a plan's finish date came from summing 'likely' estimates (it's wrong, mathematically), when leadership needs a commit date, or when you need to know which tasks actually control the timeline. Produces P10/P50/P90 completion, per-task criticality (how often each task sits on the critical path), and a real .xlsx — via the bundled zero-dependency simulator, deterministic with a seed. |
Schedule Monte Carlo
Summing the "likely" estimates systematically understates the finish: parallel branches mean the slowest path wins each roll, and that maximum is always worse than the middle. This skill runs the actual simulation — thousands of schedule rolls over the dependency graph — and reports the date the way it behaves: as percentiles.
Required Inputs
- The task list with three-point estimates — per task: optimistic / likely / pessimistic (any consistent unit) and dependencies. Honest pessimistics are the whole game: "what if the API vendor ghosts us for two weeks" belongs in that number.
- Simulation count and seed (optional; defaults 5,000 and a fixed seed — results are reproducible).
Output Format
- The headline gap — deterministic finish (sum-of-likelies) vs P50 vs P90, side by side. The deterministic-to-P50 gap is the lie the old plan told; show it first.
- The commitment guidance — promise P50 internally, P90 externally; the space between is the honesty budget. Name the dates.
- Criticality table — per task, the share of simulations where it sat on the critical path. The top 2-3 are where management attention belongs; a task at 0.9 criticality with a wide estimate range is the schedule.
- Model limits — no resource contention or calendar effects; real schedules are worse, so these are optimistic floors.
Programmatic Helper
Ships scripts/schedule_sim.py — zero dependencies, cycle-detecting, deterministic:
python3 scripts/schedule_sim.py run schedule.xlsx --tasks tasks.json --sims 5000
Prints deterministic=21.0 P10=22.3 P50=27.0 P90=32.3 · top critical: design, integrate… and writes the summary + criticality sheets. Requires a code-execution environment.
Quality Checks
Anti-Patterns