Audit decision flow integrity
Audit management decision histories for unresolved work, state cycles, unowned dwell and excessive lead-time tails using immutable event sequences, whole-decision bootstrap uncertainty, simultaneous flow-level gates and state bottleneck diagnostics.
What it's for
Makes invisible management queues measurable: leaders see where decisions remain open, loop, lose ownership, or accumulate tail delay before governance debt becomes delivery debt.
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 |
|---|---|---|---|
| bootstrap_draws | integer ≥ 200, ≤ 20000 | Numerical control | Optional |
| confidence_level | number ≥ 0.5, < 1 | Your calibration | Optional |
| events | array of objects (10 fields) ≥ 20 items | Evidence | Yes |
| max_detail_rows | integer ≥ 1, ≤ 500 | Numerical control | Optional |
| maximum_cycle_fraction | number ≥ 0, ≤ 1 | Your calibration | Optional |
| maximum_lead_time_hours_p90 | number ≥ 0 | Your calibration | Optional |
| maximum_unowned_dwell_fraction | number ≥ 0, ≤ 1 | Your calibration | Optional |
| maximum_unresolved_fraction | number ≥ 0, ≤ 1 | Your calibration | Optional |
| minimum_decision_count | integer ≥ 5, ≤ 100000 | Your calibration | Optional |
| seed | integer ≥ 0, ≤ 2147483647 | Numerical control | Optional |
Each events
record
| Field | Type | Required |
|---|---|---|
| decision_id | string (non-empty) | Yes |
| dwell_hours | number (≥ 0) | Yes |
| flow_id | string (non-empty) | Yes |
| id | string (non-empty) | Yes |
| owner_assigned | boolean | Yes |
| owner_role | string (non-empty) | Yes |
| sequence | integer (≥ 0, ≤ 1000000) | Yes |
| state | string (non-empty) | Yes |
| terminal | boolean | Yes |
| weight | number (> 0) | Yes |
{
"bootstrap_draws": 300,
"confidence_level": 0.8,
"events": [
{
"decision_id": "product-decision-00",
"dwell_hours": 10,
"flow_id": "product-approval",
"id": "product-approval-00-0",
"owner_assigned": true,
"owner_role": "product-owner",
"sequence": 0,
"state": "proposed",
"terminal": false,
"weight": 1
},
{
"decision_id": "product-decision-00",
"dwell_hours": 20,
"flow_id": "product-approval",
"id": "product-approval-00-1",
"owner_assigned": true,
"owner_role": "tech-lead",
"sequence": 1,
"state": "technical-review",
"terminal": false,
"weight": 1
},
{
"decision_id": "product-decision-00",
"dwell_hours": 5,
"flow_id": "product-approval",
"id": "product-approval-00-2",
"owner_assigned": true,
"owner_role": "product-owner",
"sequence": 2,
"state": "approved",
"terminal": true,
"weight": 1
},
{
"decision_id": "product-decision-01",
"dwell_hours": 10,
"flow_id": "product-approval", Truncated for display — the full payload is 727 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.
{
"configuration": {
"bonferroni_one_sided_tail_probability": 0.05,
"bootstrap_draws": 300,
"confidence_level": 0.8,
"maximum_cycle_fraction": 0.1,
"maximum_lead_time_hours_p90": 720,
"maximum_unowned_dwell_fraction": 0.05,
"maximum_unresolved_fraction": 0.2,
"minimum_decision_count": 20,
"seed": 23,
"simultaneous_gate_count": 4
},
"decision": "represented_decision_flows_clear_integrity_gates",
"flow_diagnostics": [
{
"cycle_fraction": 0,
"cycle_fraction_upper_bound": 0,
"decision": "decision_flow_integrity_supported",
"decision_count": 20,
"failed_gates": [],
"flow_id": "product-approval",
"lead_time_hours_p90": 35,
"lead_time_hours_p90_upper_bound": 35,
"mean_handoff_count": 2,
"state_bottlenecks": [
{
"event_count": 20,
"mean_dwell_hours": 20,
"p90_dwell_hours": 20,
"state": "technical-review"
},
{
"event_count": 20,
"mean_dwell_hours": 10,
"p90_dwell_hours": 10,
"state": "proposed"
},
{
"event_count": 20,
"mean_dwell_hours": 5,
"p90_dwell_hours": 5,
"state": "approved"
} Truncated for display — the full payload is 68 lines.
How it works
Statistical audit & measurement — Check whether a number is fit to decide on: coverage, timing, reconciliation, and the gaps a dashboard hides.
- 1 Reconstruct each decision from immutable ordered state events, preserving open decisions, dwell time, aggregate owner role, terminal semantics and one constant decision weight.
- 2 Within each flow calculate weighted unresolved and cycle fractions, unowned dwell share, p90 elapsed lead time, handoffs and state dwell bottlenecks; resample whole decisions to retain their internal event dependence.
- 3 Bonferroni-adjust the four one-sided gates across every screened flow and request remediation whenever conservative support, ownership, acyclicity or lead-time limits fail.
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
- Metric definitions, weights, aggregate grain, sampling, missingness, dependence, and comparison windows correspond to the management claim being audited.
- Every offline and online transition is captured once; sequence, state, terminal and ownership semantics are stable; open elapsed time includes the current state; decisions are the independent resampling unit; logging changes and censoring are documented.
- Association, instability, or measurement quality is not a causal effect and must not be converted directly into an individual employment decision.
- A slow state is an aggregate process bottleneck, not proof that a role or person caused delay. Open elapsed time is a lower bound, and the output cannot become an employee leaderboard or autonomous reassignment authority.
Minimum evidence
- events: at least 20 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
- versioned decision-flow event ledger combining workflow transitions, offline approvals, ownership changes and open-state elapsed time without dropping unresolved decisions
- flow/decision/state/terminal semantics, owner-role taxonomy, event clock and late-arrival policy, weighting, support threshold, integrity gates, confidence, bootstrap design and remediation 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 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": "audit management decision histories for unresolved" }
→ finds "audit_decision_flow_integrity"
gitrevio_capability_describe
{ "capability_id": "audit_decision_flow_integrity" }
→ returns the input schema and agent guidance shown on this page
gitrevio_capability_run
{ "capability_id": "audit_decision_flow_integrity", "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
Calculate decision debt liability
Price unresolved management decision debt from coherent joint scenarios for accumulated delay, value at risk, rework, staleness and resolution cost; calculate expected liability, reserve breach, confidence reserve, CVaR and exactly reconciled decision tail contributions.
Optimize decision authority queue policy
Optimize delegation and escalation by assigning one eligible authority option to each decision class while internalizing nonlinear Erlang-C waiting externalities across shared reviewer pools, wrong-decision and escalation loss, coherent demand scenarios, operating cost, utilization-breach probability and CVaR.
Analyze coordination entropy
Quantify privacy-safe cross-team seam complexity, concentration, latency, and failure load.
Analyze delayed management feedback stability
Stress the dynamic stability of a delayed signed organizational feedback model: build a VAR companion matrix from interval-valued lagged influences, evaluate midpoint, interval corners, and sampled simultaneous coefficients, calculate spectral and transient amplification margins, and rank one-edge damping leverage without claiming an exhaustive robust-control certificate.
Audit executive technology reporting integrity
Audit a frozen executive technology pack for complete metric/risk scope, point-in-time source and definition lineage, numerical reconciliation, supported narrative direction, independent review and evidence coverage.
Audit multigroup metric measurement invariance
Audit whether a multi-indicator aggregate management metric measures a comparable one-factor construct across teams, products, repositories, periods, or companies: fit training-only pooled and group PCA loadings, test configural dominance, metric loading cosine, scalar intercept range, residual variance, and untouched-test reconstruction invariance before any group ranking is trusted.