Human-in-the-loop automation is a workflow in which software does the volume and a named person reviews, edits or approves specific items before they take effect. It is a control only if that person can refuse, sometimes does, and leaves a record.
Almost every article on human-in-the-loop automation stops at the definition. Our position is narrower and, we think, more useful: the loop is not the design decision. The design decision is which items reach a human, how many of them a human can actually absorb, and how you would ever notice that the gate had stopped working. On 26 July 2026 a Hacker News commenter, chonghaoju, put the failure mode in one sentence while asking a vendor how they handled it: "users start rubber-stamping everything within a week, and then the whole layer is theater" (Hacker News). That is not a training problem or a culture problem. It is an arithmetic problem, and it has a numeric answer.
The short answer: A human gate is a real control only when the reviewer has the authority to refuse, enough context to refuse in seconds, and a log that proves refusals happen. If your refusal rate has sat near zero for a quarter, you are paying for oversight you are not getting.
Last updated: July 30, 2026.
The loop everyone draws, plus the two exits nobody draws: the item that never reached a human, and the item a human waved through.
One disclosure before the detail. We have not run a controlled trial of the thresholds and cost model below inside a customer's review queue, and we will not present a log we did not collect. Every number here is either a cited third-party finding or arithmetic from stated assumptions you can re-run with your own inputs, and each is labelled as one or the other. Two sources a reader would reasonably expect refused every fetch we tried: the Gartner press releases on agent governance, and the ScienceDirect copy of Ben Green's oversight paper. We cite open-access versions of the same work instead.
What human-in-the-loop automation is, and the five stages of the loop
Human-in-the-loop automation inserts a person at a defined point in an otherwise automated process, with the power to approve, edit or reject a specific item before it has effect. It predates AI agents by decades, in credit underwriting and claims adjudication, but AI agents are what made the design question urgent, because an agent takes actions rather than producing recommendations. The distinguishing feature is not that a human is nearby. It is that the process stops and waits for a decision that a person owns.
Written as stages, the loop has five, and most implementations get four of them right:
| Stage | What happens | The part teams skip |
|---|---|---|
| 1. Act | The agent or model produces a candidate output or proposes an action | — |
| 2. Route | A rule decides: execute now, or hold for review | The rule is usually a confidence score when it should be an action class |
| 3. Review | A person sees the item and approves, edits or rejects | The person is shown the transcript, not the decision |
| 4. Record | The decision, the reviewer, the timestamp and the reason are written down | Rejections and reasons are often not stored at all |
| 5. Feed back | Rejections change the model, the prompt, the routing rule or the scope | Almost nobody closes this; the queue just keeps running |
Stage 4 is the one that turns a UX feature into a governance control. If the system stores approvals but not rejections, or stores neither with an identity attached, you have built a delay, not an oversight mechanism. Our earlier analysis of audit trails for agent actions makes the same argument from the other side: the record of what was refused is the part an auditor asks for and the part most platforms never wrote.
Stage 5 is the one that decides whether the queue shrinks over time or grows forever. A loop with no feedback path is a permanent tax on headcount, and it is the single most common reason a human-in-the-loop pilot looks fine at 200 items a day and collapses at 4,000. Where the feedback loop exists, review stops being pure exception handling and starts narrowing the set of edge cases that reach a person at all.
You will also see the pattern abbreviated to HITL, and HITL automation and human-in-the-loop automation mean the same thing. We use the long form here because the short one gets stretched to cover data labelling, which is a different activity entirely.
What human-in-the-loop automation is not
Four things get called human-in-the-loop automation and are not it. The confusion matters because each has a different cost profile and a different failure mode.
It is not human-on-the-loop. In a human-on-the-loop design the process runs to completion and a person monitors it, intervening if something looks wrong. Nothing waits. That is a monitoring control, not an approval control, and it is appropriate exactly where the action is reversible. Calling it human-in-the-loop in a compliance document is a misstatement that a regulator can check.
It is not human-in-command. Human-in-command usually means a person decides whether the system may be used at all, and under what conditions. That is a deployment-time decision, not a per-item one.
It is not QA sampling. Reviewing 2% of completed outputs after the fact is a measurement programme. It tells you the error rate. It does not stop any individual error, and it should not be described to a customer or an auditor as review.
It is not data labelling or RLHF. In machine-learning circles, "human in the loop" often means humans producing training signal: annotation, preference ranking, red-teaming. That is a model-development activity. It shares a name with the operational pattern in this article and shares almost nothing else, and conflating the two is why vendor comparisons of human-in-the-loop automation tools so often compare unlike things.
And a fifth, which is less a definition error than a wish: a human approval step is not a transfer of liability. EU data-protection guidance is explicit that a person with no actual influence on the result does not count as human involvement, and the AI Act points the same way by requiring that overseers have authority. More on that below.
The uncomfortable evidence: a human in the loop often makes it worse
The argument for human oversight is intuitive, and the evidence behind it is weaker than almost anyone assumes. Before you design a gate, read what the research found when it measured people reviewing machine output.
The clearest single experiment is Ben Green and Yiling Chen's algorithm-in-the-loop study, presented at ACM FAT in 2019. Participants made risk predictions with the algorithm's prediction shown to them. The result: "Only 23.7% of participants in the treatment group earned a higher average reward than the risk assessment," while 64.1% earned a lower one, and the group as a whole produced a 46.5% higher false positive rate than the algorithm they were overseeing (Green and Chen, FAT 2019). People given the machine's answer beat it less than a quarter of the time and degraded it nearly two thirds of the time. They also could not tell which they had done: participants' confidence in their own performance was negatively associated with their actual performance.
Green later surveyed the policy layer built on that intuition. Reviewing 41 policies requiring human oversight of government algorithms, he concluded that "rather than protect against the potential harms of algorithmic decision-making in government, human oversight policies provide a false sense of security in adopting algorithms and enable vendors and agencies to shirk accountability" (Green, Computer Law & Security Review 2022, preprint). That is not an argument against oversight. It is an argument against unmeasured oversight.
The mechanism has a name and a literature. Automation bias, meaning over-reliance on automated output, was the subject of a systematic review by Goddard, Roudsari and Wyatt that screened 13,821 papers and analysed the 74 that met inclusion criteria. Its findings on what makes automation bias worse read like a description of a production review queue: "Environmental mediators included workload, task complexity, and time constraint, which pressurized cognitive resources" (Goddard et al., JAMIA 2012). The same review lists training among the mitigators, but its own discussion is more equivocal: it notes work implying training had no impact on automation bias, while reporting that internally perceived accountability did help. People who saw themselves as personally accountable made fewer automation-bias errors, and externally imposed accountability worked in two studies and not in a third.
Healthcare has run the largest natural experiment in what happens when a human gate is asked to absorb too much volume. A systematic review of 23 studies of computerised physician order entry found that the "range of average override alerts was 46.2%-96.2%," and that across studies between 29.4% and 100% of those overrides were judged appropriate, with the spread by alert type running from 63.4%-100% for drug-allergy warnings down to 0%-95% for drug-drug interactions (Poly et al., JMIR Medical Informatics 2020). Read that twice. In some settings clinicians dismissed more than nine in ten machine warnings, and for one alert category the low end of the appropriateness range is zero. The gate was open; the gate was also, formally, still in place.
Put the three together and the design brief writes itself. A human in the loop does not automatically improve the output. It improves the output when the human has enough time, enough context, enough authority and enough personal accountability. Each of those is a quantity you can either budget for or fail to.
Here is the honest scoreboard on adoption, too. Deloitte surveyed 3,235 IT and business leaders in 24 countries and found that only 21% say their organisation has a mature governance model for agentic AI, with the missing pieces being exactly the ones this article is about: clear boundaries on which decisions an agent may make alone, real-time monitoring, and audit trails for agent actions (Deloitte, April 2026). A vendor survey of over 500 enterprise leaders puts human-in-the-loop as the most common management approach at 38%, with 20% saying their systems already run autonomously with minimal oversight (Zapier, 2026). Most organisations have chosen the pattern. Four in five have not yet built the governance it needs.
The Say-No Test: three signals your gate is a control
We use a three-signal check we call the Say-No Test, because a gate that cannot produce a "no" is a delay with a UI. It is deliberately cheap: you can run it against any existing approval step in about an hour, and it does not require instrumenting anything new.
Signal 1 — Authority. Can the reviewer refuse without asking anyone? If rejecting an item means opening a ticket, pinging a manager, or explaining yourself to the team whose throughput target you just dented, the reviewer will approve. The EU's AI Act is explicit that the oversight person must be able "to decide, in any particular situation, not to use the high-risk AI system or to otherwise disregard, override or reverse the output" (EU AI Act, Article 14). Ask two questions: does a rejection require anyone else's consent, and is the reviewer measured on queue throughput? If either answer is bad, signal 1 fails.
Signal 2 — Legibility. Can the reviewer refuse in seconds, from what is on screen? "Approve refund of $340 on order 88213, requested by the account owner in ticket 4471, customer's third refund this quarter" is reviewable in about five seconds. Two thousand tokens of agent reasoning is not reviewable at all, and a reviewer who cannot review quickly stops reviewing. Goddard's mediators are the reason: workload and time constraint are what convert a competent reviewer into an approver. The test is mechanical. Time ten real items and look at the distribution, not the average.
Signal 3 — Trace. Do refusals exist in the log, with a reason and a person? If your system records approvals only, the Say-No Test cannot be run at all, and neither can any audit. You need, per item: who decided, what they saw, what they decided, why, and when.
The Say-No Test has one output number: the refusal rate, the share of reviewed items where the human changed or blocked the outcome. A refusal rate of zero over a full quarter means one of two things. Either the automation is so good the gate is unnecessary, or the gate is theatre. The only way to tell them apart is to sample the auto-approved stream, which we come back to below.
Confidence thresholds versus action classes: where the gate belongs
Most human-in-the-loop automation content assumes routing by confidence score: the model reports how sure it is, anything below a threshold goes to a person. That is the right default for extraction and classification, and the wrong default for actions. The distinction is worth being precise about, because it is the design decision that most determines whether the queue is survivable.
| Confidence-threshold gating | Action-class gating | |
|---|---|---|
| Routing rule | Model self-reported score below t | Action type, blast radius, spend or data class |
| Fits | Document extraction, classification, entity matching, translation | Payments, refunds, external messages, deletions, permission changes, anything irreversible |
| Queue volume | Varies with input difficulty — spikes exactly when inputs are novel | Predictable and budgetable from the action mix |
| Failure mode | Adversarial or novel input arrives with a volume spike; reviewers are busiest at the worst moment | Over-broad classes send routine work to humans; the queue is boring but expensive |
| Auditability | "The model was 0.87 sure" is hard to defend to an auditor | "All outbound payments over $500 require a second person" is a policy sentence |
| Tuning knob | The threshold t | The class boundary and the spend/sensitivity band |
Confidence scores have a specific weakness for action gating: a model's self-reported confidence is a statement about its own distribution, not about the consequences of being wrong. A model can be 0.95 confident about deleting the wrong customer record. Nothing in the score encodes reversibility, and reversibility is what actually determines whether you want a human.
They also have a scheduling weakness that is easy to miss. Low-confidence items cluster around a new document template, a new supplier format, a new attack. So the queue does not fill smoothly. It fills in bursts, and the burst arrives at precisely the moment the items most need careful attention. Action-class gating produces a stream whose size you can predict a quarter ahead.
Use both, in a fixed order:
- Class first. Enumerate the actions the agent can take. Mark each one reversible or not, and attach a spend band and a data-sensitivity band. Everything irreversible above the lowest band gets a human gate regardless of confidence. Our earlier analysis on agent guardrails argues the harder version of this: for a large share of these actions the correct answer is not "ask a human" but "forbid it in the scope", which costs nothing to review.
- Confidence second, inside a class. Within the classes that are reversible and low-stakes, use a confidence threshold to sample the uncertain tail into review.
- Random sample third. A small random slice of the auto-approved stream goes to a human regardless of class or confidence. Without it you have no measurement of what the gate is missing.
Step 3 is the one almost nobody implements, and the only one that detects a threshold drifting wrong.
How many items can your reviewers actually absorb?
Here is the arithmetic that decides your threshold, and it has nothing to do with accuracy. It is a capacity model, and you can run it on the back of an envelope before you write any code. The inputs below are illustrative; substitute your own.
Reviewer-hours needed per day = (daily volume × escalation rate × seconds per review) ÷ 3,600.
Take a queue of 4,000 items a day and a genuinely fast review at 90 seconds per item:
| Escalation rate | Items to review/day | Reviewer-hours/day | Reviewers at 6 productive hours |
|---|---|---|---|
| 30% | 1,200 | 30.0 | 5.0 |
| 20% | 800 | 20.0 | 3.3 |
| 10% | 400 | 10.0 | 1.7 |
| 5% | 200 | 5.0 | 0.8 |
| 3% | 120 | 3.0 | 0.5 |
Now invert it, because this is the direction that matters. If you have two reviewers and they can each give the queue six focused hours a day, you have 12 reviewer-hours. At 90 seconds an item that is 480 items, which at 4,000 items a day is a 12% escalation rate. That is your threshold, before anyone has looked at a single confidence score.
Say that plainly: the confidence threshold is not chosen by picking an accuracy target. It is chosen by dividing your reviewers' available attention by the volume, and then finding the threshold that produces that escalation rate. If the accuracy you need requires a 30% escalation rate and you can staff 12%, you do not have a threshold problem. You have a scope problem, and the fix is to narrow what the automation attempts, not to widen the gate and hope.
Two adjustments make the model less optimistic and more honest:
- Six productive hours is generous for a queue that also does anything else. If reviewing is one of three responsibilities, use three.
- Ninety seconds assumes signal 2 passes. If reviewers must open another system to check context, the real number is three to five minutes, and every row in the table above triples.
This is the whole scalability story for HITL automation, and it is why the bottleneck is never the software. Straight-through processing has no ceiling; a review queue has exactly as much ceiling as you are willing to staff.
A useful sanity check while you are here: compare the reviewer-hours per day against the hours the process took before automation. Keep the same 4,000 items. If a person previously handled each one in six minutes, the manual process cost 400 hours a day. At a 12% escalation rate and 90 seconds a review, the loop costs 12 hours a day of review, plus whatever the model spend and the engineering amortisation come to. That is a genuine 97% reduction in decision labour and the business case is easy.
Now change one input. If reviews take four minutes rather than 90 seconds because the review view was never built, the same design costs 32 hours a day, and if the escalation rate lands at 30% because the threshold was set by accuracy rather than capacity, it costs 80 hours a day. One fifth of the manual cost, not one thirty-third. Both versions are called human-in-the-loop automation. They differ by close to sevenfold, and the difference is entirely in the two variables the Say-No Test measures. We have argued elsewhere that the licence is the smallest line in an enterprise AI budget; review labour is one of the larger hidden ones.
What a human gate costs: minutes, tokens and delay
Every escalation costs three things, and teams consistently optimise the cheapest one.
Human minutes. At a fully loaded cost of $45 per hour, and substitute your organisation's real figure here, a 90-second review costs $1.13. At the 12% escalation rate derived above, 480 reviews a day is $540 a day, or roughly $135,000 a year across 250 working days, for a single gate on a single workflow. That number is arithmetic from the stated assumptions, not a benchmark, but it is the right order of magnitude to put in a business case and it is the one most business cases omit entirely.
Repeated model spend. Pausing and resuming an agent run is not free, because the resumed run generally re-sends the accumulated context. Suppose an escalation costs you one extra 20,000-token context replay. Google's published list price for Gemini 2.5 Flash is $0.30 per million input tokens and $2.50 per million output tokens (Google, pricing page fetched 30 July 2026). The replay costs $0.006. Even on a frontier-tier model at ten to thirty times that price, you are at six to eighteen cents.
| Cost component per escalation | Illustrative figure | Share of the escalation's cost |
|---|---|---|
| Reviewer time (90s at $45/hr fully loaded) | $1.13 | 99.5% against budget-tier tokens; 86% against frontier-tier |
| Context replay (20k tokens, budget-tier list price) | $0.006 | 0.5% |
| Context replay (20k tokens, frontier-tier, ~30× that price) | $0.18 | 14% |
| Delay | not a dollar cost, a customer-experience cost | — |
The conclusion is blunt and it saves people real effort: the human minute dominates the cost of a human gate, by nearly 200× against budget-tier token prices, and still by roughly 6× against frontier-tier ones. Optimising the token cost of your approval step is not where the money is. Reducing the number of items that reach a human, and reducing the seconds each one takes, is where the money is. Those are the two levers of the Say-No Test's signal 2.
Delay is the third cost, it shows up in customer complaints rather than in a budget, and it has the worst tail of the three. It gets its own section.
Review latency, timeouts, and what happens when nobody clicks
Queue latency is the cost customers actually feel, and reporting it as a median hides everything that matters. A queue staffed by one shift in one time zone has a median wait of minutes and a 95th-percentile wait of most of a day, because items arriving after the shift ends wait until it starts again. Publish p95 and p99, never the median, and publish them per class.
Three decisions define the behaviour of the queue under stress, and all three should be written down before launch:
What happens on timeout. A held item that nobody touches for the SLA window must do something. Fail-closed (reject on expiry) is correct for anything irreversible: nobody approved it, so it does not happen. Fail-open (execute on expiry) is defensible only for reversible, low-value actions where the cost of doing nothing exceeds the cost of being wrong, and it should be logged as a distinct outcome. "Auto-executed on timeout" is not the same event as "approved" and must never be recorded as one.
Who the queue escalates to. A single approver group is a single point of failure with holidays. Define the secondary group and the delay before the item moves.
Whether the queue can be paused. If the reviewers are overwhelmed, the honest response is to stop the upstream automation rather than let the backlog grow and the reviews get faster. The circuit breaker belongs on the intake, not on the queue.
The timeout rate is a leading indicator worth more than most dashboards. A rising share of items expiring means either the class is too broad or the team is understaffed, and it tells you weeks before an incident does.
One further latency subtlety specific to agents: a workflow that pauses for human approval must be durable. If the run holds its state in memory and the process restarts, the pending approval evaporates and the item silently disappears: approved by nobody, executed by nobody, and absent from every report. A practitioner on Hacker News listed this as the reason to reach for durable execution at all: durability matters "if you have human-in-the-loop approvals, or you have months between steps" (Hacker News). Verify that your platform survives a restart with a held item, deliberately, before you rely on it.
Sending work to a reviewer is a data-access decision
This is the part of human-in-the-loop automation that vendor content gives one paragraph and auditors give an afternoon. Every escalation is a disclosure of the underlying record to a specific human being. Adding a review step therefore widens the population that sees production data, and does so in a way that rarely appears on a data-flow diagram.
Four consequences follow.
The review view is a separate least-privilege decision. The reviewer needs whatever is necessary to make the decision and nothing else. A refund approval needs the amount, the order reference, the reason code and the customer's refund history. It does not need the full payment instrument, the delivery address, or the free-text ticket body where a customer may have typed anything at all. Building a purpose-built review view is more work than piping the raw payload into a queue tool, and it is the difference between a review step that survives a data-protection review and one that does not. The same masking machinery that belongs at the gateway for prompts belongs on the path to the reviewer.
Who the reviewers are is now a compliance question. Review queues are frequently staffed by contractors, an outsourced team, or a vendor's own operations staff. Each of those is a processor relationship, a cross-border transfer question, and a background-check question. If a platform offers "managed human review" as a feature, the first question is where those humans are and what they can see.
Viewing must be logged, not just deciding. An access log and a decision log answer different questions. "Who approved this?" is a decision question. "Who saw this customer's record?" is an access question, and it is the one asked after a breach. Both need to exist, and they need to be joinable, which in practice means the audit log for the queue has to carry the reviewer's identity on view events, not only on decision events.
Redaction changes the decision quality, so measure that too. Masking fields can push an item from reviewable-in-90-seconds to unreviewable, at which point reviewers either approve blind or request the unmasked view every time and you are back where you started. The right design gives a documented, logged, one-click reveal for the cases that genuinely need it. Then you watch the reveal rate, because a reveal rate near 100% means the redaction is in the wrong place.
Approval gates are policy objects, not buttons
The mental model that makes all of this manageable is to stop treating an approval as a UI element in a workflow builder and start treating it as a policy object with fields. When the gate is a button, it lives inside one workflow, it is configured by whoever built that workflow, and nobody can answer "what needs approval across the company?" When the gate is a policy object, that question has a query.
A minimal, honest schema for an approval gate looks like this:
| Field | Why it exists | Example |
|---|---|---|
| Trigger condition | The class + band that puts an item in the queue | action = refund AND amount > 200 |
| Approver set | A role, never a named person; people leave | role: payments-supervisor |
| Quorum | How many approvals; two for the highest band | 1 (or 2 above $2,000) |
| Segregation of duties | The requester, and the agent's owner, cannot approve | requester != approver |
| SLA + timeout action | How long, and what happens on expiry | 4h business, then reject |
| Escalation path | Secondary approver group and delay | finance-lead after 4h |
| Review view | Which fields are shown, which are masked | mask: pan, address |
| Evidence fields | What is written to the record | who, saw, decided, reason, at |
| Sampling rate | Share of auto-approved items pulled for review | 2% |
Two of these deserve emphasis because they are the ones most often missing.
Segregation of duties. If the agent's owner can approve the agent's actions, the gate is a formality. This is ordinary financial-controls practice applied to a non-human actor, and it only works if the agent has its own identity. That is a prerequisite, not a detail. An agent operating under a shared service account cannot be excluded from its own approvals because the system cannot tell who is acting. Our earlier analysis on giving agents owner, scope and expiry covers the identity side of that requirement.
Approver set as a role. Named approvers rot. Someone changes team and the queue quietly routes to a person who no longer has the context, or leaves and the queue routes nowhere. Roles survive people; that is the entire point of them.
There is a third field the schema above does not show and every real deployment needs: who may change the gate. A trigger condition that any workflow author can edit is not a control, because the cheapest way to clear a backlog is to raise the threshold at 5pm and tell nobody. Gate definitions need the same treatment as any other policy: a change log with an author and a timestamp, a separate permission from the permission to build workflows, and an alert when a threshold or a spend band moves. If your platform cannot answer "who widened this gate and when", assume someone did.
What regulators already require of human oversight
Three legal instruments now say something specific about human review of automated decisions, and all three say the same thing in different words: the human must be able to change the outcome in practice, not merely on the org chart.
EU AI Act, Article 14. High-risk systems must be designed so oversight persons can properly understand their capacities and limitations, can correctly interpret the output, and, in the clause everyone should read twice, can "remain aware of the possible tendency of automatically relying or over-relying on the output produced by a high-risk AI system (automation bias)" (EU AI Act, Article 14). Automation bias is named in the text of the law. Article 14 also requires the ability to "disregard, override or reverse the output" and to interrupt the system "through a 'stop' button or a similar procedure."
EU AI Act, Article 26. The obligation on the deployer is the operational half: "Deployers shall assign human oversight to natural persons who have the necessary competence, training and authority, as well as the necessary support" (EU AI Act, Article 26). Competence, training, authority and support are four separable things. Our reading, and it is a reading rather than settled law, is that a queue whose reviewers are measured only on throughput has a hard time evidencing the authority limb, because the incentive to approve is documented in the reviewer's own objectives. Article 26 also requires deployers to keep automatically generated logs for at least six months where those logs are under their control, which means the record described in stage 4 above is not optional for in-scope systems.
GDPR Article 22 and the "token gesture" standard. The guidance endorsed by the European Data Protection Board is the single most quotable sentence in this whole area: "the controller must ensure that any oversight of the decision is meaningful, rather than just a token gesture. It should be carried out by someone who has the authority and competence to change the decision" (Article 29 Working Party, WP251rev.01). The same paragraph is blunter still: a controller "cannot avoid the Article 22 provisions by fabricating human involvement," and applying automatically generated outputs "without any actual influence on the result" is still a solely automated decision in law. The guidance also tells controllers to identify and record, in their data-protection impact assessment, the degree of human involvement and the stage at which it happens. The schema in the previous section is close to the documentation a regulator would ask for. And the obligation does not end at the gate: where Article 22 applies, the individual has a right to obtain human intervention and to contest the decision after the fact, which is a second review path most workflow designs never build.
The timing matters for planning. The bulk of the AI Act's remaining obligations start to apply on 2 August 2026, with Article 6(1) and its corresponding obligations following on 2 August 2027 (EU AI Act implementation timeline). If you operate a high-risk use case in the EU, the design questions in this article have a date attached.
Worth noting that operationalising Article 14 is genuinely hard and the people who have tried say so. Belgium's Knowledge Centre Data & Society ran a policy-prototyping exercise on the human-oversight obligation and reported that "the wide degree of flexibility in the article makes it difficult in practice to give concrete substance to the obligation," calling for concrete criteria and benchmarks (Knowledge Centre Data & Society, March 2025). Their webinar walking through the findings is a reasonable 25 minutes if you are the person who has to write the oversight procedure:

Worked example: a refund agent, specified end to end
Abstract advice about gates is easy to agree with and hard to act on, so here is one complete specification. The scenario is deliberately ordinary: an agent that reads support tickets, decides whether a refund is warranted, and issues it. Volume is 4,000 tickets a day, of which about 900 involve a refund request. The numbers are illustrative; the structure is the point.
Step 1 — Enumerate actions and mark reversibility.
| Action | Reversible? | Blast radius | Gate |
|---|---|---|---|
| Read ticket and order history | Yes | Read-only | None |
| Draft a reply for the agent's own use | Yes | None | None |
| Post a reply to the customer | No (customer saw it) | One customer | Class gate above sensitivity band |
| Issue refund ≤ $200 | Partially (reversible in ledger, not in trust) | One customer, small spend | Confidence gate |
| Issue refund $200–$2,000 | Partially | One customer, real spend | Class gate, 1 approver |
| Issue refund > $2,000 | Partially | Material | Class gate, 2 approvers |
| Change the customer's account tier | No | Ongoing entitlement | Forbid — out of scope |
| Delete a ticket or order record | No | Irrecoverable | Forbid — not in the agent's scope |
Note that two rows are solved by removing the capability rather than reviewing it. Every action you forbid is an action nobody has to read at 4pm on a Friday.
Step 2 — Size the queue.
Refund requests: 900/day. Under $200: roughly 70%, or 630. If the confidence threshold sends 8% of those to review, that is 50 items. The $200–$2,000 band is roughly 25%, or 225 items, all gated. Above $2,000 is roughly 5%, or 45 items, all gated with two approvers.
Total human decisions per day: 50 + 225 + (45 × 2) = 365, plus a 2% random sample of the 580 auto-approved low-value refunds, which is another 12. Call it 377 decisions. At 60 seconds each, and refunds are a fast review when the view is built properly, that is 6.3 reviewer-hours a day, or roughly one full-time reviewer plus cover.
Step 3 — Design the review view. One screen, no scrolling, no transcript:
Refund $340 · Order 88213 · Reason: item arrived damaged (photo attached) · Customer since 2021 · Refunds this year: 2 ($55, $120) · Agent confidence 0.91 · Payment method masked [Approve] [Reject + reason] [Edit amount]
Step 4 — Write the gate as a policy object.
| Field | Value |
|---|---|
| Trigger | action = refund AND (amount > 200 OR confidence < 0.85) |
| Approver set | role: support-supervisor; role: finance-lead above $2,000 |
| Quorum | 1, or 2 above $2,000 |
| Segregation of duties | Agent owner excluded; requester excluded |
| SLA | 4 business hours; p95 target 2 hours |
| Timeout action | Reject and return to human queue as a normal ticket |
| Review view | Fields above; payment instrument masked, one-click logged reveal |
| Evidence | approver id, fields shown, decision, reason code, free-text reason on reject, timestamp, agent run id |
| Sampling | 2% of auto-approved refunds under $200 |
Step 5 — Instrument, then watch four things for 90 days. Refusal rate by band. Dwell time distribution, not the mean. Timeout rate. Defect rate in the 2% sample. If the refusal rate in the $200–$2,000 band is under about 2% and the sampled defect rate is flat, that band is a candidate for raising the threshold. That is the only responsible way to shrink a queue.
Step 6 — Close the loop. Every rejection carries a reason code. Monthly, the top reason code becomes either a scope change (forbid the action), a prompt or model change, or a routing-rule change. A rejection reason that produces no change for three months means the reason code is wrong or nobody is reading them.
Six numbers that show the loop is working
Most human-in-the-loop dashboards report volume and approval rate, which together tell you almost nothing. These six tell you whether you have a control.
| # | Metric | What it means | Warning sign |
|---|---|---|---|
| 1 | Refusal rate | Share of reviewed items the human changed or blocked | Near zero for a quarter: the gate is theatre or the class is too broad |
| 2 | Dwell time distribution | Seconds actually spent per item, p10/p50/p90 | Falling p50, and a growing spike under 3 seconds |
| 3 | Escalation rate drift | Share of total volume reaching a human, week over week | Rising: input mix changed, or the model degraded |
| 4 | Queue age p95 | How long the slowest 5% wait | Approaching the SLA: staffing or class problem |
| 5 | Timeout rate | Share of items expiring unreviewed | Anything above ~1% means the design is not staffed |
| 6 | Sampled defect rate | Errors found in the random sample of auto-approved items | The only number that measures what the gate misses |
Metric 2 deserves the extra sentence. Averages hide rubber-stamping perfectly: a queue where half the items get four minutes and half get two seconds has a healthy-looking mean. Plot the distribution and the two-second spike is unmistakable. That spike is the operational signature of the failure chonghaoju described, and it is visible weeks before anyone would call it a problem.
Metric 6 closes the loop's blind spot. A threshold that has drifted wrong produces a falling refusal rate, which looks like improvement. Sampling the auto-approved stream is the only instrument that tells "the automation got better" apart from "the gate stopped catching things."
When to remove the human gate entirely
The point of measuring a gate is being willing to act on the measurement in both directions. Removing a gate is a legitimate and under-used outcome, and refusing to consider it is how review queues become permanent.
Remove the gate when all five hold:
- The action is reversible at acceptable cost, and the reversal path is tested rather than theoretical.
- The refusal rate in that class has been near zero for at least a full quarter across a meaningful volume.
- The sampled defect rate on that class is flat and within tolerance.
- The class is not in regulatory scope for mandated human oversight.
- You are replacing the gate with something, not with nothing: continued sampling, a monitored reversal path, and an alert on defect-rate change.
Do not remove a gate because the queue is slow, because a stakeholder complained about latency, or because the reviewers are busy. Those are staffing and scoping signals, and responding to them by widening the gate converts a real control into a nominal one. That is a worse position than not having had a gate, because now the control appears on a compliance document.
And a symmetric warning: adding gates is not free either. A team that responds to every incident by inserting another approval step ends up with a queue nobody can clear, a dwell-time distribution collapsing toward zero, and an oversight programme that is measurably worse than the three gates it started with. Gates compete for the same finite pool of human attention. Treat that pool as a budget.
Where LeapForce fits
LeapForce builds the layer this article keeps pointing at: one controlled place where AI tools, connectors, models and agents are governed, so that the questions "who owns this agent, what may it touch, what did it do, and what did it cost" have answers that survive an audit. Human approval gates sit inside that layer rather than inside each individual workflow. Our Workflows product chains agents and connectors into event-triggered, policy-checked, logged automation with human approval gates and durable runs, and our Connectors registry supports action-level scoping and human-in-the-loop gates on what a connector may do. Access & Identity is what makes segregation of duties possible at all, because every agent is a first-class non-human identity with an owner, a scope and an expiry rather than a shared key.
Our rollout advice for the surrounding gateway is the same one we publish on the AI Gateway page: observe first, enforce second, optimize third. It applies to approval gates without modification: run the gate in observe mode, watch what would have been held, size the queue against real volume, and only then turn on enforcement. Teams that enforce first discover their capacity model was wrong at the worst possible time.
One honest limit: LeapForce is in active development and the live site labels per-capability build status openly, so check the current status of any specific capability against the platform pages rather than against this article. We are not a review-queue product, a BPO, or a workforce-management tool, and the reviewer-staffing arithmetic above is yours to run regardless of which platform you deploy on.
Where this is still uncertain
Several things in this article are weaker than the confident sections above may suggest, and it is worth saying which.
The evidence base is borrowed. The strongest studies on human oversight of machine output come from criminal-justice risk assessment and clinical decision support, not from agentic AI workflows. Those settings share the mechanism, a person reviewing a machine's recommendation under time pressure, but differ in stakes, reviewer expertise and item volume. We think the mechanism transfers. We cannot prove the magnitudes do.
There is no published benchmark for a healthy refusal rate. We advise watching for a rate near zero, and we can defend that direction, but we have not seen credible cross-industry data on what a well-functioning gate's refusal rate looks like by domain. If your rate is 4%, we cannot tell you whether that is good.
The cost and capacity models are arithmetic, not measurement. They use stated assumptions: 90 seconds a review, $45 an hour fully loaded, six productive hours a day, one 20,000-token context replay per escalation. Those are plausible, they are not measured on your queue, and the conclusions change if your per-item review takes four minutes. Re-run them with your inputs before quoting the outputs to a finance team.
Article 14 has no settled operational meaning yet. The Knowledge Centre report cited above found that practitioners want criteria and benchmarks that do not yet exist. Anyone claiming a definitive Article 14 compliance recipe in mid-2026 is ahead of the guidance.
We have not tested this design in a live customer queue and have not presented any number here as if we had. Route (d) of our own experience gate, stated once, honestly: this article is research and arithmetic, not a field log.
Open question we would like answered. Does showing a reviewer the model's confidence score help or hurt? Goddard's review found that "updated confidence levels attached to DSS output" appeared among the mitigators of automation bias, but Green and Chen found participants could not evaluate the algorithm's accuracy at all. Those two findings are not obviously compatible, and the answer probably depends on whether the score is calibrated. If you have run that experiment on a production queue, we would genuinely like to see the result.
Frequently asked questions
Human-in-the-loop automation is a workflow where software handles the volume and a person reviews, edits or approves specific items before they take effect. The process stops and waits for that decision. The pattern is used when an output is expensive to get wrong: a payment, a customer-facing message, a decision with legal effect. It only functions as a control when the reviewer has the authority to refuse, enough context to refuse quickly, and a log that records the refusal.
In human-in-the-loop automation the process pauses and cannot proceed without a human decision. In human-on-the-loop the process runs to completion while a person monitors and can intervene afterwards. The practical test is whether anything waits. Human-on-the-loop is appropriate where actions are reversible and volume is high; human-in-the-loop is appropriate where an action cannot be undone. Describing a monitoring arrangement as human-in-the-loop in a compliance document is a misstatement an auditor can check.
Set it from capacity, not accuracy. Divide the reviewer-hours you can actually staff by the seconds a review takes, and that gives you the number of items your team can absorb; expressed as a share of total volume, that is your escalation rate, and the threshold is whatever produces it. With 4,000 items a day, 12 reviewer-hours and 90 seconds per item, the answer is roughly 12%. If the accuracy you need would require 30%, narrow the automation's scope rather than widening the gate.
Four things, in order of effect. Reduce the volume reaching them so each item gets real attention. Rebuild the review view so the decision, not the transcript, is on screen and reviewable in seconds. Make individual accountability visible, since the automation-bias literature found perceived accountability reduced errors while training did not. And measure the dwell-time distribution rather than the average, because a spike of two-second decisions is the operational signature of rubber-stamping and it appears long before an incident does.
The dominant cost is reviewer labour, not software or tokens. At a fully loaded $45 an hour, a 90-second review costs about $1.13, so a gate handling 480 reviews a day runs to roughly $135,000 across 250 working days. The extra model spend from pausing and resuming a run is typically under a cent per escalation at budget-tier list prices and under twenty cents at frontier-tier prices. Budget the human minutes, and do not spend engineering effort optimising the token cost of the gate.
More than the median suggests. Report the 95th percentile, per class. A queue covered by one shift in one time zone has a p95 measured in hours because anything arriving after the shift ends waits until it resumes. Three decisions determine the tail: what happens when an item times out (fail closed for irreversible actions), which secondary group the queue escalates to, and whether you can pause the upstream automation instead of letting the backlog grow.
Six: the refusal rate (share of reviewed items a human changed or blocked), the dwell-time distribution, escalation-rate drift week over week, queue age at p95, the timeout rate, and the defect rate found in a random sample of auto-approved items. The last one matters most and is the one usually missing, because the refusal rate describes only items a human saw. A threshold that has drifted wrong shows up as a falling refusal rate, which looks like improvement until you sample what is bypassing the gate.
Not in those words, and not for every system. Article 14 requires high-risk AI systems to be designed for effective human oversight, including the ability to disregard, override or reverse the output and to stop the system. It also explicitly requires that overseers remain aware of automation bias. Article 26 puts the operational duty on deployers to assign oversight to people with the necessary competence, training and authority, and to retain automatically generated logs for at least six months. The remainder of the Act starts to apply on 2 August 2026, with Article 6(1) following a year later.
Only if the human can genuinely change the outcome. The guidance endorsed by the European Data Protection Board states that oversight must be meaningful "rather than just a token gesture" and must be carried out by someone with "the authority and competence to change the decision," and that a controller cannot avoid Article 22 by fabricating human involvement. A reviewer measured on throughput, given three seconds an item and no practical route to reject, is a decision that is still solely automated in law. Record the degree and stage of human involvement in your DPIA.
The minimum needed for the decision, and no more. Every escalation discloses a production record to a person, which widens your data exposure in a way that rarely reaches a data-flow diagram. Build a purpose-specific review view rather than piping the raw payload into a queue tool: show the amount, the reference, the reason and the relevant history; mask payment instruments, identifiers and free-text fields where a customer may have typed anything. Log who viewed an item as well as who decided it, and watch the unmask rate. If it approaches 100%, the redaction is in the wrong place.
Yes, under five conditions together: the action is reversible at acceptable cost with a tested reversal path; the refusal rate for that class has been near zero for a full quarter at meaningful volume; the sampled defect rate is flat and within tolerance; the class is not in regulatory scope for mandated oversight; and you replace the gate with continued sampling plus a monitored reversal path rather than with nothing. Never remove a gate because the queue is slow or a stakeholder complained about latency. Those are staffing signals.
Usually because the capacity model was never written. A pilot at 200 items a day works at any escalation rate; the same design at 4,000 needs five reviewers it does not have, so the threshold gets widened, dwell time collapses, and the gate becomes nominal within weeks. The second-most-common cause is that stage five is missing. Rejections are not fed back into scope, prompts or routing, so the queue never shrinks and becomes a permanent headcount line. Deloitte's 2026 survey found only 21% of organisations have a mature agentic-AI governance model, and the missing pieces are exactly these.
Six capabilities, in priority order: durable runs that survive a restart with an approval pending; gates definable by action class and spend or sensitivity band, not only by confidence score; approver sets expressed as roles with segregation of duties enforced; a configurable timeout with an explicit and separately logged timeout action; a purpose-built review view with field-level masking; and a log that stores rejections and reasons, not just approvals, joinable with an access log. If a platform cannot show you a stored rejection with a reason and a reviewer identity, the rest of the feature list does not matter.
Ready to Govern Your AI?
Talk to LeapForce — one controlled layer for every AI tool, connector, model, and agent.
Comments