INSTRUMENT | Reliability testing
AI Model Deprecation Dates, Replacements and Breaking Changes
Retirement dates, vendor replacements and what breaks in your eval when you swap.
When a provider retires a model, three things matter: the date, the replacement and what breaks. This page tracks each across OpenAI, Anthropic and Google, with the day someone last checked the vendor page on every row. Other pages cover product-level shutdowns, such as the hosted OpenAI Evals wind-down; this page is keyed to models and says what breaks in your measurements. No build ships with an overdue row, so a stale entry freezes the site.
Rows are grouped: announced retirements first (soonest first), then models whose vendor has set only a floor date, then retired models.
| Provider | Model | State | Retirement date | Replacement | Days until retirement | Notice given vs published minimum | What breaks | Checked |
|---|---|---|---|---|---|---|---|---|
| OpenAI | GPT-3.5 Turbo Instruct gpt-3.5-turbo-instruct | deprecated | gpt-5.6-terra | 6 days This month | 367 days At least 6 monthsMet the published minimum | baseline-does-not-port encoding-change | the OpenAI deprecations page | |
| OpenAI | GPT-3.5 Turbo (0125 snapshot) gpt-3.5-turbo-0125 | deprecated | gpt-5.6-terra | 31 days This quarter | 184 days At least 6 monthsMet the published minimum | baseline-does-not-port encoding-change alias-moves | the OpenAI deprecations page | |
| OpenAI | GPT-4 (0613 snapshot) gpt-4-0613 | deprecated | gpt-5.6-sol | 31 days This quarter | 184 days At least 6 monthsMet the published minimum | baseline-does-not-port encoding-change alias-moves | the OpenAI deprecations page | |
| OpenAI | GPT-4o (2024-05-13 snapshot) gpt-4o-2024-05-13 | deprecated | gpt-5.6-sol | 31 days This quarter | 184 days At least 6 monthsMet the published minimum | baseline-does-not-port judge-recalibration alias-moves | the OpenAI deprecations page | |
| OpenAI | GPT-5 (2025-08-07 snapshot) gpt-5-2025-08-07 | deprecated | gpt-5.6-sol | 80 days This quarter | 183 days At least 6 monthsMet the published minimum | baseline-does-not-port judge-recalibration alias-moves | the OpenAI deprecations page | |
| OpenAI | o3 (2025-04-16 snapshot) o3-2025-04-16 | deprecated | gpt-5.6-sol | 80 days This quarter | 183 days At least 6 monthsMet the published minimum | baseline-does-not-port alias-moves | the OpenAI deprecations page | |
| Vendor floor only · retirement not scheduled | ||||||||
Gemini 3 Pro Image Preview gemini-3-pro-image-preview | deprecated | earliest possible | gemini-3-pro-image | Floor passed No retirement announced | No published minimum | baseline-does-not-port | the Google deprecations page | |
| Anthropic | Claude Sonnet 4.5 claude-sonnet-4-5-20250929 | active | not sooner than | No replacement named | at least 7 days No earlier than | at least 60 days' notice before model retirement for publicly released modelsNo announcement to measure | the Anthropic deprecations page | |
| Anthropic | Claude Haiku 4.5 claude-haiku-4-5-20251001 | active | not sooner than | No replacement named | at least 23 days No earlier than | at least 60 days' notice before model retirement for publicly released modelsNo announcement to measure | the Anthropic deprecations page | |
| Anthropic | Claude Opus 4.5 claude-opus-4-5-20251101 | active | not sooner than | No replacement named | at least 63 days No earlier than | at least 60 days' notice before model retirement for publicly released modelsNo announcement to measure | the Anthropic deprecations page | |
Gemini 3.1 Flash Lite gemini-3.1-flash-lite | deprecated | earliest possible | gemini-3.5-flash-lite | at least 227 days No earlier than | No published minimum | baseline-does-not-port | the Google deprecations page | |
Gemini Embedding 001 gemini-embedding-001 | deprecated | earliest possible | gemini-embedding-2 | at least 600 days No earlier than | No published minimum | baseline-does-not-port | the Google deprecations page | |
| Retired models | ||||||||
| Anthropic | Claude Opus 4.1 claude-opus-4-1-20250805 | retired | claude-opus-4-8 | 48 days ago Retired | 61 days at least 60 days' notice before model retirement for publicly released modelsMet the published minimum | baseline-does-not-port parameter-rejected | the Anthropic deprecations page | |
| Anthropic | Claude Haiku 3 claude-3-haiku-20240307 | retired | claude-haiku-4-5-20251001 | 155 days ago Retired | 60 days at least 60 days' notice before model retirement for publicly released modelsMet the published minimum | baseline-does-not-port | the Anthropic deprecations page | |
| Anthropic | Claude Sonnet 3.7 claude-3-7-sonnet-20250219 | retired | claude-sonnet-4-6 | 215 days ago Retired | 114 days at least 60 days' notice before model retirement for publicly released modelsMet the published minimum | baseline-does-not-port judge-recalibration | the Anthropic deprecations page | |
-
gpt-3.5-turbo-instruct - The GPT-3.5 and GPT-5.6 families tokenize differently, so token counts and per-call cost move with the swap.
-
gpt-3.5-turbo-0125 - A pinned dated snapshot id, so a run pinned to it stops on the shutdown date while the undated alias silently answers from a different model.
-
gpt-4-0613 - A pinned dated snapshot id. The undated alias keeps answering because it repoints to a current model; this id fails outright on the shutdown date.
-
gpt-4o-2024-05-13 - A pinned dated snapshot id. If it scored any of your judge runs, agreement and calibration are re-measured against the replacement.
-
gpt-5-2025-08-07 - Six months to the day: the announcement lands exactly on the published floor, which is what makes the verdict a comparison rather than a rounding.
-
o3-2025-04-16 - A pinned dated snapshot id. A reasoning-model swap moves both the pass rate and the token spend per task.
-
gemini-3-pro-image-preview - The published date has passed and the vendor page still lists the model in its deprecation table rather than as shut down. Google publishes earliest possible dates, so a passed date is not a retirement the vendor has confirmed.
-
claude-sonnet-4-5-20250929 - The vendor cell reads "Not sooner than September 29, 2026" and the model is still listed as active, with no replacement named.
-
claude-haiku-4-5-20251001 - The vendor cell reads "Not sooner than October 15, 2026" and the model is still listed as active, with no replacement named.
-
claude-opus-4-5-20251101 - The vendor cell reads "Not sooner than November 24, 2026" and the model is still listed as active, with no replacement named.
-
gemini-3.1-flash-lite - The vendor states the listed dates are the earliest possible dates a model might be retired, and that the exact shutdown date is communicated with advance notice. No numeric minimum is published.
-
gemini-embedding-001 - An embedding swap re-indexes the corpus, so retrieval numbers measured on the old index are not the new one's numbers.
-
claude-opus-4-1-20250805 - The replacement is Claude Opus 4.8, and the vendor returns a 400 error when temperature, top_p or top_k is set to a non-default value on Claude Opus 4.7 and later.
-
claude-3-haiku-20240307 - The 60-day floor lands exactly on the retirement date: 60 days after 2026-02-19 is 2026-04-20.
-
claude-3-7-sonnet-20250219 - If this model scored any of your judge runs, agreement and calibration move with the swap and are re-measured, not carried over.
days = retiresOn - today; notice = retiresOn - announcedOn; verdict from notice vs floorHow?
How this is calculated
Four numbers per row, all counted in whole UTC days. Days until retirement is the vendor's published date minus today. When the vendor published a floor rather than a firm date, the same subtraction gives the minimum number of days until the earliest possible retirement, not a countdown to a scheduled one. Notice given is the retirement date minus the announcement date. The verdict compares notice given against the vendor's own published minimum: met when the announcement plus the floor falls on or before the retirement date, short otherwise. The urgency band marks each row: this month, this quarter, or later for announced dates; no earlier than for vendor floors; undated; and retired. Rows appear in that order, announced dates soonest first. A band is a label, never a score: it carries no weight, no sum and no composite.
Every row carries a re-read deadline 90 days after the date someone last checked the vendor page. A row past that deadline fails the build rather than dropping quietly: a silent removal would make the table look current while one entry is not, so the failure is the honest freshness signal. The build does warn before the deadline, so a re-read never has to be an emergency.
The break classes below are this site's routing device. They group the kinds of work a model swap forces so each class can link to the instrument that handles it. They are not the vendor's taxonomy and do not reproduce one.
-
baseline-does-not-portYour old scores cannot be compared to the new model without a fresh baseline. Re-run the eval on both. McNemar test paired vs. independent design chooser golden-set size planner -
encoding-changeThe tokenizer changed, so token counts, costs and any token-level alignment shift. -
judge-recalibrationAn LLM judge trained or prompted on the old model may grade the new one differently. Re-validate the judge. judge validation report builder kappa thresholds for LLM judges -
parameter-rejectedA request parameter the old model accepted is refused by the new one. Calls that rely on it will fail. -
alias-movesAn undated alias (such as "gpt-4o") repoints to a new snapshot. A pinned, dated snapshot id stops working instead.
A model swap is one instance of a change impact; the change-impact worksheet walks the general case.
An undated alias (such as "gpt-4o") repoints silently when the vendor publishes a new snapshot behind it. A pinned, dated snapshot id (such as "gpt-4o-2024-08-06") does not repoint; it stops working on the retirement date, and every call using it fails until you update the id.
Formula: days = retiresOn - today; notice = retiresOn - announcedOn; verdict from notice vs floor
Questions
How often is this updated?
Every row has a re-read deadline 90 days after the date in its Checked column. The build fails when a row passes that deadline, so the site cannot deploy with a stale entry. The cadence is enforced by the build gate, not by a calendar reminder.
Why so few models?
The row cap is deliberate. Comprehensive model coverage is the vendors' job, and every row on this page costs a human read: the break classes and the notice verdict both require checking the vendor page rather than scraping it. A larger table would go stale faster than anyone could re-read it.
Can I suggest a model?
There is no suggestion mechanism yet. The data file is in the repository, so you can open a pull request against it directly.