Deciding Whether to Migrate at All
Every migration guide on this site assumes you've already decided to migrate and just need to know how. This page is for the decision before that one — whether migrating is actually the right call for your specific situation, which is a genuinely different and more important question than any of the how-to guidance that follows it.
Why "newer is better" is a bad default reason to migrate
A new model release is not, by itself, a reason to migrate anything — it's an invitation to evaluate whether the new option genuinely serves your specific workload better than what you're already running, which is a different and more demanding standard than simply defaulting to whatever's most recently released. A stable, well-understood workload running on an older model that's meeting its actual requirements has no automatic obligation to chase every new release; migrating has real costs of its own, covered throughout this site's migration guidance, and those costs need a genuine benefit to justify them.
The genuine reasons worth migrating for
A real, specific need the current model doesn't meet — insufficient context window for a task that's outgrown it, knowledge that's become too dated for what the workload actually requires, a cost structure that no longer makes sense at current volume — are all legitimate, concrete reasons to migrate. So is a genuine capability the new option offers that the current one doesn't, evaluated against your actual use case rather than a generic feature list. What separates these from "newer is better" is specificity: a real reason names the actual gap being closed, not a vague sense that upgrading is generally advisable.
Why "it's free to check" is true, and worth acting on
Running a cost and capability comparison before deciding costs nothing but a bit of time — this site's own comparison pages and calculators exist specifically to make that check cheap and concrete rather than a vague, effortful research project. There's rarely a good reason to migrate without having actually run this comparison first, and equally rarely a good reason to skip even considering a comparison purely out of inertia, since the check itself is close to free relative to the cost of either a bad migration or a missed genuine opportunity.
Weighing the migration's real cost honestly
Every migration this site covers carries real costs beyond the target model's price — caching resets to a cold state, rate-limit headroom that needs re-verifying, AGENTS.md content that may need updating, institutional knowledge that needs rebuilding. None of these is necessarily large individually, but together they're a genuine cost that needs to be weighed against whatever benefit is motivating the migration, not waved away as trivial simply because the target model's per-token price looks appealing on its own.
The case for deliberately staying put
Sometimes the right decision, after genuinely running the comparison, is explicitly choosing not to migrate — and it's worth recognizing that as a real, deliberate decision rather than a default that happens by not acting. A workload that's stable, well-understood, and meeting its requirements has a real, quantifiable switching cost that a marginal improvement elsewhere may not actually justify, and stating that conclusion explicitly, with the comparison that produced it, is more useful than an unexamined status quo that nobody actually decided was still the right call.
Revisiting the decision on a schedule, not just when prompted by a release
Rather than re-evaluating only when a new model release prompts the question, it's worth building a periodic review — quarterly, or whatever cadence matches how fast your specific use case evolves — into how your team operates, checking current models against current needs regardless of whether anything's recently changed on either side. This catches the case where your own workload's needs have shifted enough to justify a migration even without any new model release having prompted the question.
The actual decision framework, distilled
Name the specific gap a migration would close, run a real cost and capability comparison using actual workload data, weigh the genuine switching costs honestly rather than treating them as an afterthought, and make the decision — migrate or stay — deliberately, with the reasoning recorded somewhere a future review can actually reference. That's the whole framework, and it applies identically whether the eventual answer turns out to be yes or no.
Who should actually be involved in making this call
For anything beyond a small, individually-owned project, this decision benefits from involving whoever actually owns the budget alongside whoever understands the workload's technical requirements — a purely technical evaluation can miss real budget constraints, and a purely budget-driven one can miss a technical requirement that makes a cheaper option actually unworkable. Getting both perspectives into the same conversation, rather than one person deciding in isolation, produces a more defensible and more durable decision either way.
Why recording a "stay" decision matters as much as a "migrate" one
It's tempting to only document decisions that resulted in action — a migration that happened, with its own guide and its own record. A deliberate decision to stay put deserves the identical documentation, for the identical reason: without a record of why the current model was judged sufficient at a specific point in time, a future team member re-asking the same question has to redo the entire evaluation from scratch, with no way to know whether anything's actually changed since the last time someone genuinely looked.
What this page is ultimately arguing for
Not caution for its own sake, and not migration for its own sake either — just genuine, honest deliberation, applied consistently every time the question comes up, so that whichever way a given decision lands, it lands because someone actually did the comparison and weighed the real tradeoffs carefully, rather than because inertia or hype happened to win by default without anyone having quite decided anything at all.
Verified 2026-08-09 against CodexHow facts module (src/data/facts/) — see /about/#accuracy.