Optimize organizational change mitigation portfolio
Choose a dependency-safe portfolio of documentation, cross-training, review redistribution, onboarding, staffing buffers, staged rollout, rollback or migration-support mitigations that minimizes change loss under nonlinear overlap, common risk, budget, scarce skills, recovery deadlines and CVaR.
What it's for
Turns a What-If result into a constrained recovery plan while exposing cost, scarce-skill load, dependencies, tail risk and alternatives instead of emitting an unpriced checklist.
What you give it
Every tool is a pure function: it computes from what you pass it and reads nothing on its own. Inputs split into evidence you supply from your connected systems, calibration your team owns, and numerical controls that affect precision but never the result's meaning.
| Field | Type | Role | Required |
|---|---|---|---|
| beam_width | integer ≥ 10, ≤ 10000 | Numerical control | Optional |
| budget | number ≥ 0 | Your calibration | Yes |
| exact_search_limit | integer ≥ 1, ≤ 24 | Your calibration | Optional |
| existing_control_ids | array of string | Evidence | Optional |
| max_detail_rows | integer ≥ 1, ≤ 500 | Numerical control | Optional |
| maximum_cvar_loss | any | Your calibration | Optional |
| minimum_positive_value_probability | number ≥ 0, ≤ 1 | Your calibration | Optional |
| mitigation_options | array of objects (16 fields) | Evidence | Yes |
| resource_capacities | object | Evidence | Yes |
| risk_aversion | number ≥ 0 | Your calibration | Optional |
| scenarios | array of objects (3 fields) | Evidence | Yes |
| shared_risk_groups | array of objects (3 fields) ≥ 0 items | Evidence | Yes |
| tail_probability | number > 0, < 1 | Your calibration | Optional |
| transition_risks | array of objects (15 fields) | Evidence | Yes |
Each mitigation_options
record
| Field | Type | Required |
|---|---|---|
| available_scenario_ids | array of string | Yes |
| capacity_gap_closure_scenarios | array of number (≥ 1 item) | Yes |
| common_loss_reduction | number (≥ 0, ≤ 1) | Yes |
| dependency_option_ids | array of string | Yes |
| evidence_verified | boolean | Yes |
| exclusion_option_ids | array of string | Yes |
| id | string (non-empty) | Yes |
| implementation_cost | number (≥ 0) | Yes |
| knowledge_gap_closure_scenarios | array of number (≥ 1 item) | Yes |
| lead_time_periods | integer (≥ 0, ≤ 520) | Yes |
| operating_cost_scenarios | array of number (≥ 1 item) | Yes |
| recovery_period_reduction_scenarios | array of number (≥ 1 item) | Yes |
| resource_demand | object | Yes |
| review_gap_closure_scenarios | array of number (≥ 1 item) | Yes |
| satisfied_control_ids | array of string | Yes |
| transition_risk_ids | array of string | Yes |
{
"budget": 20000,
"existing_control_ids": [
"change-review"
],
"mitigation_options": [
{
"available_scenario_ids": [
"base",
"stress"
],
"capacity_gap_closure_scenarios": [
0.1,
0.1
],
"common_loss_reduction": 0.2,
"dependency_option_ids": [],
"evidence_verified": true,
"exclusion_option_ids": [],
"id": "document",
"implementation_cost": 4000,
"knowledge_gap_closure_scenarios": [
0.5,
0.4
],
"lead_time_periods": 1,
"operating_cost_scenarios": [
500,
700
],
"recovery_period_reduction_scenarios": [
1,
2
],
"resource_demand": {
"platform": 1
},
"review_gap_closure_scenarios": [
0.1,
0.1
],
"satisfied_control_ids": [
"change-review"
], Truncated for display — the full payload is 156 lines.
What you get back
This is the actual output of running the example above — computed by the same function the platform calls, not an illustration.
{
"baseline": {
"expected_loss": 81000,
"loss_cvar": 149000
},
"configuration": {
"budget": 20000,
"maximum_cvar_loss": null,
"minimum_positive_value_probability": 0.5,
"risk_aversion": 0,
"tail_probability": 0.2
},
"decision": "mitigation_portfolio_available",
"guardrails": [
"The portfolio is conditional on finance-owned common scenarios and submitted counterfactual option effects; it does not infer causal benefits from activity correlations.",
"Options close aggregate operational gaps multiplicatively so overlapping mitigations cannot each claim the full same benefit; common losses are counted once per shared group.",
"A recommendation is decision support only and never authorizes hiring, firing, reassignment, monitoring, procurement, rollout or migration."
],
"method": "nonlinear_common_scenario_change_mitigation_portfolio_v1",
"pareto_frontier": [
{
"expected_residual_loss": 81000,
"implementation_cost": 0,
"loss_cvar": 149000,
"selected_option_ids": []
},
{
"expected_residual_loss": 71420,
"implementation_cost": 4000,
"loss_cvar": 128850,
"selected_option_ids": [
"document"
]
},
{
"expected_residual_loss": 57710.3125,
"implementation_cost": 12000,
"loss_cvar": 98814.0625,
"selected_option_ids": [
"cross-train",
"document"
]
}
], Truncated for display — the full payload is 75 lines.
How it works
Causal inference & experiment design — Separate what a change caused from what merely moved alongside it.
- 1 Freeze finance-owned common scenarios, unique direct and shared losses, capacity/review/knowledge/recovery gaps, required controls and independently evidenced mitigation effects.
- 2 For each dependency/exclusion-safe option set, apply lead-time-adjusted gap closure multiplicatively, accelerate recovery without going below zero, count each shared-group loss once and add full implementation and scenario operating cost.
- 3 Reject plans that breach scenario availability, controls, budget, scarce resources, recovery deadlines, positive-value probability or CVaR; return the best risk-adjusted plan and cost-loss-CVaR Pareto frontier using exact streaming enumeration or disclosed beam search.
Before you trust it
Every tool in the catalog ships with the conditions under which its answer is meaningful — and the conditions under which it should abstain instead of guessing.
Assumptions & guardrails
- Assignment or adoption timing, interference policy, overlap, attrition, and outcome availability match the estimand encoded by the method.
- Risks and options share one horizon, currency and counterfactual; effect scenarios are prospective; option overlap is adequately represented by multiplicative closure; shared losses are unique; and resource, timing and recovery limits are decision-owner approved.
- A causal label is warranted only when design and diagnostic requirements pass; otherwise treat the result as descriptive or abstain.
- The optimizer ranks submitted aggregate mitigations only; it neither infers personal suitability nor authorizes hiring, firing, reassignment, monitoring, procurement, rollout or migration.
Minimum evidence
- transition_risks: required and organization-defined
- shared_risk_groups: at least 0 rows/items
- mitigation_options: required and organization-defined
- scenarios: required and organization-defined
- budget: required and organization-defined
- resource_capacities: required and organization-defined
How to validate it
Preserve the assignment/adoption design and validate overlap, pre-period or placebo diagnostics, attrition, interference policy, and cluster-level uncertainty; never tune on the estimated effect.
Calibrating it to your org
Same for everyone
The mathematical kernel, validation rules, method version, and JSON output semantics are organization-independent; no tenant-trained coefficients or company benchmark is embedded in the function.
Specific to you
- one versioned mitigation option set joined to the forecasted aggregate transition risks, common loss groups, hard recovery/control limits, current resource capacities and a coherent scenario matrix without duplicated benefit or loss sources
- risk/group boundary, horizon and gap units, monetization, recovery deadline, mandatory controls, option effect evidence, lead time, full cost, shared-risk reduction, dependencies/exclusions, scenario availability, resource capacity, budget, positive-value gate, CVaR appetite and human decision authority
Calibration workflow
- 1 Define the management decision, target outcome, aggregate unit, privacy boundary, cadence, and prediction/intervention horizon for this organization.
- 2 Build a tenant-scoped historical cohort using only information available before each prediction or decision; preserve zero periods, censoring, assignment probabilities, and unresolved outcomes when the method requires them.
- 3 Estimate statistical parameters on training history, but obtain costs, utilities, risk tolerance, practical-effect thresholds, capacity, and policy constraints from accountable decision owners.
- 4 Validate on later time windows or held-out aggregate units at the deployment grain, against a simple baseline and the function-specific validation strategy.
- 5 Deploy only if the returned decision clears evidence, overlap, calibration, robustness, and guardrail checks; warning, unsupported, schema-gap, and fallback decisions are abstentions.
- 6 Monitor realized outcomes, data drift, coverage, and decision regret; recalibrate at a governed cadence or after a detected regime/definition change, never merely because a stakeholder dislikes the result.
Call it from your AI
You don't wire up 388 tools in your MCP client. The GitRevio MCP server exposes 20 tools, three of which let an agent search the catalog, read a tool's schema, and run it — so the assistant finds this one on its own.
gitrevio_capabilities_search
{ "q": "choose a dependencysafe portfolio of documentation" }
→ finds "optimize_organizational_change_mitigation_portfolio"
gitrevio_capability_describe
{ "capability_id": "optimize_organizational_change_mitigation_portfolio" }
→ returns the input schema and agent guidance shown on this page
gitrevio_capability_run
{ "capability_id": "optimize_organizational_change_mitigation_portfolio", "arguments": { ... } }
→ returns the result shown above Works in Claude Desktop, Claude Code, Cursor, Cline, Continue.dev, Goose and Aider. See the MCP server.