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
Example input
{
  "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.

Example output
{
  "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. 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. 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. 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. 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": "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.

Simulation & stress testing

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.

Constrained optimization

Analyze coordination entropy

Quantify privacy-safe cross-team seam complexity, concentration, latency, and failure load.

Decision analysis

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.

Decision analysis

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.

Statistical audit & measurement

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.

Statistical audit & measurement

See every tool in Org design, incentives & decisions →

Ready to See Your Engineering work clearly?

Request a free demo