Outcome scorecard

Measure the desk before an agent goes live, then report what changed. Task completion, recovery, safety violations and cost per outcome come from the trust ledger, and value is priced at the measured baseline instead of assumed minutes.

After reading this page you will be able to:
  • Capture a pre-deploy baseline for an agent
  • Read an agent's scorecard against its baseline
  • Price the value report with a measured cost per resolution

A value report that multiplies resolutions by an assumed number of minutes tells you what was assumed, not what changed. The outcome scorecard measures the desk before an agent goes live and compares what happens after.

The baseline

POST /api/governance/scorecard/{agent}/baseline (agents.update) measures the desk over the last days (default 30), optionally only in some categories:

  • tickets resolved, and resolved per day;
  • median and 90th-percentile handle time, from created to resolved;
  • reopen rate;
  • the open backlog.

Send staff_cost_usd, what the desk's people cost over those days, and the baseline records a measured cost per resolution. Without it, the cost model's figure is used and marked assumed.

A baseline records pre_deploy: whether the agent had no receipted action yet when it was taken. One taken after go-live is kept but flagged. A baseline is never silently overwritten; send replace: true, and the one it replaces stays in its history. Each baseline is receipted on the trust ledger and audited as agent.scorecard.baseline.

A background pass captures a baseline automatically for every agent that has neither a baseline nor a receipted action, so a new agent is measured before its first action.

The scorecard

GET /api/governance/scorecard/{agent}?days=30 (agents.read and analytics.read) reads its counts from the trust ledger, so every number is backed by receipts an auditor can verify. Receipts that no longer verify are left out.

MeasureHow it is counted
Task completion rateActions that ran and succeeded (not refused, rejected, failed, or found missing by a read-back) over all actions attempted
Recovery rateOf the runs that hit a failed action, the share that went on to complete an action in the same run
Safety violationsUnsafe reviewer verdicts on the agent's work, plus actions a policy, guardrail or kill switch refused
Cost per outcomeThe agent's spend over its outcomes: tickets it resolved plus actions that completed
vs baselineHandle time, reopen rate, backlog and cost per resolution, each as the agent's figure minus the baseline's
ValueThe agent's resolutions priced at the baseline's cost per resolution, marked measured or assumed

The value report

When an agent's baseline has a measured cost per resolution, the value report (GET /api/analytics/value) prices that agent's resolutions with it instead of the cost model, and marks the row value_basis: "measured". Agents without one keep the cost model and read assumed.