Approvals were built for humans. Your systems stopped waiting.
Sign-off worked when actions moved at the speed of meetings. Pricing engines, payment jobs, and AI agents don't book meetings. How teams keep real approval power without becoming the bottleneck — in plain language.
The rule everyone has, and nobody can enforce
Every business has a version of the rule: discounts over 20% need a manager. Payments over $10,000 need finance. New vendors need procurement. The rule lives in a policy document, a training deck, and the memory of the people who were in the meeting.
Then the systems arrived. The pricing engine reprices overnight. The payment job runs on a schedule. The AI assistant books, buys, and renews on its own. None of them read the policy document, and none of them wait for the meeting. The rule still exists — it just no longer touches the actions it was written for. What is left is approval theater: sign-off on the plan, silence on the execution.
The two bad fixes
Teams usually try one of two things. The first is putting humans back in every loop — which works for about a week, until the queue grows, the approvals become rubber stamps at best and a business-stopping bottleneck at worst, and everyone quietly routes around the process. The second is giving up gracefully: let the automation run, watch the dashboards, and clean up what goes wrong. That is not approval; it is regret with better tooling.
The fix that works: three outcomes instead of two
The mistake in both fixes is treating every action the same. A working approval system at machine speed makes a decision per action, in the action's own path, with three possible answers instead of two:
Allow — the action is inside the rules. It proceeds instantly, no human involved, no queue. This is almost everything, which is what keeps the system fast. Block — the action clearly breaks a rule. It stops before it executes, not after. Escalate — the interesting case. The action is held, a person with the authority to decide gets it with the evidence attached, and nothing happens until they answer. The human is spent exactly where human judgment is worth something, and nowhere else.
Every one of those answers is recorded and signed at the moment it is made — so the question “who approved this?” has a checkable answer for every action, not just the ones that went through a meeting. Why the signature matters is its own story: your logs say what happened; they can't prove it.
“Won't this slow everything down?”
Only if the decision is slow or the rules are vague. The decision itself is a deterministic evaluation — the same inputs always produce the same answer, computed in well under a second. And the rules are yours: if too much escalates, the rule is telling you it needs a sharper threshold, and you tighten it with evidence instead of arguing from anecdotes. The formal treatment of why determinism is what makes this safe to rely on is in The Execution Verifiability Gap.
Start without risking anything
The first step costs nothing and blocks nothing: run the rules in read-only Shadow Mode against your real traffic and see what would have been held — the discount stacks, the off-policy renewals, the purchases that never had an approval touch them. Most teams find the case for the real thing in that first report. Start at Shadow Mode, or trigger a live decision yourself in the sandbox — no account required.
The research note behind this post covers the decision model, the signed record, and the reproducibility contract in full.
Read The Execution Verifiability Gap