Skip to content

How long do you have to migrate when an AI model is retired?

Unity Horizon8 min read

Sixty days on the Claude API, at least six months on an OpenAI GA model, two weeks on a Gemini latest alias. Checked 13 October 2026.

Sixty days, on the Claude API. Anthropic's deprecation page commits to "at least 60 days' notice before model retirement for publicly released models", and the last five retirements it announced landed at 60 to 62 days. OpenAI promises at least six months on a generally available model. A Gemini latest alias can change underneath you on two weeks of email notice.

The window is there to re-qualify a system, not to edit a config file. The mechanism worth naming: the model name in your code is a pinned dependency whose publisher sets the expiry date, and on Claude 4.7 and later the same prompt counts about 30% more tokens, so the replacement is not your old input at a new price.

How much notice does each provider promise?

Provider and model class Published minimum notice
Claude API, publicly released models At least 60 days
OpenAI, generally available At least 6 months
OpenAI, specialised variants At least 3 months
OpenAI, models with preview in the name "Much shorter notice, such as 2 weeks"
Gemini API, preview models At least 2 weeks
Gemini API, latest alias 2 weeks by email before a breaking swap
Gemini API, shutdown dates No number published

Checked by Unity Horizon on 13 October 2026.

The promises are not in the same unit. Anthropic's is a floor on notice before a retirement, flat across every publicly released model. OpenAI's floor depends on how the model was shipped, and it carries one exception, "unless safety or compliance concerns require a faster timeline". Google's shortest fuse is attached to a convenience rather than to a shutdown: the latest alias "will get hot-swapped with every new release of a specific model variation". Its deprecations page gives no number for shutdowns at all, only that "we will communicate the exact shutdown date to users with advance notice".

A team on the first-party API knows its floor. A team reading a partner's calendar is working from someone else's planning horizon.

Preview models are the sharp edge everywhere. claude-mythos-preview has been listed Deprecated since 9 June 2026 with a retirement date of "To be announced", which is a status no capacity plan can use.

Has the 60 days held in practice?

Announced Model Retired Days
30 Sep 2026 claude-sonnet-4-5-20250929 30 Nov 2026 61
5 Jun 2026 claude-opus-4-1-20250805 5 Aug 2026 61
14 Apr 2026 claude-sonnet-4, claude-opus-4 15 Jun 2026 62
19 Feb 2026 claude-3-haiku-20240307 20 Apr 2026 60
19 Dec 2025 claude-3-5-haiku-20241022 19 Feb 2026 62
28 Oct 2025 claude-3-7-sonnet-20250219 19 Feb 2026 114
13 Aug 2025 claude-3-5-sonnet, two snapshots 28 Oct 2025 76
30 Jun 2025 claude-3-opus-20240229 5 Jan 2026 189

Days counted by Unity Horizon from the announcement and retirement dates published on Anthropic's model deprecations page, read 13 October 2026.

Ten announcements sit on that page. The two that predate the table gave 181 days to the Claude 2 family in January 2025 and 63 days to Claude 1 and Instant in September 2024. The generous windows are all historical. Every announcement since December 2025 has come in at 60, 61 or 62 days.

The published floor is now the schedule.

There is a second column that looks like a plan and is not one. Active models carry a tentative retirement date worded "not sooner than", and claude-haiku-4-5-20251001 shows 15 October 2026, two days after this check, while still listed Active with no deprecation announced. Read the two commitments together and the column tells you very little: the date is the earliest a retirement is permitted, and the 60 days is what you get once one is scheduled. Your planning number is 60 days from an email that has not arrived yet.

Does a retired model stop answering everywhere at once?

No, and that is where migration plans go to hide. Anthropic's pricing page lists claude-opus-4-1 as "retired, except on Bedrock and Google Cloud", Opus 4 and Haiku 3.5 as retired except on Google Cloud, and prints the rule under the table: "Retired: May still be available on other cloud platforms." The Google Cloud page is blunt about who holds the calendar. "Lifecycle dates on partner-operated platforms are set by the partner and can differ from the Claude API schedule."

Staying put is the expensive option. The number is on the same page: Opus 4.1 costs $15 per million input tokens and $75 per million output, where Opus 5.5 costs $4 and $20. A team that treats a partner cloud as a way to sit out a retirement is paying close to four times the current rate for a model nobody is updating any more.

The sideways move also changes the API around the model. Structured outputs are not supported on the Bedrock Messages endpoint, the Message Batches and Files endpoints are absent on both Bedrock and Google Cloud, and the 2026 computer use and browser use toolsets are not available on Bedrock, so a pipeline that batches overnight or drives a browser can keep its model and lose the endpoint it ran on.

Retired is not the same as deleted, either. Anthropic has committed to "preserving the weights of all publicly released models" for at minimum the lifetime of the company, and to interviewing a model about its own deployment when it is deprecated. Preserved weights are a commitment to the research record rather than an endpoint your agent can call on Monday.

Why is a model swap not a string swap?

Because the token counts move with the model. Claude 4.7 and later use a newer tokenizer that "produces approximately 30% more tokens for the same text", and Sonnet 4.6 and earlier use the previous one. Arithmetic over list prices rather than a measurement: a prompt counted at 40,000 tokens on Sonnet 4.6 costs $0.12 at $3 per million. The same text on Sonnet 5.5 counts about 52,000 tokens and costs about $0.104 at $2 per million.

The price per million went down. The number of millions went up.

Context headroom moves the same way and fails harder. A 150,000-token prompt built against a 200,000-token window counts about 195,000 tokens on the newer tokenizer, which leaves almost nothing for the reply. A prompt that was comfortable last week starts returning a 400 for being too long, and the test corpus that would have caught it is the one you sized against the old count.

The request body moves too. temperature, top_p and top_k are deprecated on Claude 4.7 and later models, where a non-default value returns a 400, and the Python SDK removed all three in v1.0, so passing one raises a TypeError. Those are loud failures, which makes them the good case. A rolling alias is the quiet one: it resolves to whatever the provider shipped last, so a pinned snapshot has a retirement date you can read months ahead while an alias gives you two weeks of email notice and a behaviour change you did not schedule.

What does re-qualifying an agent cost?

The inference is cheap. Estimated, not measured: 200 real cases at 30,000 input and 3,000 output tokens each is 6M input and 0.6M output tokens, which on Opus 5 at $5 and $25 per million is $30 plus $15. So $45 buys one pass over one model, and $90 runs the incumbent pin and the candidate side by side. Three rounds of prompt repair on both is $270, and batch processing halves any of those figures. Your numbers will differ, and the shape will not.

The expensive part is the reading. Somebody has to look at 200 pairs of outputs and decide which differences matter, and the obvious shortcut is to have a model grade them. Our post Do LLM judges really agree with humans 80% of the time? carries the number that shortcut is worth: chance-corrected agreement for 21 judges on MT-Bench runs 0.376 to 0.511. At that level a judge will sort the obvious regressions for you and hand the arguable ones straight back.

The 60 days treat two kinds of team very differently, and which one you are in is settled long before the email lands. A team with 80 recorded cases and one model string in one config file spends an afternoon. A team whose only eval is production, with the model name assembled at runtime across four services, spends the full 60 days and then ships the diff on faith.

What to put in place before the email arrives

Name one person, then give them two artefacts. The first is an inventory: every distinct model string your code can send, counted, including the ones assembled by concatenation at runtime, which is exactly where a grep misses them. The second is a dated re-qualification in the calendar with its eval set attached, built from your own traffic rather than a synthetic suite, because the regressions that will cost you something have the shape of your own inputs. Neither takes a week to build. Both get far harder to build in the sixty days after the email.

Our own archive carries these dates. Does forcing JSON output make an AI model worse at reasoning? rests on scores for Claude Sonnet 4.6 and Claude Haiku 4.5, and Haiku 4.5 is the model whose tentative retirement floor passes this week. We built OFFSET, which files declarations directly to the ΑΑΔΕ portal. A system of that shape reads a screen and decides where to click, so its behaviour is a property of the model and the prompt together, which makes a model swap a change to the product rather than to the configuration.

We have not run a client migration against a live 60-day clock, so the $45 a pass above is arithmetic over published prices rather than an invoice we have paid, and the 30% is Anthropic's own approximation rather than our count on your corpus. If you have moved a tool-heavy agent between model generations and recorded how many eval cases changed verdict, that number is worth more than this article.

Which model strings can your production code send today, and what is the published retirement date of each one? If that takes longer than a grep to answer, working it out before the email arrives is the kind of work we scope.

Common questions

How much notice do you get before an AI model is retired?

Sixty days on the Claude API. Anthropic commits to at least 60 days before retiring a publicly released model, and the last five retirements it announced gave 60 to 62 days. OpenAI promises at least 6 months for a generally available model, at least 3 months for a specialised variant, and says preview models may go with much shorter notice, such as 2 weeks. Checked 13 October 2026.

Can you keep using a Claude model after it is retired?

Sometimes, on a partner cloud. Anthropic's pricing page lists Claude Opus 4.1 as retired except on Bedrock and Google Cloud, and notes that a retired model may still be available on other cloud platforms. Lifecycle dates on partner-operated platforms are set by the partner, so the same model can have a different expiry date depending on where you call it.

Why does the same prompt cost more tokens on a newer model?

Claude 4.7 and later models use a newer tokenizer that produces approximately 30% more tokens for the same text. A prompt counted at 40,000 tokens on Claude Sonnet 4.6 counts about 52,000 on Claude Sonnet 5.5, so a lower price per million token does not translate into the same cut on the invoice, and a prompt sized against a 200,000-token window can overflow it after the move.

Should you pin a model version or use a rolling alias?

Pin the dated snapshot. A pinned snapshot has a published retirement date you can read months ahead. Google documents that its latest alias is hot-swapped with every new release of a model variation, with two weeks of email notice before a breaking change, which means the version you tested against can change with no deploy on your side.

Ready when you are.

Tell us what slows your business down. We'll show you what intelligent software can do about it, usually within a week.

Book a callhello@unity-horizon.com