Purpose
Transform a list of identified project risks with probability and impact estimates into a defensible, quantified contingency recommendation — producing expected monetary value per risk, a P50/P80/P90 aggregated cost range using three-point estimation and Monte Carlo logic, and a ranked heat map that tells the team which risks to actively manage first.
When to Use
Invoke this skill when the user asks to:
- Quantify a risk register or turn qualitative risks into dollar figures
- Calculate a contingency budget or size a contingency reserve for a capital project
- Determine P50, P80, or P90 cost confidence levels for a project
- Rank or prioritize project risks by expected financial impact
- Build a risk heat map with mitigation and contingency recommendations
- Defend a contingency number to a project sponsor, board, or funding authority
Inputs Required
Before starting, collect:
- Risk list: Each identified risk with a short description (10+ risks is ideal; the tool works with any count)
- Probability per risk: Likelihood of occurrence — as a percentage (e.g., 30%) or qualitative band (Low/Medium/High)
- Impact estimates per risk: Cost impact if the risk occurs — a single figure, or preferably a three-point estimate (optimistic / most likely / pessimistic)
- Project base budget: Total baseline cost estimate the contingency sits on top of
- Currency: The reporting currency for all outputs
- Confidence target: Which percentile the sponsor wants to fund to (P50 / P80 / P90) — default to P80 if unspecified
- Risk categories (optional): Cost, schedule, scope, procurement, external/regulatory — for grouped reporting
If a risk has only a single-point impact, treat it as the "most likely" value and derive optimistic/pessimistic bands at ±20% for triangular modeling. If probability is given qualitatively, map Low = 15%, Medium = 45%, High = 75% and note the assumption.
Instructions
Step 1: Normalize and Structure the Register
Standardize every input before any math runs:
- Convert all probabilities to decimals (30% → 0.30). Map qualitative bands using the defaults above.
- Ensure each risk has a three-point impact (O / ML / P). Where only one value exists, apply the ±20% default and flag it as a low-confidence input.
- Assign each risk a category if provided; otherwise infer from the description (Cost / Schedule / Scope / Procurement / External).
- Number each risk (R1, R2, …) for traceable referencing throughout the output.
Step 2: Calculate Expected Monetary Value (EMV) Per Risk
For each risk:
- Compute the three-point mean impact using triangular estimation:
Mean = (O + ML + P) / 3. (Use PERT weighting(O + 4·ML + P) / 6instead when the most-likely value is well-established — state which you used.) - Compute EMV = Probability × Mean Impact.
- Record the impact spread (P − O) as a volatility indicator — wide spreads drive contingency more than the EMV alone suggests.
Present a per-risk table: ID, Description, Probability, O/ML/P impact, Mean Impact, EMV.
Step 3: Aggregate the Contingency Distribution (Monte Carlo Logic)
Model the total risk exposure as a distribution, not a single number:
- Treat each risk as a Bernoulli trial (occurs with its probability) whose cost, when triggered, is drawn from its triangular impact distribution.
- Reason through the aggregate distribution using Monte Carlo logic across a large notional sample (e.g., 10,000 iterations): in each iteration, sum the triggered risks' sampled costs.
- Derive the aggregate percentiles analytically where a full simulation isn't executable: the sum of EMVs approximates the mean (~P50 for many independent risks), and the aggregate standard deviation is
√(Σ variance_i)where each risk's variance combines Bernoulli occurrence variance and triangular impact variance. - Report the reasoning transparently so the contingency figures are auditable, not black-box.
Step 4: Derive P50 / P80 / P90 Contingency
From the aggregate distribution:
- P50: 50% confidence the total risk cost lands at or below this — the expected-case contingency.
- P80: 80% confidence — the standard capital-project funding level.
- P90: 90% confidence — conservative reserve for high-consequence or fixed-budget programs.
- Express each as both an absolute figure and a percentage of base budget, so the sponsor sees the contingency as a ratio (e.g., "P80 contingency = $4.2M, 8.4% of base").
Step 5: Build the Ranked Risk Heat Map
- Plot each risk on a Probability × Impact matrix (Low/Medium/High on each axis) and assign a heat zone: Green (monitor), Yellow (manage), Red (actively mitigate).
- Rank all risks descending by EMV — this is the action-priority order.
- Flag the top 20% of risks by EMV, which typically drive 60–80% of total contingency, as the critical few to attack first.
Step 6: Contingency & Mitigation Recommendations
- State the recommended contingency figure tied to the confidence target (default P80) with one-sentence justification.
- For each Red-zone risk, give one specific mitigation lever (avoid / reduce / transfer / accept) and its expected effect on EMV.
- Identify residual contingency — the portion driven by risks that cannot be economically mitigated and must simply be funded.
- Note any wide-spread risks where tightening the impact estimate would meaningfully shrink required contingency.
Output Format
- Structure: Per-risk EMV table → aggregate distribution summary → P50/P80/P90 table → ranked heat map → recommendations
- Length: 900–1,300 words plus tables
- Format: Structured document with two tables (per-risk EMV; P50/P80/P90 contingency) and a heat-map ranking list
- Sections: Assumptions & Normalization → Per-Risk EMV → Aggregate Distribution → Contingency Confidence Levels (P50/P80/P90) → Ranked Risk Heat Map → Contingency & Mitigation Recommendations
- Tone: Risk engineer briefing a capital funding board — quantitative, precise, decision-oriented; every number traceable to an assumption
Quality Checklist
Before delivering output, verify:
- [ ] Every risk has a computed EMV and appears in the per-risk table (count matches input)
- [ ] Each probability and impact input has been converted/normalized, with all default assumptions explicitly flagged
- [ ] P50, P80, and P90 are all reported as both absolute figures and percentages of base budget
- [ ] P90 ≥ P80 ≥ P50 (monotonic — a common arithmetic error to catch)
- [ ] The estimation method (triangular vs. PERT) and the Monte Carlo aggregation logic are stated, not hidden
- [ ] The top-EMV risks are explicitly ranked and the critical few are flagged with specific mitigation levers
Notes
- The sum of EMVs is the expected contingency but almost always undershoots the funded contingency — sponsors fund to P80/P90, not to the mean, because a single-point EMV ignores tail risk.
- Correlated risks (e.g., one delay triggering others) inflate the true P90; if the user indicates dependencies, note that the analytic aggregate understates the tail and a full correlated simulation would run higher.
- The biggest contingency-reduction wins usually come from narrowing wide impact spreads, not from lowering probabilities — better estimates beat optimism.
- Recommend the user revisit this quantification at each project gate; probabilities and impacts change as the project retires early risks.
How to use this skill
This file is a Claude Code skill in Anthropic's standard format — markdown with YAML frontmatter at the top.
Installing in Claude Code:
~/.claude/skills/<folder-name>/SKILL.md— auto-loads in every session anywhere on your machine (recommended for skills you'll use across multiple projects)<your-project>/.claude/skills/<folder-name>/SKILL.md— auto-loads only when working in that project (recommended for project-specific skills)
Restart Claude Code or open a new session to register.
Using in Claude.ai, ChatGPT, Gemini, or other AI tools:
- Drag this file into a new chat, or copy and paste its contents
- Send your task or request as your next message — the AI will apply the skill where it fits
For Claude Code skill details: https://docs.anthropic.com/en/docs/claude-code/skills