Preview a stage

The preview shows what a stage would have done to a day of real traffic. It sets nothing: an agent earns its stage from evidence.

Rootplant credit-4217, synthetic · 465 runs · 1,303 tool calls · 12.0 h

Runs at once92971% of the calls
Runs, reviewed afterwards168≈ 2,359 a week, at the file's pace
Does not run206112 to a person (≈ 1,572 a week) · 94 shadow
Failed runs stopped31%good runs stopped: 35%

Stage per agent

one stage per agent · an example setting, not a recommendation

AgentCallsStageWhere the calls wentRunsReviewedTo a personShadow
bureau_agent449–OSCTM4000490
income_agent400–OSCTM400000
loan_orchestrator166–OSCTM016600
intake_agent129–OSCTM129000
kyc_agent94–OSCTM00094
policy_agent63–OSCTM00630
risk_agent2–OSCTM0200

The day

runs per half hour · 12.0 h

06:0012:0018:00

Dark marks show that the run went through. Red marks show that a call in the run would have been stopped.

Who was stopped

failed = credit.final_decision is deny

Failed runs stopped31%
Good runs stopped35%

The stops do not separate failed runs from good runs. A stage applies to the whole agent, so it cannot see which run it is.

The actions

Tools that are not marked count as irreversible and need the Trusted stage, as in the product. Mark the tools here. A limit reads the value on the call, otherwise the value on the run. If the value is missing, the call goes to a person.

ToolAgentCallsReversibleNeedsDecision now

What the preview does not say

  • The stage is your assumption. In the product the evidence sets the stage, and nobody can move an agent above it. The preview shows what a stage would have done, not that the agent has earned it.
  • The review work has no price here. Calls that go to a person, and calls reviewed afterwards, are work for people. What-If prices that work.
  • A stop is not a prevented error. We see that a call in a failed run would have been stopped, not that the error started there. The decision may have been made before the call.
  • What happens after a stop is unknown. The agent gets a Blocked answer and may retry or do something else. Later calls in the same run still count, but are faded, and 201 calls are marked as after a stop.
  • Failed is your definition. A denial is not an error in itself. Choose the signal that shows that something went wrong.
  • The time of a downgrade does not come from the engine. The alarm rule is a simple comparison with the first runs in the file, with no look-ahead. The rule sees only the outcome you chose, and it names no cause and no agent. In the product a stage falls when the engine has a finding, and that time needs a real run. You choose which agents are downgraded by one stage.
  • A downgrade is immediate, and the preview only downgrades. The preview does not count the time to send a new policy bundle to the guard, or the recovery after a fix.
  • The mandate applies per agent here. In the product it applies per agent and field of work. Risk acceptance is not included either.
  • Weekly volumes extend the pace of the file in a straight line. They are not measured weekly figures.

The decision rule

The decision for each call follows mandate.rego and limits.rego. The rules are rewritten in JavaScript so that the file can stay here. The rewrite is compared with real OPA (1.1.0-static) across 270 combinations of stage, reversibility, limit and value, with 0 differences (6 Nov 2026). If the policy changes, the comparison must be run again. The requirement per action comes from the reference policy, and a customer organisation may change it.

Prototype, working draft. The live preview plays the file over time and lets you change each stage. Here one setting is fixed.