An endpoint is not a version. The weights behind it can change without the string in your config changing at all.
silent model drift
The model you tested is not the model you deployed
A model id used to name weights. It now names a routing decision — and most AI assurance has not noticed.
Here is a weak signal most AI assurance programmes are ignoring: the model id in your config no longer identifies a model.
It identifies a routing decision. And that decision changes underneath you.
The forces
- Routers spread one id across several providers
- Providers serve the same weights at different quantization and configuration
- The weights behind an alias get updated, and the alias stays the same
Old way, new way
What we do: every trial records the model actually served, not just the one requested. Every loop carries a served-on date, and it is an invariant that one date covers the whole loop. A loop measured across two days is two experiments wearing one label.
How this plays out
How to prepare
Most APIs return it. Almost nobody stores it.
A result is a measurement of an endpoint on a date — not a permanent property of a model.
Small, frozen, cheap. Its only job is to tell you whether the thing behind the id moved.
Why: A re-run months later is a new measurement, not a confirmation. Treat a change as a finding.
A result is what that endpoint did on that date.
If your provider changed what sits behind your model id tonight, which of your dashboards would show it?
Every figure here describes something measured and committed. See the measurements · read the method