AI governance

Five levels of authority, and the things no agent ever gets

The question a controller asks after the demo is not whether the agent is clever. It is what happens the day it is confidently wrong at two in the morning. This page is the answer, in the form of a permission model you set and we enforce.

Model this on your own data

Send us your size and stack and we will replay a month of your transactions against every authority level.

1 / 3
Enforced as middlewareSet per agent and per thresholdReversible instantly

The matrix

Pick a level. See exactly what it unlocks.

This is the real model, not a simplification for the website. Four rows at the bottom stay locked at every level, including the highest.

Act inside rules your controller wrote.6 of 12 actions permitted

Answer a question from your dataread onlyL0
Run a report or reconciliationread onlyL0
Draft a vendor billheld for reviewL1
Draft a journal entryheld for reviewL1
Send an invoice reminderinside dunning policyL2
Post a coded bill under thresholdmatched PO, within toleranceL2
Post a bill over thresholdneeds named approverL3
Schedule a payment runproposal only, never releaseL3
Release fundshuman only, any amountnever
Close an accounting periodhuman onlynever
Reopen a closed periodhuman only, loggednever
Change its own permissionsadministrator onlynever

Why this is middleware and not a prompt

A great deal of AI product safety is currently implemented as instruction: the system prompt tells the model what it must not do, and the model, being agreeable, mostly complies. That is an acceptable design for a chat assistant and an unacceptable one for something with write access to a general ledger.

The problem is not that models disobey often. It is that the failure is unbounded and undetectable. An instruction-based control has no enforcement point — nothing in the system can tell you whether the rule held, because there is no moment where the rule was evaluated as code. You find out from the consequences.

So authority here sits in the execution path, not in the context window. When an agent proposes an action, the proposal is a structured object — action type, target records, amounts, the policy it believes applies. That object is handed to a deterministic engine which evaluates it against the levels and rules configured for your tenant, and returns permit, hold-for-approval, or reject. The agent is not consulted about the outcome and cannot retry with a better argument.

An instruction is a request. A permission check is a wall.The difference only matters on the day it matters, which is the day you cannot predict.

What that gives you operationally

  • A provable answer. For any posted transaction you can show which rule permitted it, evaluated deterministically, rather than inferring intent from a model output.
  • A stable blast radius. The worst case for a misbehaving agent is bounded by its configured level, not by how persuasive its reasoning was.
  • Separation of duties that survives. The agent proposing and the engine permitting are different systems with different failure modes. A bug in one does not silently grant the other.
  • Testability. Permission logic is code, so it is unit tested, versioned, and reviewable — including by your auditor.

The four things no agent may ever do

These are not defaults that a determined administrator can lower. They are absent from the permission model entirely, which means there is no configuration that produces them.

  • Release funds. An agent can prepare a payment run, select invoices, verify remittance detail, and queue it. A named human releases it, at any amount, at any confidence, forever.
  • Close or reopen an accounting period. Agents drive the close checklist and tie the subledgers. Signing is an act of assertion by a person, and pretending otherwise would make the assertion worthless.
  • Write to the general ledger directly. Every posting goes through the deterministic accounting engine that enforces balance, period state, and account validity. There is no agent-only path, not even for reversals.
  • Modify its own permissions. Authority is administered in a surface agents cannot reach. An agent that could widen its own scope has no scope.
Why we publish this list

A capability list is marketing. A restriction list is a commitment — it is the thing a competitor can point at, and the thing you can hold us to. If we ever needed to change one of these four, it would be a versioned, announced change to a published document rather than a quiet release note.

Where we recommend starting

Almost every customer should begin with everything at Level 1. The agents draft, your team reviews, and for the first four to six weeks the value is speed of preparation rather than autonomy. That period is also what builds the labelled corpus that makes the accuracy numbers real.

The first thing to move to Level 2 is usually invoice reminders inside a dunning policy, because the downside of an error is embarrassment rather than a misstatement. The second is bill posting for recurring vendors under a threshold — typically after that vendor has thirty clean drafts behind it, which most controllers set as a rule rather than judging case by case.

A reasonable steady state after a year, for a company between $10M and $50M, is Level 2 on accounts payable for known vendors under $2,500, Level 2 on dunning, and Level 1 everywhere else. That configuration removes most of the manual work while leaving every judgement call with a person. Nothing about the product pushes you further, and our pricing does not reward it.

Four properties

How authority behaves in practice.

Enforced below the agent

Authority is checked by a policy engine the agent cannot address. There is no prompt that talks its way past a rule, because the rule is not being read by a language model.

Scoped narrowly by default

A level is granted per agent, per workflow, per entity, and per threshold — never globally. "Level 2" is not a property of an agent; it is a property of one agent doing one thing under one limit.

Every grant is logged

Raising an authority level is a privileged action recorded like any other, with who changed it, when, from what to what, and why if a reason was given.

Reversible in one action

Any level can be dropped instantly, per agent or globally, by an administrator. Work in flight falls back to draft rather than failing.

Questions

What controllers ask.

Can an agent escalate its own level temporarily?
No. There is no mechanism for an agent to request, borrow, or inherit a higher level, including for a single action. If work exceeds its authority the work is held, not elevated.
What happens to in-flight work if we lower a level?
It falls back to draft and waits for a person. Nothing is discarded and nothing posts on the old permission. Lowering a level is safe to do mid-day and is the correct first response to anything that looks wrong.
Does Level 2 mean the agent acts without any record?
It acts without a human in the loop. It never acts without a record — every Level 2 action produces the same full audit entry as an approved one, including the policy that permitted it and its confidence score.
How does this interact with our approval matrix?
It respects it. Level 3 routes to whoever your existing matrix names for that amount, department, and vendor. We do not introduce a parallel approval hierarchy, because two approval systems is how approvals stop meaning anything.
Can we set different levels per entity?
Yes. A common pattern in multi-entity groups is Level 2 in the operating companies and Level 1 in the holding company, where volume is low and every entry is scrutinised anyway.
Who can change authority levels?
Administrators only, and the change is logged with actor, timestamp, and before-and-after values. Some customers additionally require two administrators for any increase, which is a configuration we support.

See what each level would have done.

We will replay a month of your real transactions against every authority level, so you can choose from evidence rather than from a diagram.