Human-in-the-Loop Isn't Going Away
When an AI system is accurate enough for the demo but you still can't remove the person, the missing piece isn't the model — it's who carries the cost of being wrong, and whether the system routes by that cost.
On a computer-vision system I worked on, there was a moment where the model was, by every metric we tracked, good enough. It handled the common cases well, the numbers looked healthy, and in a demo it was genuinely impressive. And yet nobody was willing to take the human out of the loop.
For a while I read that as a temporary state — a bit more data, a bit more tuning, and the review step would quietly disappear. It didn't. The longer I worked on systems like that, the clearer it became that the human wasn't scaffolding we'd forgotten to remove. The review step was doing a job the model couldn't, and no amount of accuracy was going to make that job go away.
The thing a metric hides is that not all errors cost the same. A model that is right most of the time can still be wrong in exactly the way that matters most, and "most of the time" is cold comfort when the rare failure is the expensive one.
The pattern underneath
Automation and responsibility are two different things, and it's easy to confuse them. A model can automate a decision — produce an answer without a person — but it can't hold responsibility for that answer. Someone still has to own what happens when it's wrong. When the stakes are low, we're happy to let the automation carry the outcome. When they're high, we quietly want a person's name on it.
A model can automate a decision. It cannot be accountable for one.
This is why the last stretch toward full automation is so much harder than the first. Getting a system from useless to useful is mostly a modelling problem. Getting it from useful to trusted enough to act unattended is a different problem, and it's rarely solved by a better model.
Part of why it's hard is that a single accuracy number flattens the shape of the failures. Two systems can share the same score while failing in completely different ways — and the score won't tell you which you have. Ninety-five percent accurate says almost nothing on its own. Which five percent? Are the errors rare or common, cheap or catastrophic, detectable or silent, scattered or piled up on one class of input? A model can even be right and wrong at once: a detector can be entirely correct that a radiator is in the frame and entirely wrong about where it is. Semantic correctness and operational correctness are not the same thing, and one number hides the gap between them.
Why teams get stuck
The first mistake is treating the human as a defect of the system rather than a part of it. Review gets framed as temporary — something to delete once the model is good enough — so it's never designed properly. It becomes a bolt-on: an unsorted queue, no notion of which cases are worth a person's attention, no path for what the reviewer decides to flow back into the system. Built that way, review really is just overhead, and the instinct to remove it makes sense.
Then there's the pull toward coverage. More automation looks like progress, so the system is pushed to decide more cases on its own, and each step outward tends to trade a drop in the errors you're measuring for a rise in the ones you're not. A more aggressive system catches more and is wrong more; a more conservative one is safer and less useful. Chasing the coverage number, teams walk straight past the balance point.
And there's the tempting shortcut of routing on the model's confidence alone. A model does carry a signal of its own uncertainty, and that signal is worth using — but it's a signal, not a verdict. Models can be confidently wrong, and confidence is often least reliable exactly where you'd most want to trust it — on inputs unlike anything in training, on rare classes, on anything that needs precise spatial grounding. A high score there isn't a low error rate; it's an uncalibrated number. confidence > 0.9 → automate is a rule that works right up until the distribution shifts under it. The usable signal is confidence weighed together with the risk of the case, whatever corroborating evidence you have, and any cheap validation you can run against the answer.
A better mental model
There's a second number the accuracy conversation almost always leaves out: what a review costs. Once you put it next to the cost of a wrong answer, human-in-the-loop stops being an accuracy question and becomes an economic one. If a wrong answer costs about what a human glance costs, automating even an imperfect model is rational. If a wrong answer is catastrophic and a review is cheap, the bar for letting the system act alone should be far higher. The routing rule falls out of those two costs — not out of the accuracy score by itself.
The question was never whether the model is accurate enough to remove the human. It's which decisions are cheap enough to automate, which are expensive enough to review, and whether the system can tell the two apart.
In practice that turns the loop into a small pipeline rather than a checkbox: model → risk + confidence → route → auto-process or human review → correction → replay. The model proposes. A routing step, reading risk and confidence together, decides what a person even sees. People handle the uncertain and the expensive cases — the ones where judgement is worth more than a fast guess. And their corrections don't die in a ticket; they replay back as new examples, so the system gets better at precisely the cases it was unsure about. The point of the human was never to check everything. It was to spend attention where it pays.
What I learned
If I take one thing from systems that looked good in a demo and still couldn't run unattended, it's that "add a human" was never the design — the routing is. Decide what a wrong answer costs. Decide what a review costs. Let those two numbers, not the accuracy score, say which cases a person should ever touch, and build the loop so their decisions feed back.
Do that and human attention lands where it's actually worth something. Skip it and you get one of two failures: people drowning in cases a model could have handled, or a model quietly making decisions no one agreed it should own.