What Percentage of Calls Can Safely Move to the Open Model?

Oren CohenSources reviewed September 23, 202610 min read

Whatever share the evidence supports, and no more. The safe percentage comes from the parity gate's per-class results weighted by the real production traffic mix, capped by the customer's risk tolerance. It is a measured number that changes as traffic changes, not a target set in a planning meeting.

This is part 24 of the closed-to-open model transfer series. It shows how to derive the safe share from gate results and traffic data, works a hypothetical example end to end, explains why the share moves as the request mix drifts, and lays out a gradual ramp with a rollback rule so the number is confirmed on live traffic rather than assumed from the evaluation set.

The short version

The share of calls that can move is the sum, over request classes the candidate passed, of each class's share of real traffic. Everything else is a projection, and the ramp is what turns the projection into a measurement.

Why a target percentage is the wrong starting point

Teams often begin with a number: move 70 percent of calls to the open model and keep the rest on the frontier. The number comes from a cost model, and the cost model needs it to hit a savings figure. But the open model's ability to handle a request has nothing to do with what fraction of traffic a spreadsheet needs it to handle. A target chosen this way forces the router to send requests the open model fails, or it silently misses the target when the router does its job.

The right order is the reverse. First find out which requests the open model handles at parity. Then find out what share of real traffic those requests are. That share is the answer, and if it is below what the cost model needed, the conclusion is that the candidate is not ready for that savings figure, not that the router should be loosened.

Step 1: break the gate results down by request class

The parity gate should already report results per request class, not just in aggregate, because a candidate at parity on average can be far below it on one class. Define the classes by something the router can see before inference: the request's source, its intent as labeled by a lightweight classifier, its evidence condition, its input size. Each class gets its own paired comparison against the incumbent, its own non-inferiority check, and its own pass or fail.

Classes that pass are routable to the open model. Classes that fail stay on the closed model. Classes with too few cases to decide are neither; treat them as failing until the evaluation set has enough of them, because moving a class on insufficient evidence is exactly the kind of projection this article is trying to prevent. Part 17 covers how many cases per class a gate needs before a pass means anything.

Step 2: weight by the real traffic mix

Pull the class distribution from a recent window of production traffic, using the same classifier the router will use. The window should be long enough to include weekly patterns and any seasonal cycle the workload has: a month is a reasonable floor, and the choice should be recorded. Each class's share of that window, multiplied by whether it passed, gives its contribution to the movable share.

The result is a percentage of calls, and also a percentage of tokens, and the two differ. A class of short classification requests may be 40 percent of calls and 10 percent of tokens; a class of long document summaries may be the reverse. Report both, because cost follows tokens and quality risk follows calls. A transfer that moves 70 percent of calls but 30 percent of tokens saves less than the call share suggests.

A worked example

Suppose an agent's traffic falls into five classes. Status lookups are 35 percent of calls and the candidate passed at parity. Order changes are 25 percent and passed. Policy questions with retrieved context are 20 percent and passed. Policy questions without retrievable context are 12 percent and failed on abstention. Multi-account reconciliations are 8 percent and had only nine gate cases, too few to decide.

The movable share is 35 plus 25 plus 20, or 80 percent of calls. The 12 percent that failed stays on the closed model. The 8 percent that could not be decided also stays, pending more evaluation cases. If the customer has additionally decided that anything touching a refund goes to the frontier model regardless of gate results, and refunds are a third of order changes, another 8 percent comes off. The safe share is then 72 percent of calls. By tokens, if reconciliations and unsupported policy questions are the long ones, it might be closer to 55 percent, and the savings projection should use that.

Request class
Status lookups
Share of calls
35 percent
Gate result
Pass
Movable
35 percent
Request class
Order changes (non-refund)
Share of calls
17 percent
Gate result
Pass
Movable
17 percent
Request class
Order changes (refund)
Share of calls
8 percent
Gate result
Pass, but policy-routed to closed
Movable
0 percent
Request class
Policy questions with context
Share of calls
20 percent
Gate result
Pass
Movable
20 percent
Request class
Policy questions without context
Share of calls
12 percent
Gate result
Fail (abstention)
Movable
0 percent
Request class
Multi-account reconciliation
Share of calls
8 percent
Gate result
Insufficient cases
Movable
0 percent
Request class
Total
Share of calls
100 percent
Gate result
n/a
Movable
72 percent of calls

Step 3: cap by risk tolerance, and by router accuracy

Two things reduce the share below what the gate supports. The first is the customer's own decision to keep certain categories on the frontier model regardless of results, which the example handled by removing refunds. The second is the router's accuracy. The gate results say what the open model does on each class; the router decides which class a live request belongs to, and it is wrong some of the time. A router with 90 percent precision on class membership will send some failing-class requests to the open model, and the effective quality on the moved share is lower than the gate said.

Fold router error into the estimate. If 12 percent of traffic is a failing class and the router misses 10 percent of it, about 1.2 percent of all calls go to the open model when they should not. Whether that is acceptable depends on the cost of a wrong answer on that class, which the customer supplies. If it is not acceptable, the fix is a better signal for that class or a more conservative router, not a lower target percentage.

The share moves as traffic drifts

The traffic mix in the derivation window is a snapshot. Product launches, seasonal demand, a new integration, and a change in who uses the agent all shift the class distribution. If the unsupported policy questions grow from 12 to 25 percent of calls because a new product line has thin documentation, the safe share falls, and the hybrid's escalation rate rises with it. The cost projection built on the old mix is now wrong in the customer's disfavor.

Re-derive the share on a schedule and whenever the class distribution moves beyond a recorded threshold. The router's escalation rate per cause is the early warning: a pre-inference escalation rate that climbs means the mix is shifting toward routed-away classes; a post-inference rate that climbs means the open model is failing more on the classes it keeps, which is quality drift rather than mix drift, and part 45 covers detecting it.

Ramp gradually, with a rollback rule tied to the gate dimensions

A derived share is still a projection until live traffic confirms it. Ramp the open model in stages: a small percentage of the movable classes first, then more, with each stage held long enough to accumulate enough scored conversations to compare against the incumbent's on the same classes. The comparison at each stage uses the same dimensions the gate used: correct answers, next actions, safe behavior on thin evidence, format, latency, and cost.

Write the rollback rule before the ramp starts: which measure, what threshold, over how many conversations, and who is notified. A rollback rule that is decided during an incident is decided under pressure and usually too late. A production A/B split that sends a fixed fraction of live traffic to the challenger and rolls back automatically when it underperforms is the cleanest mechanism, because it makes the comparison concurrent rather than before-and-after and removes the temptation to explain away a regression as a busy week.

Report the share as a measurement with a date

The number that goes to the customer should read like a measurement: 72 percent of calls and 55 percent of tokens moved to the open model as of a stated date, derived from gate results on a stated dataset version and a stated traffic window, at a stated router precision, with a stated set of policy-routed categories. Each of those inputs can change, and the report should say which ones changed when the number is updated.

A share reported without those inputs is a marketing number. It cannot be checked, it cannot be reproduced, and when it turns out to be wrong, no one can say why. Part 47 extends the same discipline to the savings figure itself, which is the share times the cost difference, and is wrong for the same reasons whenever the share is.

Where Converra fits

Converra benchmarks candidate models on scenarios generated from the agent's own instruction, three runs per scenario with median scoring and measured cost and latency, and opens a pull request with the winning switch and a comparison table. For a fine-tuned candidate, the workflow curates reviewed production runs into versioned datasets with protected splits, records the training job and its gate result against a dataset version, and holds the production switch behind an explicit approval. Training itself runs on the customer's provider or infrastructure.

The ramp described here is what Converra's production A/B test does for a shipped change: it splits live traffic between the incumbent and the challenger and rolls back when the challenger underperforms. For a model swap, the model production test decides on non-inferiority plus strictly lower cost, and the verdict is parity verified, regressed, confounded, or insufficient data, with the cost delta per arm. Converra does not run training and does not use customer data to train any model without a written, tenant-exclusive election. No open-weight production verdict for a customer agent has been published yet; the share that can move on a given agent is unobserved until measured there.

Frequently asked questions

How do you decide what percentage of traffic to send to an open-source model?

Decide the percentage by measuring, not by choosing: break the parity gate results down by request class, keep only the classes that passed, weight them by their share of real production traffic, then subtract classes the customer routes to the closed model by policy and adjust for router error.

Why does the safe share of calls change over time?

The safe share changes because it depends on the traffic mix, and the mix shifts with product launches, seasonality, and new users. When traffic moves toward classes the open model failed, the share falls and the escalation rate rises, so the share should be re-derived on a schedule.

Should you measure the moved share in calls or tokens?

Measure the moved share in both calls and tokens, because they differ. Cost follows tokens and quality risk follows calls, so a transfer that moves 70 percent of calls but only 30 percent of tokens saves much less than the call share suggests.

How fast should you ramp traffic to a new model?

Ramp traffic to a new model in stages, holding each stage long enough to score enough conversations to compare against the incumbent on the same classes and dimensions the gate used. Write the rollback rule, its threshold, and its owner before the first stage begins.

What if a request class has too few evaluation cases to decide?

A request class with too few evaluation cases should stay on the closed model until the evaluation set contains enough of it to reach a decision. Moving a class on insufficient evidence turns a measurement into a guess.

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.