Calculate technology economic capital

Calculate expected loss, loss VaR/CVaR, unexpected-loss economic capital, capital charge and technology RAROC under coherent finance-owned scenarios; count shared platform/provider loss once and reconcile it to aggregate units with exact or seeded-permutation Shapley allocation.

What it's for

Turns technology tail risk into the finance language boards and investors already use—expected loss, economic capital, diversification, capital charge and risk-adjusted return—while making shared platform risk impossible to count twice.

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
capital_charge_rate number ≥ 0, ≤ 10 Your calibration Optional
confidence_level number ≥ 0.5, ≤ 0.999 Your calibration Optional
detail_limit integer ≥ 1, ≤ 500 Your calibration Optional
minimum_portfolio_raroc number ≥ -10, ≤ 100 Your calibration Optional
permutation_draws integer ≥ 200, ≤ 100000 Numerical control Optional
scenarios array of objects (2 fields) Evidence Yes
seed integer ≥ 0 Numerical control Optional
shared_loss_groups array of objects (4 fields) ≥ 0 items Evidence Optional
units array of objects (4 fields) Evidence Yes

Each shared_loss_groups record

Field Type Required
evidence_verified boolean Yes
id string (non-empty) Yes
loss_by_scenario object Yes
member_unit_ids array of string Yes
Example input
{
  "capital_charge_rate": 0.1,
  "confidence_level": 0.9,
  "minimum_portfolio_raroc": 0.1,
  "scenarios": [
    {
      "id": "ordinary",
      "probability": 0.6
    },
    {
      "id": "adverse",
      "probability": 0.3
    },
    {
      "id": "severe",
      "probability": 0.1
    }
  ],
  "shared_loss_groups": [
    {
      "evidence_verified": true,
      "id": "cloud-provider",
      "loss_by_scenario": {
        "adverse": 20,
        "ordinary": 0,
        "severe": 200
      },
      "member_unit_ids": [
        "platform",
        "data"
      ]
    }
  ],
  "units": [
    {
      "direct_loss_by_scenario": {
        "adverse": 30,
        "ordinary": 5,
        "severe": 100
      },
      "evidence_verified": true,
      "gross_profit_by_scenario": {
        "adverse": 80,
        "ordinary": 100,

Truncated for display — the full payload is 78 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.

Example output
{
  "allocation": {
    "detail_truncated": false,
    "economic_capital_reconciliation_error": 0,
    "effort": 8,
    "method": "exact_shapley",
    "unit_allocations": [
      {
        "allocated_economic_capital": 165,
        "allocated_expected_loss": 35,
        "capital_diversification_effect": 87,
        "expected_gross_profit": 89,
        "interpretation": "positive_risk_capital",
        "raroc": 0.3273,
        "risk_adjusted_value": 37.5,
        "standalone_economic_capital": 252,
        "unit_id": "platform"
      },
      {
        "allocated_economic_capital": 141.6,
        "allocated_expected_loss": 28.4,
        "capital_diversification_effect": 87,
        "expected_gross_profit": 62.3,
        "interpretation": "positive_risk_capital",
        "raroc": 0.2394,
        "risk_adjusted_value": 19.74,
        "standalone_economic_capital": 228.6,
        "unit_id": "data"
      },
      {
        "allocated_economic_capital": 31.2,
        "allocated_expected_loss": 8.8,
        "capital_diversification_effect": 0,
        "expected_gross_profit": 35.6,
        "interpretation": "positive_risk_capital",
        "raroc": 0.859,
        "risk_adjusted_value": 23.68,
        "standalone_economic_capital": 31.2,
        "unit_id": "product"
      }
    ]
  },
  "configuration": {
    "capital_charge_rate": 0.1,

Truncated for display — the full payload is 70 lines.

How it works

Decision analysis — Turn uncertainty, cost and risk appetite into a defensible choice, with the reasoning left inspectable.

  1. 1 Align every aggregate unit's gross profit and direct loss to one probability-weighted scenario set, add each verified shared-loss group once when any member is present, and calculate expected net profit plus exact probability-mass VaR/CVaR.
  2. 2 Define economic capital transparently as loss CVaR minus expected loss, apply the finance-owned capital charge and RAROC hurdle, and preserve zero-capital and negative marginal-capital cases instead of forcing unstable ratios.
  3. 3 Allocate expected loss and economic capital by the coalition game induced by direct and shared losses: enumerate exact Shapley coalitions through twelve units and use deterministic seeded permutations beyond that, reconciling allocations back to the portfolio total.

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.
  • Scenarios are coherent and exhaustive enough for the decision horizon, probabilities sum to one, gross profit is on the same currency/price basis as loss, shared groups are unique economic events, and CVaR confidence plus capital charge reflect approved appetite.
  • The result structures a governed choice; it does not replace accountable judgment or authorize action outside the declared decision boundary.
  • Economic capital and RAROC are governed management views, not GAAP/IFRS balances, productivity scores or universal discount rates. Negative Shapley capital can represent diversification and must remain visible.

Minimum evidence

  • units: required and organization-defined
  • scenarios: required and organization-defined

How to validate it

Validate on future periods or held-out aggregate units, compare with a simple baseline, and require stability across plausible metric definitions and decision thresholds.

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

  • versioned unit-scenario profit/loss cube joined to the audited exposure perimeter, with direct loss attached once per unit and common loss attached once per canonical shared group
  • decision horizon, scenario law, currency/price basis, value/loss perimeter, shared-loss activation, CVaR confidence, unexpected-loss economic-capital definition, capital charge, RAROC hurdle, Shapley exact/sampling policy and finance authority

Calibration workflow

  1. 1 Define the management decision, target outcome, aggregate unit, privacy boundary, cadence, and prediction/intervention horizon for this organization.
  2. 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. 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. 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. 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. 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": "calculate expected loss loss varcvar unexpectedloss" }
  → finds "calculate_technology_economic_capital"

gitrevio_capability_describe
  { "capability_id": "calculate_technology_economic_capital" }
  → returns the input schema and agent guidance shown on this page

gitrevio_capability_run
  { "capability_id": "calculate_technology_economic_capital", "arguments": { ... } }
  → returns the result shown above

Works in Claude Desktop, Claude Code, Cursor, Cline, Continue.dev, Goose and Aider. See the MCP server.

Related tools

See every tool in Risk, tails & resilience →

Ready to See Your Engineering work clearly?