How Do You Detect Quality Drift After Moving Traffic to the Open Model?
Measure the same outcome the gate measured, on fresh production traffic, keyed on which model served each run, and split by request class and evidence condition. Compare against the launch window, not only the closed-model baseline. Averages hide drift; the segments and the mode metrics show it.
Part 45 of the closed-to-open model transfer series is about the months after the switch. The open model does not change on its own, which is one of its advantages. The traffic does. This part sets out what to measure, how to key it, what a change in each signal means, and what should already be decided before the first alert fires.
The short version
Drift after a model switch is almost always the traffic moving away from what the model was trained and gated on. Detect it with per-segment outcome rates and mode metrics keyed on the served model, reviewed samples to recalibrate the judge, and thresholds and responses agreed before launch.
After the switch, the traffic moves and the model does not
A closed model changes when the provider ships a new version. A self-hosted open model with pinned weights does not change at all. So drift after a transfer has a narrower set of causes: the mix of requests shifts, a new product feature sends request shapes the training data never contained, upstream tools return different results, the prompt or retrieval layer is edited, or the customer's own users change behavior. The model answers a different population than the one it was gated on.
That narrowing is useful. It means drift detection is mostly about watching the inputs and the outcome by segment, not about diffing the model. It also means a regression that appears without any traffic change points at something in the serving path, such as a quantization or configuration change, rather than at the weights.
Keep one outcome definition from gate to production
The gate scored a specific outcome: risk tier matched the answer key, the required findings were present, the tool result was cited, nothing unsupported was asserted. Production monitoring has to score the same outcome, defined the same way, or the two will disagree and one of them will be wrong. A dashboard that reports a generic quality score alongside a gate that measured evidence-bound correctness cannot tell you whether the gate's promise still holds.
Write the outcome definition once, version it, and stamp the version on every scored run. When the definition changes, backfill or start a new series; do not let a live recompute silently diverge from persisted scores. If the outcome cannot be scored for a run, mark it unscored and keep it out of the denominator. A rate computed over runs that could not be measured is not a rate.
Key every run on the model that actually served it
Post-switch comparisons only work when each run records which model and which adapter produced it. A prompt hash is not enough, because a model swap keeps the prompt identical. If the runtime does not stamp the served model identity on the trace, the pre and post populations blur together, escalations to the closed model get counted as open-model wins, and the verdict comes back confounded.
Record model identity, adapter version, serving configuration, and whether the run was a fallback. Then every drift metric can be computed per arm. The open model's rate on requests it actually answered is the number that matters; the blended rate across both models measures the routing policy, which is a different question.
Segment by request class and evidence condition
Drift shows up in a segment before it shows up in the total. If the traffic mix shifts toward a request class the model handles poorly, the overall rate drifts slowly while that class's rate was bad from day one. If a new class of request appears that the training data never contained, the overall rate barely moves while the model fails every one of the new requests. Segment rates catch both; the total catches neither in time.
Use the same classes the gate used: request type, evidence condition (supported, partial, none), context-length band, and tool-use pattern. Track each class's volume share and outcome rate over time. A share moving is a leading indicator; an outcome rate moving is the drift itself. The table below lists the signals worth computing and what each one means when it changes.
- Signal
- Outcome rate per request class
- How to compute it
- Gate outcome definition applied to scored runs, grouped by class and served model
- What a change usually means
- Class-level regression, or a class the model was never trained on
- Signal
- Volume share per class
- How to compute it
- Runs per class divided by total runs, per week
- What a change usually means
- Traffic mix shifting toward or away from the model's strengths
- Signal
- Outcome rate per evidence condition
- How to compute it
- Same outcome, grouped by supported, partial, and none
- What a change usually means
- Loss of abstention behavior or rising unsupported claims
- Signal
- Default-answer rate
- How to compute it
- Share of outputs matching the model's most common answer or shape
- What a change usually means
- Collapse toward a safe default; the model has stopped discriminating
- Signal
- Distinct-output ratio
- How to compute it
- Distinct normalized outputs divided by distinct inputs
- What a change usually means
- Template repetition; often paired with default-answer rate
- Signal
- Escalation and fallback share
- How to compute it
- Runs routed or failed over to the closed model divided by total
- What a change usually means
- Router thresholds or serving reliability moving; also a cost signal
- Signal
- Output length distribution
- How to compute it
- Median and p10 of output tokens per class
- What a change usually means
- Truncation, a serving limit, or the model going terse on hard cases
- Signal
- Judge agreement with reviewed labels
- How to compute it
- Precision and recall of the automated judge on a fresh reviewed sample
- What a change usually means
- The measuring instrument drifted, not the model
Watch the mode metrics, not only the score
A fine-tuned model that starts meeting unfamiliar traffic often fails by retreating to its default: the most common risk tier, the most common tool, a generic no-findings report, or a refusal. The outcome score catches this late, because default answers are right often enough to look acceptable in aggregate. The default-answer rate and the distinct-output ratio catch it immediately, because they measure whether the model is still discriminating between cases.
Set these up before launch with the values the gate observed. If the gate saw a no-findings rate of one in five, a production rate of one in two on the same request class is a drift alarm regardless of the score. Length distributions belong in the same family: a model that goes terse on hard cases is often abstaining without saying so, and that shows up as a shrinking p10 output length long before anyone reads a transcript.
Recalibrate the judge with fresh reviewed samples
Most production scoring uses an automated judge, and the judge drifts too. It was calibrated against reviewed labels on the traffic that existed at launch. New request shapes can push its errors in either direction: false alarms on requests it has not seen, or silence on failures it does not recognize. A judge that goes quiet looks exactly like a model that is doing well.
Draw a fresh reviewed sample on a fixed cadence and on every alert. Sample two ways: at random, so confident judge decisions get audited, and by uncertainty, so borderline cases get resolved. Measure the judge's precision and recall per request class against those labels and compare to the launch calibration. If the judge moved, fix the instrument before acting on the reading. If it held, the drift is real.
Separate drift from confounds
A change in the outcome rate after launch has several candidate causes, and only some of them are the model's problem. A prompt edit, a tool schema change, a retrieval index refresh, a product release that changes who sends requests, or a serving configuration change can each move the rate. If any of these happened in the window, the result is confounded and the honest report says so.
Keep a change log with timestamps for every component that touches the agent, and join it to the metric series. When the rate moves, the first question is what else moved. When nothing else moved and the traffic mix is stable, the second question is whether the serving artifact changed. Only after those two are ruled out does the answer become the model itself, which for pinned weights means the traffic reached cases the model cannot handle.
Decide thresholds and responses before launch
An alert with no agreed response becomes a discussion, and a discussion during an incident is where rollbacks get delayed. Before the switch, write down for each signal the threshold that triggers an alert, the threshold that triggers an automatic ramp-down of open-model traffic, and the threshold that triggers a full rollback to the closed model. Name the owner who can execute each one and confirm the rollback path has been rehearsed.
Use the gate's margin as the anchor. If the gate passed at a non-inferiority margin of five points, a production rate five points below the launch window on a class with enough runs is a rollback signal, not a watch item. Smaller moves are alerts. A rising share of a class the model has never been gated on is a routing change: send that class to the closed model until the gate covers it, then decide whether retraining is warranted, which is part 33's question.
Report with honest denominators
Every drift metric needs its denominator next to it. A class with twelve runs this week cannot support a rate, and a dashboard that renders it as a percentage invites a wrong decision. State the minimum runs per class per window that the pre-registered rule requires, render anything below it as insufficient data, and never fill the gap with a pass.
The same discipline applies to the arms. If most traffic escalated to the closed model this week, the open model's rate is computed over a small and unusual population. Report the population size, the escalation share, and the rate together. A number that looks fine over a tiny denominator is the most expensive kind of reassurance.
Where Converra fits
Converra's production verification measures a shipped change against the same outcome definition on fresh comparable traffic, with the deployment boundary preserved and concurrent changes recorded, and returns verified, not fixed, or confounded for fixes and parity verified, regressed, confounded, or insufficient data for a model swap. Its fleet view aggregates failure patterns across agents with business-impact scoring, which is the segment-level view this part asks for, and its tool-calling analysis scores how the agent uses its tools from real call evidence.
Thresholds, the rollback policy, and the definition of the outcome that matters remain the customer's decisions, and the model itself runs on the customer's provider or infrastructure. Converra records model identity per run and per switch so the arms stay separable, but it cannot detect drift on traffic it does not receive. No open-weight production verdict for a customer agent has been published yet; what a given agent's traffic does after a switch is unobserved until it is measured there.
Frequently asked questions
How do you detect quality drift after switching an agent to an open model?
Detect quality drift after an open model switch by scoring fresh production runs with the same outcome definition the gate used, keyed on the served model, and tracking rates per request class and evidence condition alongside mode metrics such as default-answer rate and distinct-output ratio. Compare against the launch window and investigate segments before totals.
Can a self-hosted open model drift if the weights are pinned?
A self-hosted open model with pinned weights does not drift on its own; the traffic, tools, prompt, retrieval, or serving configuration around it change. Drift detection for pinned weights therefore focuses on traffic mix, per-segment outcomes, and a change log of everything else that touches the agent.
What metrics show that a fine-tuned model has collapsed to a default answer?
A collapse to a default answer shows up as a rising default-answer rate, a falling distinct-output ratio, a shrinking output length on hard cases, and a stable or improving average score. Track those mode metrics against the values observed in the gate and alert on the ratio, not the score.
How often should you review production samples after a model switch?
Review a fresh reviewed sample on a fixed cadence, such as weekly at first, and on every alert, drawing both random and uncertainty-selected cases. The reviewed labels recalibrate the automated judge per request class so that a quiet judge is not mistaken for a healthy model.
When should drift trigger a rollback to the closed model?
Drift should trigger a rollback when a request class with enough runs falls below the launch window by more than the gate's pre-registered non-inferiority margin, or when a critical seeded behavior such as adverse-case recall regresses at all. Smaller moves are alerts, and unfamiliar request classes are routed to the closed model until the gate covers them.
Related reading
Part 32: What proves it on production traffic
The verdict states and the evidence a production measurement needs.
Part 33: When to retrain the student model
Which drift signals justify a new candidate and which do not.
Production verification
How Converra measures a shipped change on real traffic and issues a verdict.
Stop reading dashboards. Ship the fix.
Converra diagnoses the failure, tests the fix in simulation, and verifies it worked on your real traffic. Connect your production data and see it on your own agent.