Two models can share the same context window, tools, and reasoning controls while belonging in different queues. GPT-6 Luna costs one twentieth as much per standard input or output token as GPT-6 Sol, so using Sol for every extraction or classification job is hard to defend.
The reverse shortcut is just as weak. A low token bill can be erased by a failed migration, a brittle tool plan, or an hour of senior repair. Route on accepted work and recovery cost, not on the price row alone.
Build a GPT-6 Sol vs GPT-6 Luna routing benchmark
OpenAI’s GPT-6 Sol documentation and GPT-6 Luna documentation list text and image input, text output, a 1,050,000-token context window, a 922,000-token maximum input, and up to 128,000 output tokens. Both expose reasoning effort from none through max.
Both support the Responses API, Chat Completions, Batch, streaming, structured outputs, function calling, file search, web search, image input, and prompt caching. Chat Completions supports function calling only with reasoning effort set to none, so an agentic evaluation should use the Responses API unless that constraint is intentional.
Price the whole request after the long-context threshold
OpenAI says prompts above 272,000 input tokens use double input and cache rates and one-and-a-half times the output rate for the entire request. A routing rule that looks only at the marginal tail of a long prompt will understate both models.
Batch and Flex processing cost half the Standard rate, while Fast mode costs twice the applicable rate. Regional processing can add a ten percent premium, and EU data residency is available only with Standard processing.
A routing benchmark that survives procurement
- Sample twenty real tasks across focused and complex queues.
- Run both models with the same tools, prompts, limits, and fixtures.
- Grade the observable result before revealing the model.
- Record tokens, latency, retries, tool errors, and repair time.
- Set an escalation threshold from the cost of accepted work.
Run the same sample through both models, keep the rubric hidden until grading, and record accepted output, repair minutes, tokens, latency, and tool failures. Re-run cases with stochastic or tool-dependent outcomes rather than treating one success as a stable rate.

Give Luna the focused queue first
OpenAI describes Luna as its efficient model for focused, high-volume tasks. Start with classification, extraction, deterministic transforms, simple retrieval synthesis, format conversion, and low-risk support work where acceptance checks are cheap and precise.
Do not route by task name alone. A “summary” that must reconcile a million-token evidence set, call tools, and preserve legal qualifiers may be more complex than a short coding change. Promote based on measured failure modes and consequence.
Reserve Sol for complexity that earns the premium
OpenAI describes Sol for complex coding and agentic workflows. Candidate lanes include multi-file changes, long tool chains, ambiguous debugging, cross-system planning, and tasks where a weak intermediate decision compounds through later actions.
Escalation should not mean repeating the same prompt blindly. Pass the original inputs, structured failure evidence, verifier output, and a narrow repair contract so Sol solves the observed problem rather than restarting an opaque attempt.
Separate quality routing from urgency routing
Standard, Batch, Flex, and Fast change the processing contract as well as price. A nightly extraction can use Batch without becoming a Luna-only workload; an urgent complex repair can use Fast without becoming suitable for Luna.
Build two policy axes: model class for capability and processing lane for urgency. This keeps a latency incident from silently changing quality and keeps a cost optimization from violating a deadline.
Track the failure taxonomy
Tag rejected runs as instruction miss, reasoning error, incomplete tool execution, malformed structure, unsupported claim, unsafe action, or environment failure. A model switch cannot repair a missing credential or broken test fixture.
Review the taxonomy each week. Move a task class down to Luna when acceptance remains high and repair stays cheap; move it up to Sol when failures cluster around planning, codebase breadth, or tool coordination.
Set the first policy from cost per accepted result
A routing policy should name the default, escalation signal, retry ceiling, and human-review boundary. Include paired outcomes, cached and uncached input, output, tool charges, rejected runs, and reviewer minutes in the denominator.
OpenAI’s API changelog dates the Sol and Luna release to September 22, 2026. Re-run the sample when a snapshot, prompt, tool set, or processing lane changes instead of treating the first comparison as permanent.
Keep a release evidence record
Save the source versions, selected capability, test fixture, expected result, observed result, failure path, owner, and review date together. Recheck the decision when the platform contract, dependency, device class, model snapshot, or business consequence changes; a green launch artifact is evidence for one bounded state, not a permanent guarantee.
Continue with the AI Tech hub, then use our first related guide and second related guide to connect this decision to the surrounding platform work. The next-action guide carries the resulting evidence into the following release decision.