
GPT-5.6 is live as of July 9. Three tiers, three price points, and one routing decision you need to make before touching your code. Sol, Terra, and Luna are not effort settings or aliases — they are distinct model IDs with separate pricing ceilings and capability profiles. Getting this wrong costs real money.
The Tier System Is Not What You Expect
OpenAI has changed how it names models. The number — 5.6 — identifies the generation. Sol, Terra, and Luna identify the tier. These are durable tiers, not point releases. Each can be updated independently on its own cadence. That means a Sol update in August will not necessarily change Terra’s behavior. Treat them as separate products that happen to share a family name.
The model IDs are gpt-5.6-sol, gpt-5.6-terra, and gpt-5.6-luna. Pin the tier in your code, not the generation number, and you get a stable target going forward.
Which Tier Goes Where
The GPT-5.6 routing decision breaks cleanly across three use-case profiles:
| Tier | Pricing (input/output per 1M) | Use It For | Skip It For |
|---|---|---|---|
| Sol | $5 / $30 | Long-horizon agents, security audits, complex reasoning, biology/math | Anything you run at scale or volume |
| Terra | $2.50 / $15 | RAG pipelines, code review, business document analysis, customer support | Pure high-volume preprocessing |
| Luna | $1 / $6 | Classification, intent detection, short summarization, FAQ answering | Deep agentic chains, complex reasoning |
OpenAI positions Terra as performance-competitive with GPT-5.5 at roughly half the price. A monthly workflow burning 100 million input tokens and 20 million output tokens costs about $1,100 on GPT-5.5 and about $550 on Terra. The math is not subtle.
If you are unsure where to start, use this traffic split as a baseline: 10% Sol, 70% Terra, 20% Luna. Most production applications fit this profile. Adjust after you have real latency and quality data.
Here is a simple routing function to wire up your stack:
def get_model(task_type: str) -> str:
routing = {
"agent": "gpt-5.6-sol",
"security_audit": "gpt-5.6-sol",
"rag": "gpt-5.6-terra",
"code_review": "gpt-5.6-terra",
"classify": "gpt-5.6-luna",
"summarize": "gpt-5.6-luna",
"intent": "gpt-5.6-luna",
}
return routing.get(task_type, "gpt-5.6-terra") # Default: Terra
The Caching Change That Will Bite You
This is the migration detail most coverage has glossed over. On GPT-5.5, cache writes had no additional fee. On GPT-5.6, cache writes cost 1.25x the uncached input rate. Cache reads still get a 90% discount, and you now get a 30-minute guaranteed minimum cache life with explicit cache breakpoints. That is an improvement. But the write cost is new, and it changes your break-even math.
For Terra: uncached input is $2.50 per million tokens. A cache write costs $3.125 per million. A cache read costs $0.25 per million. You break even at roughly 12 reuses of the same cached tokens within a 30-minute window. If your system prompt is stable and your traffic is steady, caching still wins. If you are caching speculatively — caching tokens you rarely reuse — you are now paying more than before. Check the OpenAI prompt caching documentation before you migrate.
Audit your caching strategy before you flip the switch. This is not optional.
Sol-Only: Ultra Mode and Max Reasoning
Two new capabilities land exclusively on Sol. The first is max reasoning effort — reasoning.effort now accepts max as a value, beyond the previous ceiling of xhigh. More thinking time, single agent, single chain of work.
The second is ultra mode, available as a beta API flag. Ultra mode is a multi-agent system built into Sol: the model decomposes the request and spawns parallel subagents that coordinate mid-task. On Terminal-Bench 2.1, Sol Ultra scored 91.9% and base Sol scored 88.8%, edging Claude Mythos 5 at 88.0%. The cost trade-off is steep — ultra sessions run approximately four times the token spend of a standard Sol request. Reserve it for tasks where the latency reduction justifies the bill.
Terra and Luna get neither feature. If your use case needs ultra mode or max reasoning, you are buying Sol. Otherwise, you probably are not.
Migrating from GPT-5.5: One Warning
GPT-5.6 is more sensitive to conciseness instructions than its predecessor. A “be concise” nudge in your system prompt can shift how the model prioritizes the underlying task — not just trim the output length. If your prompts carry aggressive length constraints, re-test them on 5.6 before you flip the switch in production. Treat migration as a tuning pass, not a model ID swap.
All three tiers are also now available in GitHub Copilot’s model picker as of July 9. Test all three in your editor before committing to API changes — it is the lowest-friction way to validate your routing assumptions.
The Bottom Line
Default to Terra. Use Sol for agents and hard reasoning. Use Luna for volume preprocessing. Fix your caching math before you migrate. OpenAI’s full announcement has the complete capability breakdown, and Simon Willison’s analysis is worth reading for a second opinion on the tier structure. The three-tier system is a permanent architectural shift — get the routing right now and you will not have to revisit it every time a new generation ships.













