Solve bayesian influence diagram
Solve an exact discrete Bayesian influence diagram over actions, chance-node DAGs, action-dependent conditional probabilities, pre-decision evidence, and additive utility tables, then quantify action regret and the expected value of perfect information for observable exogenous nodes.
What it's for
Extends Gitrevio from forecasts and isolated optimizers into inspectable executive decision models that connect uncertain operating conditions, action consequences, business utility, current evidence, and the value of learning more.
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 |
|---|---|---|---|
| actions | array of objects (1 field) ≥ 2 items | Evidence | Yes |
| chance_nodes | array of objects (4 fields) ≥ 1 item | Evidence | Yes |
| evidence | object | Evidence | Optional |
| max_detail_rows | integer ≥ 1, ≤ 500 | Numerical control | Optional |
| minimum_utility_advantage | number ≥ 0 | Your calibration | Optional |
| utility_nodes | array of objects (3 fields) ≥ 1 item | Evidence | Yes |
Each chance_nodes
record
| Field | Type | Required |
|---|---|---|
| conditional_probabilities | array of objects (3 fields) (≥ 1 item) | Yes |
| id | string (non-empty) | Yes |
| parents | array of string | Yes |
| states | array of string (≥ 2 items) | Yes |
{
"actions": [
{
"id": "scale"
},
{
"id": "hold"
}
],
"chance_nodes": [
{
"conditional_probabilities": [
{
"parent_states": {},
"probabilities": {
"high": 0.5,
"low": 0.5
}
}
],
"id": "demand",
"parents": [],
"states": [
"high",
"low"
]
},
{
"conditional_probabilities": [
{
"action_id": "scale",
"parent_states": {
"demand": "high"
},
"probabilities": {
"failure": 0.09999999999999998,
"success": 0.9
}
},
{
"action_id": "scale",
"parent_states": {
"demand": "low"
}, Truncated for display — the full payload is 109 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": "scale",
"evidence_probability": 1,
"expected_utility": 37,
"regret_to_best": 0
},
{
"action_id": "hold",
"evidence_probability": 1,
"expected_utility": 32,
"regret_to_best": 5
}
],
"assumptions": [
"The chance-node DAG, conditional probability tables, additive utility tables, and evidence timing encode the accountable decision owner's current model.",
"Evidence is observed before action; conditioning on an action consequence is rejected.",
"Expected value of perfect information is an upper bound before measurement cost, delay, partial accuracy, and implementation constraints."
],
"configuration": {
"minimum_utility_advantage": 0
},
"decision": "action_identified",
"diagram": {
"action_dependent_nodes": [
"outcome"
],
"chance_nodes": 2,
"joint_worlds": 4,
"nodes_affected_by_action": [
"outcome"
],
"observed_evidence": {},
"utility_nodes": 1
},
"executive_summary": {
"maximum_expected_value_of_perfect_information": 21,
"most_valuable_unobserved_node": "demand",
"selected_expected_utility": 37,
"utility_advantage_over_second": 5
},
"information_candidate_count": 1,
"interpretation": "The selected action maximizes expected governed utility inside the declared influence diagram. A different causal structure, probability calibration, utility scale, or evidence set can change the decision.", Truncated for display — the full payload is 67 lines.
How it works
Sequential Bayesian & bandits — Learn while deciding — update beliefs as evidence arrives and choose where the next unit of effort is worth spending.
- 1 Validate and topologically order the discrete chance DAG, requiring complete normalized conditional-probability tables for every parent-state and action combination.
- 2 Enumerate the bounded joint state space, condition only on evidence observed before action, and calculate each action's posterior expected additive utility.
- 3 Select the action with highest governed expected utility only when its advantage clears the practical decision threshold; retain regret to the best action for every alternative.
- 4 For each unobserved action-independent node, compute the optimal contingent action by state and its expected value of perfect information as an upper bound on a possible measurement program.
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
- The likelihood or reward model, prior support, action logging, delayed outcomes, and any stationarity assumptions match the deployment process.
- The chance DAG, CPTs, utility scale, evidence timing, and available actions encode the accountable owner's decision rather than a graph learned and interpreted automatically.
- Discrete states retain the distinctions that can change action or utility, and CPT calibration is validated out of time.
- Posterior probability and adaptive selection are model-conditional; they are not substitutes for randomized propensities or guaranteed safety.
- Expected value of perfect information is an upper bound before measurement cost, delay, partial accuracy, and operational constraints; it is not a promised return from collecting data.
Minimum evidence
- actions: at least 2 rows/items
- chance_nodes: at least 1 rows/items
- utility_nodes: at least 1 rows/items
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
- discrete acyclic chance-node structure and state vocabulary
- complete action-conditional probability tables calibrated out of time
- complete additive action utility tables
- causal directions and allowed action-to-chance links
- business utility scale and practical utility advantage
- which evidence is genuinely observable before action and which nodes can be measured
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 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": "solve an exact discrete bayesian influence" }
→ finds "solve_bayesian_influence_diagram"
gitrevio_capability_describe
{ "capability_id": "solve_bayesian_influence_diagram" }
→ returns the input schema and agent guidance shown on this page
gitrevio_capability_run
{ "capability_id": "solve_bayesian_influence_diagram", "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 analytical specification multiverse
Audit whether an analytical conclusion survives a prespecified multiverse of admissible windows, cohorts, metrics, and models using aligned bootstrap draws, a weighted specification curve, practical-effect support gates, and descriptive choice-influence diagnostics.
Value AI assistant rollout ROI
Value an aggregate AI-assistant rollout from aligned joint causal-effect draws, preserving delivery/time/defect/incident dependence while enforcing identification, out-of-time, overlap, metric-integrity, effective-sample, quality-harm, NPV, ROI, and payback gates.
Audit analytics challenger independence
Audit whether an analytical challenger supplies genuinely independent error information: use paired temporal moving-block bootstrap bounds on error correlation, incumbent-failure catch rate and common-mode joint failure, with simultaneous Bonferroni control across every screened challenger and explicit evidence gates.
Audit analytics function calibration readiness
Gate analytical functions on paired out-of-time decision loss against a frozen baseline using temporal moving-block bootstrap, autocorrelation- and weight-adjusted effective sample size, evidence coverage, lower confidence bounds, improvement probability and recent degradation rather than declaring a model calibrated from training fit.
Audit analytics transportability
Audit whether locally calibrated analytical functions retain decision-loss improvement across target-similar operating environments using similarity-weighted random-effects meta-analysis, between-environment variance, I-squared, sign consistency and a conservative target prediction interval.
Audit forecast ensemble lineage integrity
Audit whether a claimed forecast ensemble is a complete, independently sealed and point-in-time evidence set rather than duplicated consensus, then score only mature uncontaminated outcomes.