Analyze info gap robust satisficing
Select a robust-satisficing action under severe uncertainty with Info-Gap Decision Theory: evaluate worst and best payoff across a governed nested uncertainty envelope, maximize the radius before a critical requirement fails, report windfall opportuneness, and use no scenario probabilities.
What it's for
Lets leaders make inspectable choices when there is not enough trustworthy evidence for probabilities—optimizing survival margin under model error while keeping upside and severe-uncertainty assumptions visible.
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 |
|---|---|---|---|
| actions | array of objects (2 fields) ≥ 2 items | Evidence | Yes |
| critical_requirement | number | Your calibration | Yes |
| max_detail_rows | integer ≥ 1, ≤ 500 | Numerical control | Optional |
| minimum_robustness_advantage | number ≥ 0 | Your calibration | Optional |
| scenarios | array of objects (2 fields) ≥ 20 items | Evidence | Yes |
| windfall_target | number | Your calibration | Yes |
Each actions
record
| Field | Type | Required |
|---|---|---|
| id | string (non-empty) | Yes |
| payoffs | object | Yes |
{
"actions": [
{
"id": "durable-plan",
"payoffs": {
"uncertainty-0": 100,
"uncertainty-1": 100,
"uncertainty-10": 95,
"uncertainty-11": 95,
"uncertainty-12": 95,
"uncertainty-13": 95,
"uncertainty-14": 90,
"uncertainty-15": 90,
"uncertainty-16": 90,
"uncertainty-17": 90,
"uncertainty-18": 90,
"uncertainty-19": 90,
"uncertainty-2": 100,
"uncertainty-20": 90,
"uncertainty-3": 100,
"uncertainty-4": 100,
"uncertainty-5": 100,
"uncertainty-6": 100,
"uncertainty-7": 95,
"uncertainty-8": 95,
"uncertainty-9": 95
}
},
{
"id": "fragile-plan",
"payoffs": {
"uncertainty-0": 110,
"uncertainty-1": 110,
"uncertainty-10": 90,
"uncertainty-11": 90,
"uncertainty-12": 90,
"uncertainty-13": 90,
"uncertainty-14": 70,
"uncertainty-15": 70,
"uncertainty-16": 70,
"uncertainty-17": 70,
"uncertainty-18": 70,
"uncertainty-19": 70,
"uncertainty-2": 110, Truncated for display — the full payload is 145 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.
{
"actions": [
{
"action_id": "durable-plan",
"nominal_payoff": 100,
"nominal_satisfies_requirement": true,
"opportuneness_horizon": null,
"robustness_horizon": 2,
"robustness_right_censored_at_envelope": true
},
{
"action_id": "fragile-plan",
"nominal_payoff": 110,
"nominal_satisfies_requirement": true,
"opportuneness_horizon": 0,
"robustness_horizon": 1,
"robustness_right_censored_at_envelope": false
}
],
"assumptions": [
"Uncertainty radius orders a genuinely nested envelope: every case admitted at a smaller radius remains admitted at every larger radius.",
"Payoffs share one governed utility scale and the critical requirement represents satisficing survival rather than an optimized average.",
"Scenario frequency carries no probability meaning; robustness is tolerance to model error inside the supplied envelope."
],
"configuration": {
"critical_requirement": 90,
"minimum_robustness_advantage": 1,
"windfall_target": 105
},
"decision": "robustness_tie_requires_judgment",
"executive_summary": {
"critical_requirement": 90,
"robustness_advantage_over_second": 1,
"selected_nominal_payoff": 100,
"selected_opportuneness_horizon": null,
"selected_robustness_horizon": 2,
"windfall_target": 105
},
"interpretation": "Info-gap robustness asks how wrong the nominal model may be before an action fails a critical requirement. It complements probability-based expected utility and minimax regret; it does not estimate likelihood.",
"method": "info_gap_nested_uncertainty_robust_satisficing_v1",
"selected_action_id": "durable-plan",
"selected_robustness_curve": [
{
"best_payoff": 100, Truncated for display — the full payload is 71 lines.
How it works
Decision analysis — Turn uncertainty, cost and risk appetite into a defensible choice, with the reasoning left inspectable.
- 1 Define a nominal case at radius zero and nested uncertainty envelopes whose radius measures model error or departure from nominal without assigning likelihood to scenarios.
- 2 For each action and radius, aggregate all scenarios admitted up to that radius, record the worst payoff for critical-requirement robustness and the best payoff for windfall opportuneness.
- 3 Set the robustness horizon to the largest radius whose worst payoff still satisfies the critical requirement, and the opportuneness horizon to the smallest radius at which the windfall becomes possible.
- 4 Select maximum robustness with nominal payoff as a tie-breaker, but return judgment-required when the lead is below the governed practical robustness advantage and abstain when no nominal action satisfies the critical requirement.
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
- Actions, outcomes, utilities, evidence boundaries, uncertainty representation, and accountable ownership match the actual decision.
- The radius creates genuinely nested sets, zero-radius cases represent the nominal model, payoffs share one governed utility scale, and the envelope covers structural errors management considers possible even when probabilities are indefensible.
- The critical requirement is a real satisficing survival condition and the windfall target is a meaningful upside threshold, not values tuned after seeing which action wins.
- The result structures a governed choice; it does not replace accountable judgment or authorize action outside the declared decision boundary.
- Robustness radius is tolerance to modeled error, not a probability of success, confidence level, forecast horizon, or proof that omitted scenarios are harmless.
- Opportuneness describes how much uncertainty is needed to make a windfall possible; it is not expected upside and must not be marketed as likely return.
Minimum evidence
- actions: at least 2 rows/items
- scenarios: at least 20 rows/items
- critical_requirement: required and organization-defined
- windfall_target: required and organization-defined
How to validate it
Backtest the chosen action against simple feasible baselines on held-out scenarios, sweep costs/constraints/risk tolerance, and require constraint feasibility under adverse inputs.
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
- nested uncertainty-envelope scenarios with a zero-radius nominal case
- complete action-scenario payoff table on one governed utility scale
- meaning and units of uncertainty radius
- critical satisficing requirement, windfall target, practical robustness advantage, action feasibility, and scenario coverage
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": "select a robustsatisficing action under severe" }
→ finds "analyze_info_gap_robust_satisficing"
gitrevio_capability_describe
{ "capability_id": "analyze_info_gap_robust_satisficing" }
→ returns the input schema and agent guidance shown on this page
gitrevio_capability_run
{ "capability_id": "analyze_info_gap_robust_satisficing", "arguments": { ... } }
→ returns the result shown above Works in Claude Desktop, Claude Code, Cursor, Cline, Continue.dev, Goose and Aider. See the MCP server.