The estimation object is delimited in writing with assumptions, out-of-scope list, and chosen unit (hours, days, euros).
Three-Point Estimation
Prerequisite
What needs to be finished first
Preparation
What needs to be ready before start
Estimation sheet with columns Item, Assumptions, O, M, P, Range, Expected Value; estimation-object document; list of known risks; calculation tool (sheet, Excel).
One moderator who introduces items and captures assumptions; one to eight people with context on the estimation object; one scribe for assumptions and risks.
Estimation-object description; assumptions list; comparable initiatives with actual data if available; known constraints and dependencies.
10-30 min per item
Sheet with columns for O (optimistic), M (most likely), P (pessimistic), Range (P-O), and Expected Value (O+M+P)/3 or PERT (O+4M+P)/6. Make the definition of each value visible.
Core question
The one question this method answers
Which realistic range from optimistic to pessimistic describes the estimation object, and which risks drive the difference between the three values?
Flow
Marker: Minute
| Step | Duration | Action | Hint |
|---|---|---|---|
10-3 min: Clarify estimation object | 3 min | Moderator reads the estimation-object description and lists assumptions. Clarifying questions, then capture scope consensus. Confirm unit. | If scope is still unclear after 3 min, park the item and sharpen it first. Estimation without scope consensus is speculation. |
23-8 min: Optimistic value (O) | 5 min | Describe best-case scenario: what must be true for it to go faster. Enter value. Document assumptions for O (for example no dependencies, all tools available). | O is not the miracle scenario. "Everything runs smoothly" is realistic; "magic happens" is not. If O is below 10% of M, the assumption is unrealistic. |
38-15 min: Most likely value (M) | 7 min | Describe realistic middle scenario: what will probably happen. Capture assumptions about team, tools, dependencies. Enter value. | M is not the average of O and P, but the most frequent expectation. M can sit closer to O or P depending on distribution. |
415-22 min: Pessimistic value (P) | 7 min | Describe worst-case scenario with named risks: what can go wrong. Enter value. Explicitly list risks (for example key person unavailable, external service down). | P is not the end of the world, but realistic worst case. "Server burns down completely" is unrealistic; "key engineer leaves during the project" is possible. |
522-30 min: Range and expected value | 8 min | Calculate range (P-O) and expected value with chosen formula (average or PERT). If range is more than 4x O, split the item or run a spike first. | Large range is a signal, not a mistake. Estimate 5-30 days is more honest than 15 days. The latter is fake precision. |
Artifact
What comes out at the end
Estimation table with columns Item, Assumptions, O, M, P, Range, Expected Value, Risks. Stored in project repo or wiki. Linked to estimation-object document and assumptions log.
Snapshot per estimation round with date. On scope change, create a new estimate as new row and keep old values with status. Add to assumptions log chronologically.
- Google Sheet with formulas for range and expected value
- Excel with PERT calculation
- Notion database with calculation property
- Jira with custom fields O/M/P
- Confluence page with table
three-point-estimation-working-template.md
Compact working template for Three-Point Estimation with context, input, output artifacts, and next step.
Three-Point Estimation Working Template
Goal
Estimates optimistic, most likely, and pessimistic value to make uncertainty explicit.
Context
When and for what do we use this method?
Input
Which data, observations, decisions, or materials are available?
Execution
Short notes along the runsheet.
Output artifacts
- Three-Point Estimate:
- Risk Range:
- Assumption Notes:
Assumptions and open questions
- ...
Decision / Next step
Owner, date, and success signal.
Example output
Concrete filled scenario, fictional example
three-point-estimation-beispiel.md
Concrete filled scenario, fictional example
Three-Point Estimation - Client Import Refactor, 2026-05-18
Estimation object: Refactor of the client import module so DATEV format is processed without errors. Unit: person-days.
Assumptions: Existing parser library reusable. Test data from 5 sample clients available. Anna is 60% available.
Estimates
- O (3 days): library fits, sample data covers all special cases, no schema migration needed.
- M (7 days): library needs two adjustments, one edge-case story appears later.
- P (15 days): library does not fit, custom parser needed, edge cases require more discovery.
Range: 12 days, Expected value (PERT): (3 + 4*7 + 15) / 6 = 7.7 days
Risks
- DATEV format has undocumented special-character handling (drives P).
- Key engineer @anna on parental leave in Q3 (drives P if delayed).
Recommendation: Plan with 8 days, spike ticket for library validation before sprint start.
Pitfalls
Recognize symptoms and steer against them
O and P too close
Range is less than 50% of M, estimator underestimated uncertainty.
Review risk list: which external factors were ignored. Raise P realistically and document the assumption. Fake safety is more dangerous than honest spread.
Expected value becomes point value
Communication only mentions "7.7 days", range disappears.
Report range plus expected value consistently: "7.7 days, range 3-15". Anyone using only expected value loses the method's central information.
Fantasy values
O is "2 hours", P is "1 year", M fits neither.
Use realism anchors: O is not miracle, P is not apocalypse. If range is more than 10x, split the item or mark it as not estimable.
Assumptions not documented
Table has numbers, but nobody knows why O is so optimistic.
Assumptions per value are mandatory. No assumption, no number. Assumptions are basis for later re-estimation and risk review.
Estimation without risk reference
P is high, but risk list is empty. Nobody can say what drives P.
Risk required per item: what must go wrong for P to happen. If no risks can be named, P is estimated too high.
Stop criteria
Done signals checkable in under a minute
Finished the runsheet?
Go to the profile for purpose, similar methods, and sources or continue to the next method in the catalog.