Schematex
pert·PMI PMBOK 7 — three-point (beta-PERT) estimation·business, research, software·complexity 2/3

Three-point (PERT) estimation with variance

Durations written as optimistic/most-likely/pessimistic (O/M/P). The engine computes the beta-distribution expected duration te = (O+4M+P)/6 per activity, the per-task variance, and the project-level standard deviation along the critical path.

For the estimator

Open in Playground →
pert·§
↘ preview
100%
PERT network — Three-point project 4 activities, project duration 17.83 days, critical path A → B → C → D. Three-point project ES 0 DUR 3.17 EF 3.17 0 LS 0 SLACK 3.17 LF Spec A σ=0.5 ES 3.17 DUR 8.5 EF 11.67 3.17 LS 0 SLACK 11.67 LF Build B σ=1.5 ES 11.67 DUR 4.17 EF 15.83 11.67 LS 0 SLACK 15.83 LF Test C σ=0.5 ES 15.83 DUR 2 EF 17.83 15.83 LS 0 SLACK 17.83 LF Deploy D σ=0.33 Project duration 17.83 days · 4 tasks · 3 dependencies · 4 critical · σ ≈ 1.69 Critical path: A → B → C → D
UTF-8 · LF · 9 lines · 228 chars✓ parsed·2.7 ms·12.3 KB SVG

PERT's original 1959 contribution wasn't the box — it was handling uncertainty in durations. Write a duration as O/M/P (optimistic / most-likely / pessimistic) and the engine treats it as a beta-PERT estimate.

Expected duration. Each three-point activity collapses to its beta-distribution mean te = (O + 4M + P) / 6, which is what the Duration field shows. Build at 5/8/14 becomes te = 8.5 — pulled above the most-likely 8 because the pessimistic tail (14) is fatter than the optimistic one (5). The whole forward/backward pass then runs on these te values, so the project duration here is ≈ 17.83 days, not an integer.

Variance and project risk. Each activity also carries σ² = ((P − O) / 6)², surfaced as a small σ=… annotation under the name and on a data-pert-variance attribute. Summed over the critical-path activities (under the classical independence assumption), the project standard deviation is ≈ 1.69 days — a one-line risk figure you can quote: "≈68% chance of finishing within ±1.69 days of 17.83."

Why critical-tolerance: 0.01. Once durations are fractional, accumulated floating-point error can give a truly-critical activity a slack of 0.0000001. The tolerance treats anything within 0.01 of zero as critical, so the red path stays stable across runs. For all-integer projects you can leave it at the default of 0.

PERT / CPM syntax