Solutions
Comparing models on your own traffic
Route a slice of real traffic to the new model and read quality, speed, and cost side by side — before you commit the whole product to it.
Who this is for: Teams facing a model upgrade, a cheaper alternative, or a provider migration, with no way to know what it does to their product until it is live.
What most teams do today — and where it stops working
A new model ships and the decision gets made on a benchmark table, a vibe check over a few prompts, and the price per token. None of those are measured on your traffic, your prompt, or the thing your users are actually trying to do.
So it goes out, and the regression is found the way your users find it. Or it does not go out at all, and you keep paying for a model you have outgrown because nobody can prove the swap is safe.
The trap in the middle is subtler: "the new model is worse" is usually "our prompt is old". A prompt tuned for months against one model is not a fair starting point for another, and comparing them without re-tuning measures the wrong thing.
How LLMJury does it
The model is just another variant
Swap the model, the prompt, the temperature, or all three behind one variant key. The comparison is set up the same way as any prompt test, so there is nothing new to learn.
Cost and latency are captured, not estimated
The SDK wrapper records tokens and wall-clock latency per call, per arm. You read the actual bill impact of the swap on your actual traffic, not a per-token price times a guess.
Quality measured on the same rubric for both
The judge scores both arms identically. A judge that is generous or harsh in absolute terms is still generous or harsh to both models, which is what makes the difference between them trustworthy.
Heavy-tailed metrics tested properly
Latency and cost are skewed, and a t-test on them is optimistic. Continuous, percentile, and count metrics are routed to permutation tests with bootstrap confidence intervals by default.
Ramp, do not flip
Start the new model on a small weight, confirm the split is healthy and nothing has fallen over, then raise it. Weights change without a redeploy.
What you would set up
- 1Add the new model as a second variantSame experiment, its own model and its own copy of the prompt — so you can re-tune the prompt for it without disturbing the control.
- 2Make cost or latency a declared metric, not an afterthoughtIf the point of the swap is the bill, say so up front: primary metric cost, quality as a guardrail you refuse to regress.
- 3Start small, then rampA low weight first. Once the traffic chart and the SRM check both look healthy, raise it and let the sample build.
The whole path, in all three SDKs, is on the five-minute quickstart.
What this does not do
- LLMJury does not call models for you or resell inference. You keep your own provider keys and your own client; the SDK wraps the call you already make.
- Non-inferiority — "is the cheaper model close enough?" — is a different question from "is it better", and needs a margin declared before you start rather than a significance test read after.
- A model swap changes latency and cost immediately and quality subtly. Give the quality metric the sample it needs before concluding the swap was free.
Try it on the thing you are arguing about this week
Free plan, no credit card, and the sample experiment is already in your account so there is something to read before you have any data of your own.
Prefer to look first? The interactive demo is a real verdict with no sign-up.