diagnose_process
Diagnose a running business process from operational data to decide if it needs fixing, identify the best intervention (Automate, Consolidate, Quality, Eliminate), and output net EUR savings with an Accelerate/Fix/Stop verdict.
Instructions
Diagnose a single existing business process from its observed operational signals and return whether it is too heavy to leave alone, the one intervention that fixes it (Automate / Consolidate & re-sequence / Quality controls / Eliminate), the modelled net EUR saving against its measured baseline, the efficiency gain, an Accelerate/Fix/Stop verdict, and a decision confidence governed by how much was actually measured. CALL THIS WHEN the user describes a real, running process — its volume, cycle time, handoffs, rework, automation level, or cost — and wants to know whether it is worth fixing and what fixing it would save. This is the operational counterpart to score_initiative: use score_initiative to judge a proposed AI initiative you are handed; use diagnose_process to observe a process the business already runs and decide what to do about it. Call list_taxonomy first if unsure which function enum value to pass. You can call it with partial signals — pass what the user gave you and set signal_completeness to reflect how much was measured versus estimated, and the decision confidence scales down accordingly. Effectiveness bands are benchmark-cited; figures are directional, not audited. Pure deterministic calculation — no network, auth, or side effects.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| function | Yes | Business function the process belongs to. See list_taxonomy. | |
| handoffs | Yes | Distinct owners/systems an instance passes through. | |
| readiness | No | Optional. Org change-absorption capacity (caps realised saving). Defaults to traditional. | |
| process_id | Yes | Stable identifier for the process. | |
| rework_rate | Yes | Fraction of instances reopened/reworked (0–1). | |
| touch_ratio | Yes | Touch-time ÷ cycle-time (0–1). The remainder is wait. | |
| cycle_time_days | Yes | Median wall-clock days per instance, end to end. | |
| automation_level | Yes | Share already automated (0–1). | |
| direct_spend_eur | Yes | Annual licence/vendor/tooling spend on the process in EUR. | |
| instances_per_year | Yes | Process volume: how many times it runs per year. | |
| signal_completeness | No | Optional. How much of the above was measured vs defaulted (0–1). Governs confidence; defaults to 0.7. | |
| fte_hours_per_instance | Yes | Human touch-time in hours per instance. | |
| loaded_hourly_rate_eur | Yes | Fully-loaded labour cost per hour in EUR. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| verdict | Yes | The call on the intervention. | |
| function | Yes | Business function diagnosed. | |
| heaviness | Yes | Process heaviness index, 0–100. | |
| disclaimer | Yes | Directional decision aid, not an audited figure. | |
| process_id | Yes | Echo of the input process id. | |
| assumptions | Yes | The assumptions behind the figure — never a naked number. | |
| bvf_version | Yes | AI BVF protocol version used. | |
| intervention | Yes | Recommended move. | |
| brain_version | Yes | Advisor Brain model version used. | |
| net_saving_eur | Yes | Modelled net annual saving in EUR after readiness capture, low/high. | |
| offer_to_execute | Yes | True when the verdict warrants offering to action it (Accelerate). | |
| baseline_cost_eur | Yes | Current annual cost: labour + direct spend. | |
| evidence_maturity | Yes | Strength of the benchmark evidence behind the effectiveness band. | |
| advisory_next_step | No | Optional CTA, present only for Fix/Stop verdicts. | |
| drag_decomposition | Yes | Share of heaviness from each friction factor (sums to ~1). | |
| decision_confidence | Yes | Confidence in the verdict, 0–100. | |
| efficiency_gain_pct | Yes | Efficiency improvement on the targeted slice, percent. |