Computer vision · 7 min read
How to catch model drift before your customers do
A cap-check model passed capless bottles for six weeks and nobody knew until a retailer rang. The signal was there the whole time, in the review queue.
Summary
This post follows a cap-check model on a bottling line from a clean launch in April to a retailer's complaint in September, and shows the three small changes on the line that took the model's accuracy away without a single error. It argues that the signal a team can act on is the rate at which a person overrides the model on the frames that come back, and that a spot check of the frames the model was sure of is the second signal worth having. It is for whoever owns a vision model after the launch party.
Rob Hickey · Chief AI Officer ·

Bottling line, bottles queued under the fill head with one missing its cap boxed, generated scene with detections from our model
Line 3 at a bottling plant got a cap-check camera in April. The model looks at every bottle leaving the capper and raises a frame when a cap is missing or cocked, and for the first weeks it was right so often that the packer at the end of the line stopped looking at the bottles herself. In September a retailer rang about a case of capless bottles, and then a second retailer rang.
The model was fine on launch day. The world simply moved.
The model had not thrown an error in that time. It had not stopped. It had been producing confident answers on every bottle, all shift, every day, and by August most of the wrong ones were confident too.
Every production vision model is a snapshot of the world on the day its training set was frozen, and the world does not stay frozen. Lighting shifts with the seasons, equipment corrodes, a camera gets bumped a few degrees, new objects walk into frame. The model keeps answering the whole time, and the confidence is the problem. A drifting model does not tell you it is drifting.
Nobody notices model drift because production accuracy is invisible
The accuracy figure a team celebrates at launch is a statement about a test set. Once the model is on the line, nothing measures it unless someone builds the measurement. There is no test set for Tuesday afternoon. The only accuracy signal most teams have after launch is downstream damage: a retailer's call, a false alarm storm, a denied claim, a missed defect found at the customer's dock.
That is why drift gets discovered weeks late. The tooling that measured the model died the day it left the training notebook, and the line kept running. The lesson on what drift actually is puts it plainly: the model did not change, the world in front of the camera did, and a model cannot report a change it cannot see.
Three small changes on line 3 took the accuracy away
Nothing dramatic happened at the plant. Three ordinary things did.
In June the cap supplier changed. The new caps are the same size and the same white, with a slightly matte finish that reads darker under the line's lights. The model had learned a glossy cap. A matte cap on a bottle looks, to it, a little more like a bottle with no cap, and the specification change chapter describes exactly this: the product on the line is no longer the product in the dataset, and nobody told the model.
In July the skylight over the capper was cleaned for the first time in years, and the afternoon light on the line doubled. Caps that had been lit from the side were now lit from above, with a highlight where the model expected shadow.
In August a washdown crew nudged the camera bracket. The framing moved by the width of a bottle. The capper is still in frame, so nobody reset anything, and the camera repositioning chapter explains why that quiet nudge is the most common drift there is.
Each change on its own cost the model a little. Together they cost it the retailer.
The signal is the override rate on the frames that come back
The model on line 3 sends the frames it is unsure of to a person. Through May the packer got a handful a shift and confirmed nearly all of them as the model had called them. From June the handful became a couple of dozen, and the share she had to correct started climbing. By August she was overriding more than she confirmed, and she had stopped reading them closely, because a queue that is mostly wrong feels like a queue that is broken.
That climb was the signal, and it was visible from the first week of June. Frames coming back, corrections landing, the override rate rising: those three numbers are what drift looks like from the inside, and they are the numbers we put in front of a team. The model's own confidence is not among them. A model reports how sure it is of its own answer, and a model that has drifted is sure of the wrong answer, so its confidence cannot be the alarm.
The monitoring and alerts guide describes the review queue and what it reports. The one number worth an alert of its own is the override rate per line per week, and the alert rule is a sentence: the override rate on line 3 has risen for two weeks running.
A spot check of the frames the model was sure of is the second signal
The review queue only holds what the model doubted. A model that has drifted badly enough is wrong on frames it never doubted, and those never come back on their own. So the second signal is a person looking at frames the model was sure of, on purpose, at a fixed rate.
At the plant that means the packer pulls 20 bottles a shift that the model passed, at random, and checks the cap by hand. Twenty is small enough to do every day and large enough that a model passing capless bottles gets caught inside a week rather than a quarter. A dashboard nobody opens does less than a person checking twenty frames a day.
Teams with the budget for it can add a second opinion: a different model, or an older version, run on a slice of traffic, with disagreements routed to a person. It is a cheap alarm and it catches a drift in one model that the other did not share. The spot check comes first, and the second opinion can wait until the budget allows it.
My own view is that a model with no corrections coming back is a model nobody is looking at, and I trust a review queue with something in it more than a dashboard that is all green.
Close the loop or repeat the incident
Detection without correction moves the pain forward a quarter. The frames that caught the drift on line 3, the matte caps under the cleaned skylight from the nudged camera, are exactly the frames the next training run needs, and nothing else describes the line as it is now.
That is what the loop is for. Frames the model is unsure of come back to a person, the corrections retrain it, and when they cross the project's threshold a new version is trained on them, keeps what it was trained on, and replaces the old one with no downtime. The retrain is not on a calendar. It is set by the correction rate, which is the drift rate, and a line that has moved a lot retrains sooner than a line that has not.
The 99%+ accuracy maintained in production on our manufacturing page is maintained in the plain sense of the word: by corrections landing and retraining following them, week after week, on lines that keep changing.
At the plant the packer kept one of the September capless bottles on the windowsill of the line office. The cap-check model was retrained on the frames from her queue, and the matte caps are now the caps it expects. The old glossy ones are in a crate in the stores, in case the supplier changes back.
See it on your own footage.
Start with your footageRelated posts

Computer vision · 6 min read
Why a good detector can still be a bad counter
The queue camera finds every shopper on every frame and still gets the count wrong. Swaps, lost tracks and jitter are tracker mistakes, and review fixes one.
Stephen Biswas · Sep 29, 2026

Operations · 6 min read
How to monitor inference health when nothing throws an error
A camera that stops sending, a runner that falls behind, a correction rate climbing on one site. Three failures with no error message and three different fixes.
Rob Hickey · Oct 1, 2026

Operations · 7 min read
Embedding based anomaly detection for the frame the model has never seen
A car park camera meets its first snowplough and a line camera meets the maintenance crew. Distance from the usual frames is one check that finds them.
Rob Hickey · Oct 1, 2026