Two new models, and one that isn't there On September 22, OpenAI shipped GPT-6 Sol and GPT-6 Luna, completing the GPT-6 family that GPT-6 Astra started earlier in the month. The headline is price: both launched at half the promotional price of their GPT-5.6 predecessors. Source: OpenAI Developer Community GPT-6 Sol costs $2 per million input tokens and $10 per million output. GPT-6 Luna costs $0.10 and $0.50, which Simon Willison calls "one of the cheapest models OpenAI have ever released". Source: Simon Willison The detail that matters more for anyone running GPT-5.6 in production is the model that didn't ship. There is no GPT-6 Terra. GPT-5.6 had three tiers, Sol, Terra and Luna. GPT-6 has Astra, Sol and Luna. The middle tier that GPT-5.6 positioned as the default production workhorse has no successor. It doesn't need one either, because GPT-6 Sol now sits at Terra's price or below on every line. This post covers the new price card, why Terra is effectively retired, what the cuts do per task rather than per token, and a migration plan for each GPT-5.6 tier. The price card | Model | Input | Cached input | Output | Notes | |---|---|---|---|---| | GPT-6 Astra | $10.00 | $1.00 | $50.00 | Flagship. >272K prompts billed at 2x input, 1.5x output | | GPT-6 Sol | $2.00 | $0.20 | $10.00 | New Sept 22 | | GPT-6 Luna | $0.10 | $0.01 | $0.50 | New Sept 22 | | GPT-5.6 Sol (promo) | $4.00 | $0.40 | $20.00 | Promo guaranteed only through Nov 21. List is $5 / $30 | | GPT-5.6 Terra | $2.00 | $0.20 | $12.00 | No GPT-6 successor | | GPT-5.6 Luna (promo) | $0.20 | $0.02 | $1.20 | | USD per million tokens. GPT-6 prices come from OpenAI's model pages for Astra, Sol and Luna. GPT-5.6 prices as reported by Simon Willison and Codersera. Batch and Flex run at 50% of standard on all three GPT-6 models. GPT-6 Sol and Luna both have a 1.05M-token context window and a 128K-token output cap. Both keep reasoning_effort: "none", which Astra dropped. That matters for latency-sensitive calls that don't need to think. Why Terra is dead Put GPT-5.6 Terra next to GPT-6 Sol: | | GPT-5.6 Terra | GPT-6 Sol | |---|---|---| | Input | $2.00 | $2.00 | | Cached input | $0.20 | $0.20 | | Output | $12.00 | $10.00 | | Generation | GPT-5.6 | GPT-6 (newer model) | Same input price, same cache price, cheaper output, newer model. On price alone Terra is strictly dominated: there's no workload where it costs less. Willison's verdict: "any remaining reasons to use Terra just evaporated." Dot chart of output price per million tokens on a log scale, in three columns. GPT-5.6 at current promo prices: Luna $1.20, Terra $12 (hollow and struck through), Sol $20. GPT-6: Luna $0.50, Sol $10, Astra $50. Anthropic: Haiku 4.5 $5, Sonnet 5 $10, Opus 5.5 $20, Fable 5.1 $50. Dashed lines connect GPT-5.6 Luna to GPT-6 Luna, and both GPT-5.6 Terra and Sol to GPT-6 Sol. The chart shows the new structure. OpenAI's ladder now has three rungs with big gaps between them: Luna → Sol is a 20x step on both input and output. Sol → Astra is a 5x step. Luna → Astra is 100x. One family, one API, two orders of magnitude. Anthropic's ladder has four rungs, each 2-2.5x apart: Haiku 4.5, Sonnet 5, Opus 5.5 and Fable 5.1. And one pairing stands out. GPT-6 Sol and Claude Sonnet 5 now have identical list prices: $2 input, $10 output and $0.20 cached input, as of the same week. Price no longer separates the two mid-tier models. Quality on your workload does. As our Fable 5.1 vs GPT-6 Astra comparison showed, when list prices match, the cache columns and the task mix decide the bill. Per token vs per task A 50% cut per token isn't a 50% cut per task. Newer models can use more or fewer tokens for the same job. Artificial Analysis's cost to run its Intelligence Index, as reported by Codersera: | | Previous | GPT-6 | Change | |---|---|---|---| | Sol, cost per Intelligence Index run | $1.99 (GPT-5.6 Sol) | $1.06 | −47% | | Luna, cost per Intelligence Index run | $0.18 (GPT-5.6 Luna) | $0.07 | −61% | | Sol, Intelligence Index | 47 | 48 | +1 | | Luna, Intelligence Index | 37 | 37 | same | So per task, Sol is cheaper by a little less than its price cut, and Luna by a little more. Luna isn't free of trade-offs, though: the same report puts its output at about 51K tokens per run against 41K for GPT-5.6 Luna. That's more tokens, at a price low enough that the total still falls. Token price cuts don't automatically lower cost per task. Here they mostly do, but measure it on your own prompts. The regressions are the other half. By OpenAI's own reported numbers, GPT-6 Sol scores 3.9 points below GPT-5.6 Sol on DeepSWE and 5.2 points below it on OSWorld 2.0, even as factual accuracy and deception rates improve. Half the price for roughly the same model isn't the same thing as half the price for the same model on your hardest agentic tasks. What it does to a monthly bill One workload: 2B input tokens a month, 80% served from cache, plus 150M output tokens. At list prices: Horizontal bar chart of the monthly cost of one workload (2B input tokens, 80% cached, plus 150M output tokens) on seven setups. GPT-6 Astra $13,100. GPT-5.6 Sol at list price after the promo $7,300. GPT-5.6 Sol at the promo price $5,240. GPT-5.6 Terra $2,920. GPT-6 Sol $2,620. A routed mix of 70% Luna, 25% Sol and 5% Astra $1,402. GPT-6 Luna alone $131. | Setup | Monthly cost | |---|---| | GPT-6 Astra | $13,100 | | GPT-5.6 Sol, list price after the promo ends | $7,300 | | GPT-5.6 Sol, promo | $5,240 | | GPT-5.6 Terra | $2,920 | | GPT-6 Sol | $2,620 | | Routed: 70% Luna, 25% Sol, 5% Astra | $1,402 | | GPT-6 Luna | $131 | Three takeaways: Terra → Sol saves 10% ($2,920 → $2,620) and upgrades the model. It's the easiest migration in the table. Staying on GPT-5.6 Sol is the expensive mistake. $5,240 today, and $7,300 if the promo ends after November 21. GPT-6 Sol does the same job for $2,620. The 20x gap between Luna and Sol is where routing pays off. The routed mix costs half of Sol-only and still sends the hardest 5% to Astra. The mix is illustrative. Your split depends on how much of your traffic Luna can actually handle, which is a measurement, not a guess. Migration plan by tier | If you run… | Move to | Watch for | |---|---|---| | GPT-5.6 Terra | GPT-6 Sol | Nothing is cheaper to stay on. Shadow-test quality, then switch | | GPT-5.6 Sol | GPT-6 Sol | DeepSWE and OSWorld regressions. Keep Astra as the escalation target for hard agentic steps | | GPT-5.6 Luna | GPT-6 Luna | Longer outputs. Cap max_output_tokens and measure cost per task, not per token | | Terra as a "safe default" for everything | Luna + Sol + Astra, routed | Needs a routing decision per request | The last row is the structural change. Terra existed so teams could pick one model for everything and not think about it. With the middle rung gone, a single default now means either overpaying (Sol for traffic Luna could handle) or under-serving (Luna for traffic that needs Sol). A three-rung ladder with 20x and 5x gaps is a strong argument for routing. Don't swap models on price alone. Mirror a slice of production traffic to the new model first and compare. We've written up that shadow-testing and canary pattern: import random from openai import OpenAI client = OpenAI() MIGRATION = {"gpt-5.6-terra": "gpt-6-sol", "gpt-5.6-sol": "gpt-6-sol", "gpt-5.6-luna": "gpt-6-luna"} def call(model: str, messages: list, shadow_rate: float = 0.05): primary = client.chat.completions.create(model=model, messages=messages) candidate = MIGRATION.get(model) if candidate and random.random() < shadow_rate: shadow = client.chat.completions.create(model=candidate, messages=messages) log_pair(model, candidate, primary, shadow) # compare quality, tokens and cost offline return primary Log the usage block from both calls, not just the answers. The per-task cost difference, including Luna's longer outputs, is the number that decides the migration. Where Nadir fits Nadir decides, per request, which tier a prompt needs: simple, medium or complex, with a confidence score. You map tiers to the models you run. The GPT-6 ladder maps onto that almost exactly, with Luna, Sol and Astra as the three rungs. When a lineup changes like this one did, you remap tiers to models instead of rewriting every call site that hardcoded gpt-5.6-terra. Hardcoded model names and prices are the trap that turns a price cut into a migration project. Checklist Move off Terra. GPT-6 Sol costs less on every line. Shadow-test, then switch. Don't stay on GPT-5.6 Sol for the promo. It's guaranteed only through November 21, and GPT-6 Sol is already half the promo price. Measure per task, not per token. Especially on Luna, where outputs got longer. Keep an escalation path for hard agentic work. Sol regressed on DeepSWE and OSWorld. Astra is 5x Sol, not 50x, so escalating the hard tail is affordable. Route across the 20x gap. Luna-eligible traffic is where the biggest saving is. Find out how much of yours qualifies. The GPT-6 lineup is cheaper and it's also shaped differently, with fewer rungs and bigger gaps. That rewards teams that decide per request and penalizes teams that pick one default. Start free to put a routing decision in front of your OpenAI traffic, or read the complete guide to cutting LLM API costs. Related reading Fable 5.1 vs GPT-6 Astra: same list price, 57% apart on an agent bill. Shadow testing and canary rollouts for model swaps. Token price cuts don't lower agent cost per task. The 72-hour model deprecation problem. Reasoning effort and thinking budgets across providers.