# Whether to pin a model version, and what each choice costs > Anthropic lists deprecated Opus 4.1 at $15/$75 against Opus 5 at $5/$25. Staying pinned to the old model costs exactly three times as much. URL: https://getculpa.com/pin-or-float-model-version Last reviewed: 2026-08-05 Rates effective: 2026-07-02 ## Answer Pinning a model version protects you from behaviour changing underneath you and exposes you to a different risk, because newer models are often cheaper. Anthropic's own list puts a deprecated model at three times its successor. Culpa, a local-first LLM cost, margin, and forecast ledger, records the model version on every call so the comparison is measurable. ## Why this happens The instinct is that pinning is the careful choice and floating is the risky one, and for behaviour that's right. A floating alias can move you onto a model that tokenizes differently or answers differently, and you find out from a metric rather than a changelog. What that instinct misses is the direction prices move. Model rates have fallen sharply between generations, so the pinned version is usually the expensive one, and the gap compounds every month nobody revisits it. Anthropic's pricing page makes this concrete by listing deprecated and retired models alongside current ones: Claude Opus 4.1, marked deprecated, is priced at three times Claude Opus 5. Worth separating from a related problem: none of this is model mix drift, where traffic moves between models with the code unchanged. Here the identifier in your code stays exactly the same, and what it means, or what it costs, changes around it. The fix is opposite too. Drift is fixed by pinning. This is fixed by reviewing the pin. ## What this usually looks like - A model version was pinned once and nobody has revisited it since. - You're running a model the provider lists as deprecated. - Nobody knows which model versions are live in production right now. - Cost per call is flat while newer models have got cheaper. - A floating alias moved you to a new generation and the token counts jumped. ## Common mistakes - Pinning and never reviewing it. Why it hurts: Rates fall between generations, so an old pin becomes the expensive option by default. Do instead: Put a recurring review on the pin, and re-price it against the current generation each time. - Floating to save the review effort. Why it hurts: A generation change can move your token counts and your behaviour without warning. Do instead: Pin deliberately, then move deliberately, so both changes are things you chose. - Assuming pinning is the cheap conservative option. Why it hurts: Anthropic's own list prices a deprecated model at three times its successor. Do instead: Check the current price of your pinned version against today's equivalent before renewing it. - Not recording the model version on the call. Why it hurts: Without it a cost change from a version move looks identical to one from usage. Do instead: Record the exact version string on every call, including whatever an alias resolved to. ## Self-check - List every model version live in production right now, from your own call records. - Check each against the provider's list for a deprecated or retired marker. - Re-price last month's volume at the current generation's rates. - Decide whether each pin is deliberate, and put a review date on the ones that are. ## The cost of a pin nobody revisited (illustrative) Anthropic's pricing page, read 2026-08-05, lists Claude Opus 4.1 as deprecated at $15.00 input and $75.00 output per million, alongside Claude Opus 5 at $5.00 and $25.00. A modelled workload of 10 million input and 2 million output tokens a month is priced at both. The rates and the deprecation markers are published, the volume is modelled. on the deprecated Opus 4.1: 10M x $15.00/M + 2M x $75.00/M = $150.00 + $150.00 = $300.00 on Opus 5: 10M x $5.00/M + 2M x $25.00/M = $50.00 + $50.00 = $100.00 exactly 3x, on identical traffic, for a decision nobody revisited the difference is $200.00 a month, or $2,400.00 a year, per workload Three times, and the input and output multiples are both exactly three, which is what makes this easy to miss: nothing about the shape of the bill changes, only its size. The pin was probably the right call the day it was made. It stopped being right the day the successor shipped at a third of the price, and nothing announced that. ## Cost figures Every figure carries its confidence and its source. No figure on this page is provider-reported. - 3x, cost of a deprecated model against its current successor on identical traffic [calculated] Source: Anthropic's pricing page at platform.claude.com/docs/en/docs/about-claude/pricing, read 2026-08-05, lists Claude Opus 4.1 as deprecated at $15.00 input and $75.00 output per million, and Claude Opus 5 at $5.00 and $25.00. A modelled 10 million input and 2 million output tokens costs $150.00 + $150.00 = $300.00 on the former and $50.00 + $50.00 = $100.00 on the latter, a factor of exactly 3 on both rates. The rates and deprecation markers are published, the volume is modelled. ## FAQ Q: Is pinning a model version cheaper or more expensive? A: Usually more expensive over time, which surprises people. Rates fall between generations, so a pin made a year ago is likely above the current price. Anthropic's own list puts deprecated Claude Opus 4.1 at $15.00 and $75.00 per million against Claude Opus 5 at $5.00 and $25.00, exactly three times. Q: Should I use a floating alias then? A: Only if you're watching for the move. A float can put you on a new generation that tokenizes differently, which changes your token counts without changing your code. The safer pattern is to pin deliberately and review the pin on a schedule, so both the staying and the moving are decisions. Q: How is this different from model mix drift? A: Drift is traffic moving between models while your code stays the same, through fallbacks or routing. This is one identifier whose meaning or price changes around it. The fixes are opposite: drift is fixed by pinning, and a stale pin is fixed by reviewing it. Q: What should I record to catch this? A: The exact model version on every call, including whatever an alias actually resolved to. Without it a cost change from a version move looks identical to one from usage, and the two need completely different responses. ## Sources - Anthropic pricing: https://platform.claude.com/docs/en/docs/about-claude/pricing Run the free Cost Leak Scan: https://app.getculpa.com/scan?source=pseo&slug=pin-or-float-model-version&cluster=problem Machine-readable index of every guide: https://getculpa.com/api/pages Human-readable index of every guide: https://getculpa.com/guides Site overview: https://app.getculpa.com/llms.txt Privacy: Culpa runs on your infrastructure. Your prompts and responses never leave it. Culpa counts calls to run your plan, and it fails open, so if it ever breaks your app keeps running.