The Hidden Cost of Defaulting to Your Flagship Model
What defaulting to your flagship model costs beyond the invoice: waiting in dollars, real OpenAI rate limits and model retirements. Checked 2026-10-15.
Starting every project on your strongest model is a sound choice while you build. It gets expensive when nobody looks at it again. This post covers three costs the invoice does not show: what each month of waiting costs in dollars, what OpenAI's rate limits look like in numbers, and the migration work that arrives when a model name is retired. Prices, limits and model status were checked on 2026-10-15, and every calculation shows its arithmetic.
The default today, and what our tests show
As of 2026-10-15, OpenAI's models page says to start with GPT-6 Astra for complex reasoning and coding, GPT-6.1 Sol to balance intelligence and cost, and GPT-6 Luna for cost-sensitive, high-volume work. Its pricing page lists Astra at $10 per million input tokens and $50 per million output tokens for short-context requests. That is 4 times GPT-4o's $2.50 input price (10 / 2.50) and 5 times its $10 output price (50 / 10).
Our own early data comes from one production account. About 83% of its 183 live requests were simple question-answering and about 6% were heavy reasoning or complex code. In 24 side-by-side comparisons, a cheaper model matched or beat the chosen model 18 times (75%), at roughly 89% lower cost on those calls. We estimate a 40 to 70 percent lower bill for a workload with many simple requests, but that is an estimate, not a measurement. What We Measured Routing GPT-4o Traffic to Cheaper Models explains the method and its limits, and GPT-4o-mini Real-World Quality Analysis covers which tasks still need the stronger model.
The cost of waiting, in dollars
Savings are a share of your bill, so each month you wait gives up one month of them. You need three inputs: your monthly bill, a reduction between 40 and 70 percent, and PromptUnit's charge, which is 20% of the savings. If you do not know your bill, the formula in OpenAI API Cost Too High? Six Fixes, Ordered by Effort turns calls and tokens into dollars.
For each row, saved = bill x reduction, and you keep saved x 0.80.
| Monthly bill | Saved at 40% | Saved at 70% | You keep at 40% | You keep at 70% |
|---|---|---|---|---|
| $2,000 | $800 | $1,400 | $640 | $1,120 |
| $5,000 | $2,000 | $3,500 | $1,600 | $2,800 |
| $10,000 | $4,000 | $7,000 | $3,200 | $5,600 |
Take the $5,000 row. At 40 percent, $5,000 x 0.40 = $2,000 saved, PromptUnit's 20% is $400, and you keep $1,600. At 70 percent, $5,000 x 0.70 = $3,500 saved, 20% is $700, and you keep $2,800. Six months of waiting costs 6 x $1,600 = $9,600 to 6 x $2,800 = $16,800 of savings you would have kept.
This is arithmetic on a range, not a forecast. The dashboard shows each request with the model you asked for, the model that answered, its cost and its saving, so your own traffic sets the real figure. The table ignores the free first $5 (individual account) or $100 (business account) of savings, so you keep slightly more at the start.
To check the table, run this:
const feePct = 20; // PromptUnit's share of the savings, in percent
for (const bill of [2000, 5000, 10000]) {
const low = (bill * 40) / 100;
const high = (bill * 70) / 100;
console.log(bill, low, high, (low * (100 - feePct)) / 100, (high * (100 - feePct)) / 100);
}
// 2000 800 1400 640 1120
// 5000 2000 3500 1600 2800
// 10000 4000 7000 3200 5600
Paying full price on every request?
PromptUnit checks each request your app sends and moves it to a cheaper model when one is just as good for that request. You change two settings, and your own provider key stays. Free until it has saved you money, then 20% of what it saves.
Try it free →Rate limits and tiers
How tiers work
As of 2026-10-15, OpenAI's rate limits guide describes three paid tiers. OpenAI moves your organization up by itself once the credits you have bought in total reach $5 (Build), $100 (Launch) and $500 (Grow). The tier table shows a qualification and a limit, not a price.
Limits per minute
Tokens per minute on 2026-10-15, from the GPT-4o and GPT-4o mini model pages and the guide:
| Tier (total credits bought) | GPT-4o | GPT-4o mini | GPT-6 Astra | GPT-6 Luna |
|---|---|---|---|---|
| Build ($5) | 450,000 | 2,000,000 | 1,000,000 | 2,000,000 |
| Launch ($100) | 2,000,000 | 10,000,000 | 4,000,000 | 10,000,000 |
| Grow ($500) | 30,000,000 | 150,000,000 | 40,000,000 | 180,000,000 |
The Astra column is the row OpenAI shares with Sol and Terra. Requests per minute match across the four models at Build (5,000) and Launch (10,000). At Grow they are 10,000 for GPT-4o, 30,000 for GPT-4o mini, 15,000 for GPT-6 Astra and 30,000 for GPT-6 Luna. In tokens per minute, the stronger model gets the smaller allowance at every tier. Some models share one pool, and the Limits page in your OpenAI settings shows which.
Check your own load
Take 500,000 calls a month at 1,000 tokens each, input and output together.
- 500,000 x 1,000 = 500,000,000 tokens a month
- 30 x 24 x 60 = 43,200 minutes in a 30-day month
- 500,000,000 / 43,200 = 11,574 tokens a minute on average
- 11,574 / 450,000 = 2.6% of the GPT-4o limit at Build
- 11,574 / 1,000,000 = 1.2% of the GPT-6 Astra limit at Build
An average hides bursts, so read your busiest minute from your request logs and divide the limit by it. A result above 1 means you are under the limit.
Model-retirement debt
Every model name in your code can get a shutdown date that someone else sets. OpenAI's deprecations page shows how often that happens:
| Announced | Shutdown | Days of notice | Names on the page (examples) |
|---|---|---|---|
| 2025-11-18 | 2026-02-17 | 91 | chatgpt-4o-latest |
| 2026-04-22 | 2026-10-23 | 184 | gpt-4o-2024-05-13, gpt-4-turbo, o1, o4-mini |
| 2026-06-11 | 2026-12-11 | 183 | gpt-5-2025-08-07, gpt-5-mini-2025-08-07, o3-2025-04-16 |
| 2026-10-01 | 2027-04-01 | 182 | gpt-5.1, gpt-5.3-codex, gpt-5.4-nano |
Days of notice is the shutdown date minus the announcement date, and the 2026-04-22 and 2026-06-11 rows list more names than shown.
As of 2026-10-15, gpt-4o-2024-05-13 shuts down on 2026-10-23. The same date takes gpt-4-turbo, gpt-4.1-nano, o1, o3-mini and o4-mini, so plain names retire as well as dated snapshots. On 2026-10-14 OpenAI added the rest of GPT-4o, GPT-4o mini, GPT-4.1 and GPT-4.1 mini, all shutting down on 2027-01-14 with gpt-6-luna as the replacement. The text models gpt-4o and gpt-4o-mini have no listed shutdown date, but gpt-4o-audio and gpt-4o-realtime retire on 2027-01-20 and gpt-4o-transcribe on 2027-02-26. Test OpenAI's named replacement with your own prompts before you switch.
Work per retirement is roughly call sites times edit and re-test time. Count yours with grep -rn "gpt-" src/, then move every model name into one config value so a retirement is a one-line change. The PromptUnit dashboard shows the model you asked for on each request, so you can see which names your traffic still uses.
Where PromptUnit fits
PromptUnit is a proxy. You point your app's AI API base URL at it, and it checks each request. When a cheaper model is just as good, it uses that model. Otherwise the request goes to the model you asked for. It works with your own OpenAI, Anthropic, Google, Groq and DeepSeek keys and your own OpenRouter key. The header x-promptunit-routing: off keeps a request on the model you asked for. LLM Model Routing: The Complete Guide explains routing in general, and the setup guide in the docs covers the base URL change and the dashboard.
It is free until it has saved you $5 (individual account) or $100 (business account, which needs a work email). After that it charges 20% of the savings. If it saves nothing, you pay nothing.
What to do this week
- Put last month's bill into the table and read your row.
- In OpenAI settings, open Organization, then Limits, and compare your busiest minute with your tier.
- Move model names into one config value and note any shutdown dates.
- If you cannot say which feature drives the bill, start with LLM cost attribution by feature, then use AI cost per user to turn the bill into a per-user figure.