Optimize enterprise technology capital plan

Optimize a two-stage enterprise technology portfolio that commits initial capital now and allocates follow-on capital only after observable signals; enforce non-anticipativity, dependencies, exclusions, signal-specific budget/capacity and eligibility, compare with the best one-shot portfolio, quantify option value and CVaR loss, and disclose solver certainty.

What it's for

Gives CEOs, CTOs, boards, and investors an adaptive technology capital plan that preserves money until real evidence arrives and quantifies the value over committing the whole portfolio today.

What you give it

Inputs split into evidence read from your connected systems, calibration your team owns, and numerical controls that affect precision but never the result's meaning.

Field Type Role Required
follow_on_capital_budget_by_signal object Evidence Yes
follow_on_implementation_capacity_by_signal object Evidence Yes
initial_capital_budget number ≥ 0 Your calibration Yes
initial_implementation_capacity number ≥ 0 Your calibration Yes
initiatives array of objects (9 fields) ≥ 1 item Evidence Yes
max_detail_rows integer ≥ 1, ≤ 500 Numerical control Optional
maximum_cvar_loss number ≥ 0 Your calibration Optional
maximum_exact_states integer ≥ 2, ≤ 1000000 Numerical control Optional
minimum_expected_npv number Your calibration Optional
minimum_option_value number ≥ 0 Your calibration Optional
scenarios array of objects (3 fields) ≥ 2 items Evidence Yes
tail_probability number > 0, ≤ 0.5 Your calibration Optional

Each initiatives record

Field Type Required
dependency_ids array of string Yes
eligible_follow_on_scenarios array of boolean (≥ 2 items) Yes
eligible_initial boolean Optional
exclusion_ids array of string Yes
follow_on_investment_cost number (≥ 0) Yes
gross_value_scenarios array of number (≥ 2 items) Yes
id string (non-empty) Yes
implementation_capacity_units number (≥ 0) Yes
initial_investment_cost number (≥ 0) Yes
Example input
{
  "follow_on_capital_budget_by_signal": {
    "adverse": 6,
    "favorable": 6
  },
  "follow_on_implementation_capacity_by_signal": {
    "adverse": 1,
    "favorable": 1
  },
  "initial_capital_budget": 6,
  "initial_implementation_capacity": 1,
  "initiatives": [
    {
      "dependency_ids": [],
      "eligible_follow_on_scenarios": [
        true,
        true
      ],
      "eligible_initial": true,
      "exclusion_ids": [],
      "follow_on_investment_cost": 7,
      "gross_value_scenarios": [
        10,
        10
      ],
      "id": "foundation",
      "implementation_capacity_units": 1,
      "initial_investment_cost": 5
    },
    {
      "dependency_ids": [],
      "eligible_follow_on_scenarios": [
        false,
        true
      ],
      "eligible_initial": true,
      "exclusion_ids": [],
      "follow_on_investment_cost": 6,
      "gross_value_scenarios": [
        0,
        20
      ],
      "id": "growth-option",
      "implementation_capacity_units": 1,

Truncated for display — the full payload is 60 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
{
  "decision": "approve_staged_signal_contingent_capital_plan",
  "failed_gates": [],
  "guardrails": [
    "Follow-on actions are constant for all futures sharing the same submitted signal and eligibility; hidden future outcomes cannot choose capital inside a signal cell.",
    "Gross values must be incremental, mutually reconciled, finance-approved, and comparable across initial and follow-on timing; activity, code volume, executive enthusiasm, or prior spend is not economic value.",
    "The exact certificate covers the submitted two-stage initiatives, dependencies, exclusions, budgets, capacity, signals, values, and scenarios only; omitted liquidity, tax, security, procurement, workforce, delivery, interaction, or financing constraints invalidate promotion.",
    "The output is decision support for accountable executives and investment committees—not autonomous spending, procurement, hiring, firing, vendor action, company ranking, or employee evaluation."
  ],
  "method": "two_stage_signal_contingent_enterprise_capital_plan_v1",
  "policy_by_signal": [
    {
      "follow_on_capacity_used": 0,
      "follow_on_capital_used": 0,
      "follow_on_initiative_ids": [],
      "signal_id": "adverse",
      "signal_probability": 0.5
    },
    {
      "follow_on_capacity_used": 1,
      "follow_on_capital_used": 6,
      "follow_on_initiative_ids": [
        "growth-option"
      ],
      "signal_id": "favorable",
      "signal_probability": 0.5
    }
  ],
  "scenario_diagnostics": [
    {
      "policy_npv": 5,
      "probability": 0.5,
      "scenario_id": "adverse",
      "selected_initiative_ids": [
        "foundation"
      ],
      "signal_id": "adverse"
    },
    {
      "policy_npv": 19,
      "probability": 0.5,
      "scenario_id": "favorable",
      "selected_initiative_ids": [
        "foundation",

Truncated for display — the full payload is 79 lines.

How it works

Constrained optimization — Pick the best feasible option under real limits — budget, headcount, dependencies, capacity — rather than ranking a list and hoping it fits.

  1. 1 Freeze incremental initiative values across coherent scenarios, initial/follow-on investment cost, implementation capacity, dependencies, exclusions, timing eligibility, scenario signals, and stage-specific capital/capacity limits.
  2. 2 Enumerate three-way initiative states inside the exact boundary or build deterministic value-density supported policies; choose initial actions and then a single identical follow-on action for every future inside each observable signal partition.
  3. 3 Replay scenario NPVs, compare the adaptive policy with the best initial one-shot portfolio, calculate signal-contingent option value and CVaR loss, and apply governed value/tail gates before approval.

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

  • Objectives use commensurable locally governed value units, constraints reflect real feasibility, and uncertainty covers plausible adverse inputs.
  • Gross values are incremental and nonduplicative; signal and eligibility are genuinely observable before follow-on action; dependencies/exclusions and capital/capacity constraints are complete; scenario probabilities and values share one finance horizon.
  • The recommendation is optimal only for its stated objective, feasible set, evidence, and solver guarantee; it is not a universal management optimum.
  • Exactness covers only the submitted two-stage model; output is not autonomous spending, procurement, hiring/firing, vendor action, company ranking, or employee evaluation.

Minimum evidence

  • initiatives: at least 1 rows/items
  • scenarios: at least 2 rows/items
  • initial_capital_budget: required and organization-defined
  • follow_on_capital_budget_by_signal: required and organization-defined
  • initial_implementation_capacity: required and organization-defined
  • follow_on_implementation_capacity_by_signal: 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

  • investment-committee scenario tree joining finance-reconciled value/cost, architecture and security feasibility, delivery capacity, immutable signal release, dependencies, exclusions and later realized outcomes without future leakage or duplicated benefit
  • enterprise portfolio perimeter, two-stage decision rights, value/cost/currency/horizon, scenario law, signal observability, eligibility, dependency/exclusion semantics, capital and implementation limits, NPV/option/CVaR gates, tail, solver boundary, and human 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 18 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": "optimize a twostage enterprise technology portfolio" }
  → finds "optimize_enterprise_technology_capital_plan"

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

gitrevio_capability_run
  { "capability_id": "optimize_enterprise_technology_capital_plan", "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

Audit cash flow timing consistency

Audit whether economic-event and cash-settlement timing obey governed lag rules across coherent scenarios, quantify the resulting NPV distortion, reconstruct scenario liquidity paths, and separate timing exceptions from liquidity-tail exposure without treating exceptions as wrongdoing.

Statistical audit & measurement

Optimize cloud reserved capacity

Choose an integer portfolio of dated cloud reservations across coherent demand, realization, spot, and on-demand scenarios; price unused commitment and unserved demand explicitly, enforce coverage and capital gates, optimize expected-plus-CVaR cost, and disclose exact versus deterministic supported-set search.

Constrained optimization

Audit benefit double counting

Reconcile business-case benefit claims to unique economic source pools and allocation fractions, exposing overallocated sources and claim-level mismatches before portfolio value is aggregated.

Constrained optimization

Audit cost allocation consistency

Audit whether shared engineering, platform, cloud, vendor, or operating cost pools reconcile to source totals and follow their declared pro-rata allocation bases at every target.

Statistical audit & measurement

Audit cost capitalization sensitivity

Audit whether permitted software-cost capitalization choices change reported project ROI and priority even though scenario cash NPV, downside, and economic rank are unchanged.

Statistical audit & measurement

Audit delivery to cash chain integrity

Reconcile each governed milestone from delivery-ready evidence through customer acceptance, billing eligibility, net invoicing and collected cash; enforce temporal ordering, eligible-unbilled and outstanding-receivable identities, evidence separation and bounded diagnostics without treating Git activity as an accounting fact.

Statistical audit & measurement

See every tool in Finance & unit economics →

Ready to See Your Engineering work clearly?

Request a free demo