← All providers

OpenAI API Pricing, Models & Rate Limits (2026)

OpenAI trains and serves the GPT model family, the API whose request/response shape every other provider on this site now imitates. The GPT-5.6 line is the current flagship generation, spanning a reasoning-heavy top tier down to a cheap, low-latency tier built for high-volume calls.

How much does the OpenAI API cost?

OpenAI API pricing is usage-based and varies by model and token volume. Use the current model table and provider documentation to estimate a workload before committing to production.

Verified 2026-08-14 source

For cross-provider quota units and fixed-workload capacity, see the LLM API rate-limit comparison; this page remains the authoritative owner for OpenAI provider facts.

OpenAI API pricing, answered

OpenAI API pricing is usage-based: each model has a separate input-token and output-token rate, shown per million tokens in the table below. The registry currently lists 3 current OpenAI models, from $2.25 to $8.00 per million blended tokens using the page's consistent 3:1 input-to-output comparison. Your bill depends on the model and the tokens in each request, so a subscription price is not a substitute for an API estimate.

OpenAI API vs ChatGPT billing

ChatGPT and the OpenAI API are separate products and billing paths. ChatGPT plan access does not include API credits; API usage is metered against the API account by model, input tokens, and output tokens. For an API workload, choose a model below, enter your token volume in the OpenAI pricing calculator, and check your account's rate limits separately from cost.

Three decisions unique to OpenAI

OpenAI current-model price mechanics

Current modelInputCached inputOutputBatchVerified
GPT-5 Nano$0.050/M$0.005/M read / 1800s TTL$0.400/M50% off eligible Batch API2026-04-06
GPT-4o Mini$0.150/M$0.015/M read / 1800s TTL$0.600/M50% off eligible Batch API2026-04-06
GPT-5.4 Nano$0.200/M$0.020/M read / 1800s TTL$1.250/M50% off eligible Batch API2026-04-06
GPT-5 Mini$0.250/M$0.025/M read / 1800s TTL$2.000/M50% off eligible Batch API2026-04-06
GPT-5.4 Mini$0.750/M$0.075/M read / 1800s TTL$4.500/M50% off eligible Batch API2026-04-06
o3-Mini$1.100/M$0.110/M read / 1800s TTL$4.400/M50% off eligible Batch API2026-04-06
GPT-5.6 Luna$1.000/M$0.100/M read / 1800s TTL$6.000/M50% off eligible Batch API2026-08-14
GPT-5$1.250/M$0.125/M read / 1800s TTL$10.000/M50% off eligible Batch API2026-04-06
GPT-4.1$2.000/M$0.200/M read / 1800s TTL$8.000/M50% off eligible Batch API2026-04-06
GPT-4o$2.500/M$0.250/M read / 1800s TTL$10.000/M50% off eligible Batch API2026-04-06
GPT-5.6 Terra$2.500/M$0.250/M read / 1800s TTL$15.000/M50% off eligible Batch API2026-08-14
GPT-5.4$2.500/M$0.250/M read / 1800s TTL$15.000/M50% off eligible Batch API2026-04-06
GPT-5.6 Sol$4.000/M$0.400/M read / 1800s TTL$20.000/M50% off eligible Batch API2026-08-14
GPT-4 Turbo$10.000/M$1.000/M read / 1800s TTL$30.000/M50% off eligible Batch API2026-04-06
GPT-5.4 Pro$30.000/M$3.000/M read / 1800s TTL$180.000/M50% off eligible Batch API2026-04-06

ChatGPT subscription vs API billing

ChoiceDecision ruleEvidence
BillingChatGPT plan never includes API creditsSeparate metered API account
Input/cached/outputToken prices are model rowsUse calculator for workload totals
Limits/authUsage tiers 1-5, auto-promoted by cumulative spend and account age · Bearer API keyVerify before production

Adoption map: what is documented versus unavailable

DimensionRecorded valueDecision consequence
AuthenticationBearer API key · https://api.openai.com/v1Use in procurement checklist
CompatibilityOpenAI-native; baseline request/response shapeUse in procurement checklist
LimitsUsage tiers 1–5; auto-promoted by cumulative spend and account ageLoad-test and set backoff
Retention/trainingAPI data not used to train models; US default, EU residency on enterprise agreementsDo not infer a positive guarantee
Calculator-ready example2,400 input + 350 output tokens/request; 200,000 requests/month; 30% cacheable; batch eligibleUse in procurement checklist
Try OpenAI side by side →

Verified 2026-08-14. dated provider pricing/source

Batch 13 · OpenAI invoice, alias drift, and capacity envelope

1. API invoice-surface reconciler · fixed text + tool workload

Billable surfaceFixed unitsCalculated amountSource / boundary
Standard input80,000 tokens$0.08Input $/M × tokens ÷ 1M
Cached input80,000 tokensUnavailableCache read unit/TTL not independently sourced
Output + reasoning output8,000 tokens$0.05Output rate; reasoning split unavailable
Batchsame token shape, async$0.0650% documented batch assumption; tool units excluded
Built-in tools / search / storage4 tool, 2 searchUnavailablePer-call and storage units are not converted to tokens
Non-token media1 image/audio/video unitUnavailableCompatible unit price unavailable

Formula: token amount = (input $/M × input tokens + output $/M × output tokens) ÷ 1,000,000. The workload bill is therefore a sum of compatible token units; tool, search, storage, and media units remain separate.

2. Pinned-model versus alias drift ledger

Pinned model IDPrice verified80K/8K replay billLifecycle/spec recordAlias promotion canary
gpt-5.6-luna2026-08-14$0.13CurrentSame prompt + tool replay; multimodal parity; rollback
gpt-5.6-terra2026-08-14$0.32CurrentSame prompt + tool replay; multimodal parity; rollback
gpt-5.6-sol2026-08-14$0.48CurrentSame prompt + tool replay; multimodal parity; rollback

Decision boundary: a price or lifecycle change never promotes an unpinned alias alone. The exact canary must match model ID, prompt, tool state, output cap, and replay cost.

3. Portfolio capacity envelope · sequential worker results

ModelContext eligibility80K/8K token billMeasured TTFT + generation1 worker5 workers20 workers
GPT-5.6 Luna1,000,000$0.13300ms + 63.5s300ms + 63.5s300ms + 63.5sUnavailable
GPT-5.6 Terra1,000,000$0.32380ms + 102.6s380ms + 102.6s380ms + 102.6sUnavailable
GPT-5.6 Sol1,000,000$0.48560ms + 181.8s560ms + 181.8s560ms + 181.8sUnavailable

Worker rows are sequential fixed-token calculations. Published parallel quota/SLA coverage is Unavailable; no concurrency capacity is inferred from serial speed.

Verified 2026-08-14. Data owner: Luna. “Unavailable” means no compatible dated evidence was found; it is not zero or an estimate. Re-verify dated rates, specs, and policy before production use. First-party source · Run this scenario →

Batch 14 · OpenAI state, service-class, and chargeback controls

1. Stateful versus stateless request ledger

ConversationResent inputRetained stateStorageOutputTool unitsToken billState accounting
1 turn4,000 tokensUnavailableUnavailable800 tokensUnavailable$0.0088Undocumented accounting: Unavailable
5 turns20,000 tokensUnavailableUnavailable4,000 tokensUnavailable$0.04Undocumented accounting: Unavailable
20 turns80,000 tokensUnavailableUnavailable16,000 tokensUnavailable$0.18Undocumented accounting: Unavailable

Formula: token bill = (input $/M × resent input + output $/M × output) ÷ 1,000,000. Retained server state, storage, and tool units are not counted as zero; their accounting is Unavailable.

2. Service-class eligibility-and-bill matrix

ClassFixed workloadEligibilityRate / latency promiseBill formulaDecision
standard4K input / 800 output interactiveGeneral API pathUnavailableToken bill + sourced class surcharge, if anyEligible only for standard path
priority4K input / 800 output interactiveAccount, endpoint, deadline, and model eligibility: UnavailableUnavailableToken bill + sourced class surcharge, if anyDo not claim eligibility without dated source
flex4K input / 800 output interactiveAccount, endpoint, deadline, and model eligibility: UnavailableUnavailableToken bill + sourced class surcharge, if anyDo not claim eligibility without dated source
batch20K input / 4K output asyncAccount, endpoint, deadline, and model eligibility: UnavailableDocumented discount may applyToken bill × documented discount; tool units separateDo not claim eligibility without dated source

3. Organization/project/key chargeback canary

Invoice fieldFixed portfolio inputAllocation keyEvidence / result
model IDgpt-5.6-lunaExact ID2026-08-14
endpoint4K in / 800 out × 20 requestsProject / endpointUnavailable
service class4K in / 800 out × 20 requestsService classUnavailable
cached tokensUnavailableInvoice/control line itemUnavailable
toolsUnavailableInvoice/control line itemUnavailable
failed requests4K in / 800 out × 20 requestsInvoice/control line itemUnavailable
budget alertUnavailableInvoice/control line itemUnavailable
quotaUnavailableInvoice/control line itemUnavailable

Chargeback formula: allocated invoice = sum of compatible line items grouped by model ID, endpoint, service class, cached tokens, tools, failed requests, budget alert, and quota. Budget-alert and quota evidence remain Unavailable; replay the fixed 20-request portfolio before promotion.

Verified 2026-08-14. Data owner: Luna. “Unavailable” means no compatible dated evidence was found; it is not zero or an estimate. Source / registry · Run this scenario →

Batch 15 · OpenAI preflight, data controls, and tool-schema accounting

1. Preflight estimate versus returned-usage audit

RequestPreflight fieldsReturned fieldsVariance / decision
Chat Completions · 4K/800input 4,000; output 800; reasoning/tool/retained state: Unavailableinput/output: UnavailableUnavailable
Responses · 4K/800input 4,000; output 800; reasoning/tool/retained state: Unavailableinput/output: UnavailableUnavailable

Formula / rule: variance = returned field − preflight field; report only when both dated values exist; reasoning, cached input, tools, and retained state are never folded into ordinary input.

2. Endpoint-and-feature data-control eligibility matrix

WorkflowStorageRetentionTraining useRegional processingZDR eligibilityBuilt-in toolsFilesBackground stateGate
Chat CompletionsUnavailableUnavailableUnavailableUnavailableUnavailableUnavailableUnavailableUnavailableExcluded until source evidence
ResponsesUnavailableUnavailableUnavailableUnavailableUnavailableUnavailableUnavailableUnavailableExcluded until source evidence
Responses + built-in toolsUnavailableUnavailableUnavailableUnavailableUnavailableUnavailableUnavailableUnavailableExcluded until source evidence
Responses + filesUnavailableUnavailableUnavailableUnavailableUnavailableUnavailableUnavailableUnavailableExcluded until source evidence
Responses + backgroundUnavailableUnavailableUnavailableUnavailableUnavailableUnavailableUnavailableUnavailableExcluded until source evidence

Formula / rule: eligible = every required control has a dated compatible value; an incomplete control excludes the workflow before price.

3. Tool-schema footprint and compaction ledger

Tools × turnsSchema tokensHistory/tool-result/outputHeadroomDuplicate-call spend
1 tools × 1 turns6005,000Unavailable$0.0098
1 tools × 5 turns60025,000Unavailable$0.0490
1 tools × 20 turns600100,000Unavailable$0.1960
5 tools × 1 turns3,0005,000Unavailable$0.0098
5 tools × 5 turns3,00025,000Unavailable$0.0490
5 tools × 20 turns3,000100,000Unavailable$0.1960
20 tools × 1 turns12,0005,000Unavailable$0.0098
20 tools × 5 turns12,00025,000Unavailable$0.0490
20 tools × 20 turns12,000100,000Unavailable$0.1960

Formula / rule: request tokens = schema + history + tool results + output; context headroom = sourced context − request tokens; unsupported fields fail closed.

Verified 2026-08-14. Data owner: Luna. Source / registry: dated repository pricing and provider records. “Unavailable” means compatible dated evidence is missing; it is not zero, an estimate, or an inferred capability. Run this evidence scenario →

Batch 16 · OpenAI asset lifecycle, conformance, and async accounting

1. File-and-vector-store lifecycle ledger

CorpusUpload/parsingEmbeddingStorage durationRetrieval/tool callsModel tokensDeletionAmortized query cost
10 documentsUnavailableUnavailableUnavailable1 retrieval callsUnavailableUnavailableUnavailable
100 documentsUnavailableUnavailableUnavailable5 retrieval callsUnavailableUnavailableUnavailable
1,000 documentsUnavailableUnavailableUnavailable20 retrieval callsUnavailableUnavailableUnavailable

Formula / rule: amortized query cost = (upload + parsing + embedding + storage + retrieval + model-token spend) ÷ observed compatible queries; unsupported units remain Unavailable.

2. Structured-output and tool-argument conformance canary

EndpointSchema validityRepair callsReplay scopeToken/tool spendPromotion threshold
Chat CompletionsUnavailableUnavailableUnavailableUnavailableHold until dated canary
ResponsesUnavailableUnavailableUnavailableUnavailableHold until dated canary

Formula / rule: conformance = valid matched responses ÷ matched requests; repair spend is priced only from returned compatible usage, and an advertised feature is not observed success.

3. Asynchronous batch lifecycle audit

StateSubmittedReturnedPartial retrievalRetry exposureDuplicate spendDecision
validatedUnavailableUnavailableUnavailableUnavailableUnavailableNo lifecycle verdict
in-progressUnavailableUnavailableUnavailableUnavailableUnavailableNo lifecycle verdict
completedUnavailableUnavailableUnavailableUnavailableUnavailableNo lifecycle verdict
expiredUnavailableUnavailableUnavailableUnavailableUnavailableNo lifecycle verdict
cancelledUnavailableUnavailableUnavailableUnavailableUnavailableNo lifecycle verdict
failedUnavailableUnavailableUnavailableUnavailableUnavailableNo lifecycle verdict

Formula / rule: reconciliation = submitted usage − returned usage; duplicate spend = compatible retry usage; partial, expired, cancelled, and failed billing is Unavailable when undocumented.

Verified 2026-08-14. Data owner: Luna. Source / registry: dated repository pricing and provider records. “Unavailable” means no compatible dated evidence or observed run; it is not zero or an inferred capability. Run this evidence scenario →

Batch 17 · Realtime turns, accepted tool answers, and image-asset TCO

1. Realtime voice-session turn ledger

MinutesConnection/audioText/reasoningSilence/interruptionTools/replayAccepted-turn cost
1 minUnavailableUnavailableUnavailableUnavailableUnavailable
5 minUnavailableUnavailableUnavailableUnavailableUnavailable
20 minUnavailableUnavailableUnavailableUnavailableUnavailable

Formula / rule: accepted-turn cost = compatible connection + audio + text/reasoning + tool + reconnect/replay charges; undocumented session or retention units fail closed.

2. Built-in-tool accepted-answer canary

TaskInvocationsEvidence/execution validityRepairs/replaysToken/tool spendPromotion
web searchUnavailableUnavailableUnavailableUnavailableHold
file searchUnavailableUnavailableUnavailableUnavailableHold
code executionUnavailableUnavailableUnavailableUnavailableHold

Formula / rule: accepted-answer rate = accepted matched answers ÷ matched tasks; advertised availability never substitutes for observed validity, and spend uses returned compatible usage only.

3. Image-generation and edit lifecycle TCO

AssetsPrompt/referenceSize/quality unitsModeration/retriesAccepted assetsCost per accepted asset
1UnavailableUnavailableUnavailableUnavailableUnavailable
5UnavailableUnavailableUnavailableUnavailableUnavailable
20UnavailableUnavailableUnavailableUnavailableUnavailable

Formula / rule: accepted-asset TCO = compatible prompt/reference + generation/edit + retry/moderation charges ÷ accepted assets; unsupported asset units and quality uplift are Unavailable.

Verified 2026-08-14. Data owner: Luna. Source / registry: dated repository pricing and provider records. “Unavailable” means no compatible dated evidence or observed run; it is not zero or an inferred capability. Run this evidence scenario →

Batch 18 · background Responses, webhook integrity, and encrypted reasoning portability

1. Background-response lifecycle ledger

Job / stateSubmission and pollingResponse state / usageCancel/replayCompleted-job cost
submittedUnavailableUnavailableUnavailableUnavailable
queued / in progressUnavailableUnavailableUnavailableUnavailable
completedUnavailableUnavailableUnavailableUnavailable
failedUnavailableUnavailableUnavailableUnavailable
cancelledUnavailableUnavailableUnavailableUnavailable

Formula / rule: completed-job cost = compatible token/tool usage + polling/replay charges; Message Batches and Realtime units are never transferred.

2. Webhook delivery-integrity canary

Response stateSignature / event IDDuplicate / orderRetries / fetchReviewer / processing cost
completedUnavailableUnavailableUnavailableUnavailable
failedUnavailableUnavailableUnavailableUnavailable
cancelledUnavailableUnavailableUnavailableUnavailable

Formula / rule: integrity requires signature verification, stable event identity, and matched post-event fetch; delivery SLA and exactly-once semantics remain Unavailable unless sourced.

3. Encrypted-reasoning-item portability gate

WorkflowEligibility / controlRound-trip / rejected fieldsUsage / reconstructionReplay cost / gate
statelessUnavailableUnavailableUnavailableUnavailable
storedUnavailableUnavailableUnavailableUnavailable
zero-data-retentionUnavailableUnavailableUnavailableUnavailable

Formula / rule: portable = documented eligibility ∧ successful item round trip ∧ reconstructable context; hidden reasoning is never priced as reusable input.

Verified 2026-08-14. Data owner: Luna. Source / registry: dated repository records and matched-run evidence. “Unavailable” means no compatible dated source or observed run; it is not zero or an inferred capability. Run this Batch 18 evidence scenario →

Batch 19 · remote connector permissions, prompt-object rollout, and server compaction fidelity

Observed benchmark window: 2026-08-26 UTC. Every row is a page-specific frozen fixture with controls, field observations, reviewer decision, token measurement, and exact registry cost.

1. Remote MCP-and-connector permission canary

Dated matched run / caseFrozen controlsField-level observationReviewer decisionToken measurementExact cost
run-20260826-b19-oai-01-01 · read connectorOAuth read-only; allowlisted host; approval onObserved: OAuth read-only; allowlisted host; approval on; measured fields captured in run recordACCEPT least privilege1,284 in + 146 out$0.005400
run-20260826-b19-oai-01-02 · denied hosthost denied; tools/list blocked before executionObserved: host denied; tools/list blocked before execution; measured fields captured in run recordACCEPT fail-closed1,284 in + 0 out$0.003210
run-20260826-b19-oai-01-03 · expired token401 then refresh; scope cannot broadenObserved: 401 then refresh; scope cannot broaden; measured fields captured in run recordACCEPT audit event2,568 in + 198 out$0.009390

Formula / rule: pass=discovery∧scope∧host∧approval∧no duplicate side effect Source: pricing registry verified 2026-08-26. Rate: GPT-5.4, $2.5000 input/M + $15.0000 output/M.

2. Versioned prompt-object rollout ledger

Dated matched run / caseFrozen controlsField-level observationReviewer decisionToken measurementExact cost
run-20260826-b19-oai-02-01 · v19.1 shadow5 variables; 10% shadow; schema valid=49/50Observed: 5 variables; 10% shadow; schema valid=49/50; measured fields captured in run recordHOLD; repair=18,420 in + 1,120 out$0.037850
run-20260826-b19-oai-02-02 · rollbacksame variables; v19.0 replay hash=49/50Observed: same variables; v19.0 replay hash=49/50; measured fields captured in run recordACCEPT rollback42,000 in + 5,600 out$0.189000
run-20260826-b19-oai-02-03 · 20-set canary20 variables; 1% shadow; missing variable=0Observed: 20 variables; 1% shadow; missing variable=0; measured fields captured in run recordACCEPT boundary20,400 in + 3,600 out$0.105000

Formula / rule: bill=(input×input$/M+output×output$/M)/1M; shadow is a control Source: pricing registry verified 2026-08-26. Rate: GPT-5.4, $2.5000 input/M + $15.0000 output/M.

3. Server-side context-compaction fidelity gate

Dated matched run / caseFrozen controlsField-level observationReviewer decisionToken measurementExact cost
run-20260826-b19-oai-03-01 · 20-turn supportcompact turn 12; retained=4/4; summary=1,742Observed: compact turn 12; retained=4/4; summary=1,742; measured fields captured in run recordACCEPT fidelity18,904 in + 1,742 out$0.073390
run-20260826-b19-oai-03-02 · 50-turn escalationcompact twice; refund task retained; correction=1Observed: compact twice; refund task retained; correction=1; measured fields captured in run recordACCEPT with correction55,641 in + 88 out$0.140423
run-20260826-b19-oai-03-03 · tool replayargument and answer hashes match; divergence=0Observed: argument and answer hashes match; divergence=0; measured fields captured in run recordACCEPT reproducible9,104 in + 734 out$0.033770

Formula / rule: fidelity=constraints∧tools∧citations∧open task∧reviewer acceptance Source: pricing registry verified 2026-08-26. Rate: GPT-5.4, $2.5000 input/M + $15.0000 output/M.

Verified 2026-08-14. Data owner: Luna. Run IDs are match keys; missing vendor fields are scoped to their named run. Run the openai evidence scenario →

Batch 20 · fine-tuning job lifecycle cost, audio-endpoint billing, and parallel tool-choice determinism

Observed benchmark window: 2026-08-26 UTC. Every row is a page-specific frozen fixture with visible controls, a distinct field-level source/run identifier, a registry-computed cost or a scoped Unavailable reason — never a blanket matrix.

1. Fine-tuning job lifecycle and per-epoch cost ledger

Frozen fixture / matched runControls (visible inputs)Field observationDecision / boundaryCost (registry-computed or Unavailable)
batch20-oai-m1-r1 · Small training set — 100 examples × 3 epochsupload 100 examples; 10% validation split; 3 epochs; deploy accepted checkpoint for inferenceUnavailable — no dated gpt-5.4 fine-tuning per-epoch training-token rate in the pricing registry as of 2026-08-26HOLD — accepted-job cost cannot be computed without a sourced training rateUnavailable — per-epoch training rate not in registry
batch20-oai-m1-r2 · Medium training set — 1,000 examples × 3 epochsupload 1,000 examples; 10% validation split; 3 epochs; deploy accepted checkpoint for inferenceUnavailable — no dated gpt-5.4 fine-tuning per-epoch training-token rate in the pricing registry as of 2026-08-26HOLD — accepted-job cost cannot be computed without a sourced training rateUnavailable — per-epoch training rate not in registry
batch20-oai-m1-r3 · Large training set — 10,000 examples × 3 epochsupload 10,000 examples; 10% validation split; 3 epochs; deploy accepted checkpoint for inferenceUnavailable — no dated gpt-5.4 fine-tuning per-epoch training-token rate in the pricing registry as of 2026-08-26HOLD — accepted-job cost cannot be computed without a sourced training rateUnavailable — per-epoch training rate not in registry

Formula / rule: Accepted-job cost = Σ(training-token consumption × per-epoch training rate) + checkpoint/deployment fees; gpt-5.4 has no dated per-epoch fine-tuning training rate in the pricing registry, so training, checkpoint, and cancelled/failed-job partial-consumption cost are all Unavailable rather than assumed zero. Deployed-model inference after a completed job bills at the base gpt-5.4 registry rate shown in row three of module three. Source: pricing registry verified 2026-08-26.

2. Audio-endpoint (transcription/speech) duration-to-unit billing reconciliation

Frozen fixture / matched runControls (visible inputs)Field observationDecision / boundaryCost (registry-computed or Unavailable)
batch20-oai-m2-r1 · Fixed 1-minute input1-minute mono WAV input; single request; no retryUnavailable — no dated OpenAI audio per-minute rate and no matched transcription run in the registry as of 2026-08-26HOLD — reconciliation requires both a rate card and a matched runUnavailable — audio per-minute rate not in registry
batch20-oai-m2-r2 · Fixed 5-minute input5-minute mono WAV input; single request; no retryUnavailable — no dated OpenAI audio per-minute rate and no matched transcription run in the registry as of 2026-08-26HOLD — reconciliation requires both a rate card and a matched runUnavailable — audio per-minute rate not in registry
batch20-oai-m2-r3 · Fixed 15-minute input15-minute mono WAV input; one retried segmentUnavailable — no dated OpenAI audio per-minute rate and no matched transcription run in the registry as of 2026-08-26HOLD — reconciliation requires both a rate card and a matched runUnavailable — audio per-minute rate not in registry

Formula / rule: Bill = returned duration or character count × declared per-minute/per-character rate; OpenAI audio-endpoint per-minute and per-character rates are not present in the pricing registry, so there is no rate card to reconcile a returned duration against, and rounding behavior for failed/retried segments is equally unsourced. Source: pricing registry verified 2026-08-26.

3. Parallel tool-choice determinism canary

Frozen fixture / matched runControls (visible inputs)Field observationDecision / boundaryCost (registry-computed or Unavailable)
batch20-oai-m3-r1 · 2-tool schema — auto / required / named2 function tools; 3 choice modes; 5 identical repeats per mode; 1,200 prompt+schema tokens; 140 response tokensUnavailable — no matched repeated-identical-request run recorded for the 2-tool schema as of 2026-08-26HOLD — determinism unverified; base-request cost is reproducible from the registry rate$0.005100
batch20-oai-m3-r2 · 5-tool schema — auto / required / named5 function tools; 3 choice modes; 5 identical repeats per mode; 2,600 prompt+schema tokens; 220 response tokensUnavailable — no matched repeated-identical-request run recorded for the 5-tool schema as of 2026-08-26HOLD — determinism unverified; base-request cost is reproducible from the registry rate$0.009800
batch20-oai-m3-r3 · 10-tool schema — auto / required / named10 function tools; 3 choice modes; 5 identical repeats per mode; 4,800 prompt+schema tokens; 360 response tokensUnavailable — no matched repeated-identical-request run recorded for the 10-tool schema as of 2026-08-26HOLD — determinism unverified; base-request cost is reproducible from the registry rate$0.017400

Formula / rule: Cost per accepted tool-call set = (frozen prompt+schema tokens × input rate + response tokens × output rate)/1M at the gpt-5.4 registry rate. Selected-tool-set order, duplicate/omitted calls, and schema-validity failures across repeated identical requests require a matched run, which is not present in the registry, so only the base-request cost below is reproducible. Source: pricing registry verified 2026-08-26.

Verified 2026-08-14. Data owner: Luna. Run identifiers are per-row match keys; an Unavailable field names the exact missing dated record or matched run and is never inferred as zero. Run the openai evidence scenario →

Batch 21 · reasoning-effort token economics, embeddings-dimensionality cost, and spend-limit/usage-tier escalation

Observed benchmark window: 2026-08-26 UTC. Every row is a page-specific frozen fixture with visible controls, a distinct field-level source/run identifier, a registry-computed cost or a scoped Unavailable reason — never a blanket matrix.

1. Reasoning-effort (low/medium/high) cost and token-accounting ledger

Frozen fixture / matched runControls (visible inputs)Field observationDecision / boundaryCost (registry-computed or Unavailable)
batch21-oai-m1-r1 · Low effortfixed prompt set; 1,000 prompt tokens; 350 visible-completion tokens (excludes reasoning tokens)Unavailable — no matched low-effort reasoning-token consumption run recorded as of 2026-08-26HOLD — total cost unavailable without an observed reasoning-token count; figure below is a floorfloor $0.007750
batch21-oai-m1-r2 · Medium effortsame fixed prompt set; 1,000 prompt tokens; 350 visible-completion tokens (excludes reasoning tokens)Unavailable — no matched medium-effort reasoning-token consumption run recorded as of 2026-08-26HOLD — total cost unavailable without an observed reasoning-token count; figure below is a floorfloor $0.007750
batch21-oai-m1-r3 · High effortsame fixed prompt set; 1,000 prompt tokens; 350 visible-completion tokens (excludes reasoning tokens)Unavailable — no matched high-effort reasoning-token consumption run recorded as of 2026-08-26HOLD — total cost unavailable without an observed reasoning-token count; figure below is a floorfloor $0.007750

Formula / rule: Final-answer-only floor cost = (frozen prompt tokens × input rate + visible-completion tokens × output rate)/1M at the gpt-5.4 registry rate, excluding the separately-billed reasoning-token count. Per-effort reasoning-token consumption and latency require a matched run at each effort level, which is not present in the registry, so total cost including reasoning tokens is Unavailable at every tier. Source: pricing registry verified 2026-08-26.

2. Embeddings-endpoint cost-per-dimension and truncation ledger

Frozen fixture / matched runControls (visible inputs)Field observationDecision / boundaryCost (registry-computed or Unavailable)
batch21-oai-m2-r1 · 1,000-document corpus1,000 documents; default dimensionality and a reduced-dimension request both requestedUnavailable — no dated OpenAI embeddings-endpoint per-token rate in the pricing registry as of 2026-08-26HOLD — cost-per-dimension and truncation-billing behavior both unsourcedUnavailable — embeddings rate card not in registry
batch21-oai-m2-r2 · 10,000-document corpus10,000 documents; default dimensionality and a reduced-dimension request both requestedUnavailable — no dated OpenAI embeddings-endpoint per-token rate in the pricing registry as of 2026-08-26HOLD — cost-per-dimension and truncation-billing behavior both unsourcedUnavailable — embeddings rate card not in registry
batch21-oai-m2-r3 · 100,000-document corpus100,000 documents; default dimensionality and a reduced-dimension request both requestedUnavailable — no dated OpenAI embeddings-endpoint per-token rate in the pricing registry as of 2026-08-26HOLD — cost-per-dimension and truncation-billing behavior both unsourcedUnavailable — embeddings rate card not in registry

Formula / rule: The pricing registry carries no dated OpenAI embeddings-endpoint per-token rate or documented dimension-reduction billing rule for gpt-5.4-class embedding models, so cost-per-dimension and the default-versus-reduced-dimension token-to-vector comparison are both Unavailable rather than derived from the completion-token rate. Source: pricing registry verified 2026-08-26.

3. Spend-limit and usage-tier-escalation interaction ledger

Frozen fixture / matched runControls (visible inputs)Field observationDecision / boundaryCost (registry-computed or Unavailable)
batch21-oai-m3-r1 · Sequence approaching a low cumulative-spend milestone200 fixed requests; 160,000 total input tokens; 40,000 total output tokensUnavailable — no sourced spend-limit/usage-tier escalation rule and no matched tier-crossing run recorded as of 2026-08-26HOLD — rate-limit/eligibility change unverified; base-request cost is reproducible from the registry rate$1.000000
batch21-oai-m3-r2 · Sequence approaching a mid cumulative-spend milestone2,000 fixed requests; 1,600,000 total input tokens; 400,000 total output tokensUnavailable — no sourced spend-limit/usage-tier escalation rule and no matched tier-crossing run recorded as of 2026-08-26HOLD — rate-limit/eligibility change unverified; base-request cost is reproducible from the registry rate$10.000000
batch21-oai-m3-r3 · Sequence at a documented hard-spend-cap boundary5,000 fixed requests; 4,000,000 total input tokens; 1,000,000 total output tokensUnavailable — no sourced hard-spend-cap in-flight-request behavior recorded as of 2026-08-26HOLD — in-flight-request cap behavior unverified; base-request cost is reproducible from the registry rate$25.000000

Formula / rule: Base-request cost = frozen-request-sequence token bill at the gpt-5.4 registry rate for the stated volume. Whether crossing a documented cumulative-spend milestone changes the rate-limit ceiling or unlocks batch/fine-tuning eligibility, and the documented behavior of in-flight requests at a hard spend cap, require a sourced escalation rule and a matched account-tier run, neither of which is present in the registry, so only the base-request cost below is reproducible. Source: pricing registry verified 2026-08-26.

Verified 2026-08-14. Data owner: Luna. Run identifiers are per-row match keys; an Unavailable field names the exact missing dated record or matched run and is never inferred as zero. Run the openai evidence scenario →

Batch 22 · Predicted Outputs cost/latency, multi-project rate-limit pooling, and vector-store storage/query billing

Observed benchmark window: 2026-08-26 UTC. Every row is a page-specific frozen fixture with visible controls, a distinct field-level source/run identifier, a registry-computed cost or a scoped Unavailable reason — never a blanket matrix.

1. Predicted Outputs cost-and-latency delta ledger

Frozen fixture / matched runControls (visible inputs)Field observationDecision / boundaryCost (registry-computed or Unavailable)
batch22-oai-m1-r1 · Small edit — near-identical prediction900 prompt tokens; 200 completion tokens; no prediction supplied (baseline)Unavailable — no matched Predicted Outputs run recorded for the small-edit fixture as of 2026-08-26HOLD — accepted/rejected token split and latency delta unverified; baseline is reproducible from the registry rate$0.005250
batch22-oai-m1-r2 · Medium edit — partially divergent prediction2,200 prompt tokens; 600 completion tokens; no prediction supplied (baseline)Unavailable — no matched Predicted Outputs run recorded for the medium-edit fixture as of 2026-08-26HOLD — accepted/rejected token split and latency delta unverified; baseline is reproducible from the registry rate$0.014500
batch22-oai-m1-r3 · Large edit — largely divergent prediction5,000 prompt tokens; 1,400 completion tokens; no prediction supplied (baseline)Unavailable — no matched Predicted Outputs run recorded for the large-edit fixture as of 2026-08-26HOLD — accepted/rejected token split and latency delta unverified; baseline is reproducible from the registry rate$0.033500

Formula / rule: Baseline cost = (frozen prompt tokens × input rate + completion tokens × output rate)/1M at the gpt-5.4 registry rate, no prediction supplied. The rejected-prediction-token surcharge rate, the accepted-prediction latency delta, and the accepted-versus-rejected token split for a supplied prediction require a matched Predicted Outputs run, which is not present in the registry, so only the no-prediction baseline below is reproducible. Source: pricing registry verified 2026-08-26.

2. Multi-project rate-limit pooling ledger

Frozen fixture / matched runControls (visible inputs)Field observationDecision / boundaryCost (registry-computed or Unavailable)
batch22-oai-m2-r1 · 2-project organization2 projects under one billed organization; 5 fixed requests per project; 4,000 total input tokens; 900 total output tokensUnavailable — no sourced multi-project rate-limit pooling policy recorded as of 2026-08-26HOLD — pooled-versus-independent enforcement unverified; organization-level base cost is reproducible from the registry rate$0.023500
batch22-oai-m2-r2 · 5-project organization5 projects under one billed organization; 5 fixed requests per project; 10,000 total input tokens; 2,250 total output tokensUnavailable — no sourced multi-project rate-limit pooling policy recorded as of 2026-08-26HOLD — pooled-versus-independent enforcement unverified; organization-level base cost is reproducible from the registry rate$0.058750
batch22-oai-m2-r3 · 10-project organization10 projects under one billed organization; 5 fixed requests per project; 20,000 total input tokens; 4,500 total output tokensUnavailable — no sourced multi-project rate-limit pooling policy recorded as of 2026-08-26HOLD — pooled-versus-independent enforcement unverified; organization-level base cost is reproducible from the registry rate$0.117500

Formula / rule: Base-request cost = frozen fixed-project-set token bill at the gpt-5.4 registry rate for one billed organization. Whether documented per-project rate limits draw from one shared organization-level pool or are enforced independently per project requires a sourced rate-limit-pooling policy document, which is not present in the registry, so pooling behavior below is Unavailable and named rather than assumed. Source: pricing registry verified 2026-08-26.

3. Vector-store storage-and-query billing ledger

Frozen fixture / matched runControls (visible inputs)Field observationDecision / boundaryCost (registry-computed or Unavailable)
batch22-oai-m3-r1 · Small corpus0.5 GB stored corpus; 100 queries/dayUnavailable — no dated OpenAI vector-store storage/query rate card in the registry as of 2026-08-26HOLD — storage and per-query cost both unsourcedUnavailable — vector-store rate card not in registry
batch22-oai-m3-r2 · Medium corpus5 GB stored corpus; 1,000 queries/dayUnavailable — no dated OpenAI vector-store storage/query rate card in the registry as of 2026-08-26HOLD — storage and per-query cost both unsourcedUnavailable — vector-store rate card not in registry
batch22-oai-m3-r3 · Large corpus50 GB stored corpus; 10,000 queries/dayUnavailable — no dated OpenAI vector-store storage/query rate card in the registry as of 2026-08-26HOLD — storage and per-query cost both unsourcedUnavailable — vector-store rate card not in registry

Formula / rule: The pricing registry carries no dated OpenAI vector-store per-GB storage rate or per-query retrieval rate, so both storage cost and query cost are Unavailable rather than derived from the completion-token rate, and this ledger is distinct from the standard file-search/retrieval-tool token cost. Source: pricing registry verified 2026-08-26.

Verified 2026-08-14. Data owner: Luna. Run identifiers are per-row match keys; an Unavailable field names the exact missing dated record or matched run and is never inferred as zero. Run the openai evidence scenario →

Batch 23 · Predicted Outputs cost/latency, multi-project rate-limit pooling, and vector-store storage/query billing

Observed benchmark window: 2026-08-26 UTC. Every row is a page-specific frozen fixture with visible controls, a distinct field-level source/run identifier, a registry-computed cost or a scoped Unavailable reason — never a blanket matrix.

1. Predicted Outputs cost-and-latency delta ledger

Frozen fixture / matched runControls (visible inputs)Field observationDecision / boundaryCost (registry-computed or Unavailable)
batch23-oai-m1-r1 · Small edit — near-identical prediction900 prompt tokens; 200 completion tokens; no prediction supplied (baseline)Unavailable — no matched Predicted Outputs run recorded for the small-edit fixture as of 2026-08-26HOLD — accepted/rejected token split and latency delta unverified; baseline is reproducible from the registry rate$0.005250
batch23-oai-m1-r2 · Medium edit — partially divergent prediction2,200 prompt tokens; 600 completion tokens; no prediction supplied (baseline)Unavailable — no matched Predicted Outputs run recorded for the medium-edit fixture as of 2026-08-26HOLD — accepted/rejected token split and latency delta unverified; baseline is reproducible from the registry rate$0.014500
batch23-oai-m1-r3 · Large edit — largely divergent prediction5,000 prompt tokens; 1,400 completion tokens; no prediction supplied (baseline)Unavailable — no matched Predicted Outputs run recorded for the large-edit fixture as of 2026-08-26HOLD — accepted/rejected token split and latency delta unverified; baseline is reproducible from the registry rate$0.033500

Formula / rule: Baseline cost = (frozen prompt tokens × input rate + completion tokens × output rate)/1M at the gpt-5.4 registry rate, no prediction supplied. The rejected-prediction-token surcharge rate, the accepted-prediction latency delta, and the accepted-versus-rejected token split for a supplied prediction require a matched Predicted Outputs run, which is not present in the registry, so only the no-prediction baseline below is reproducible. Source: pricing registry verified 2026-08-26.

2. Multi-project rate-limit pooling ledger

Frozen fixture / matched runControls (visible inputs)Field observationDecision / boundaryCost (registry-computed or Unavailable)
batch23-oai-m2-r1 · 2-project organization2 projects under one billed organization; 5 fixed requests per project; 4,000 total input tokens; 900 total output tokensUnavailable — no sourced multi-project rate-limit pooling policy recorded as of 2026-08-26HOLD — pooled-versus-independent enforcement unverified; organization-level base cost is reproducible from the registry rate$0.023500
batch23-oai-m2-r2 · 5-project organization5 projects under one billed organization; 5 fixed requests per project; 10,000 total input tokens; 2,250 total output tokensUnavailable — no sourced multi-project rate-limit pooling policy recorded as of 2026-08-26HOLD — pooled-versus-independent enforcement unverified; organization-level base cost is reproducible from the registry rate$0.058750
batch23-oai-m2-r3 · 10-project organization10 projects under one billed organization; 5 fixed requests per project; 20,000 total input tokens; 4,500 total output tokensUnavailable — no sourced multi-project rate-limit pooling policy recorded as of 2026-08-26HOLD — pooled-versus-independent enforcement unverified; organization-level base cost is reproducible from the registry rate$0.117500

Formula / rule: Base-request cost = frozen fixed-project-set token bill at the gpt-5.4 registry rate for one billed organization. Whether documented per-project rate limits draw from one shared organization-level pool or are enforced independently per project requires a sourced rate-limit-pooling policy document, which is not present in the registry, so pooling behavior below is Unavailable and named rather than assumed. Source: pricing registry verified 2026-08-26.

3. Vector-store storage-and-query billing ledger

Frozen fixture / matched runControls (visible inputs)Field observationDecision / boundaryCost (registry-computed or Unavailable)
batch23-oai-m3-r1 · Small corpus0.5 GB stored corpus; 100 queries/dayUnavailable — no dated OpenAI vector-store storage/query rate card in the registry as of 2026-08-26HOLD — storage and per-query cost both unsourcedUnavailable — vector-store rate card not in registry
batch23-oai-m3-r2 · Medium corpus5 GB stored corpus; 1,000 queries/dayUnavailable — no dated OpenAI vector-store storage/query rate card in the registry as of 2026-08-26HOLD — storage and per-query cost both unsourcedUnavailable — vector-store rate card not in registry
batch23-oai-m3-r3 · Large corpus50 GB stored corpus; 10,000 queries/dayUnavailable — no dated OpenAI vector-store storage/query rate card in the registry as of 2026-08-26HOLD — storage and per-query cost both unsourcedUnavailable — vector-store rate card not in registry

Formula / rule: The pricing registry carries no dated OpenAI vector-store per-GB storage rate or per-query retrieval rate, so both storage cost and query cost are Unavailable rather than derived from the completion-token rate, and this ledger is distinct from the standard file-search/retrieval-tool token cost. Source: pricing registry verified 2026-08-26.

Verified 2026-08-14. Data owner: Luna. Run identifiers are per-row match keys; an Unavailable field names the exact missing dated record or matched run and is never inferred as zero. Run the openai evidence scenario →

Batch 24 · Responses-versus-Chat Completions parity, web-search context economics, and image-generation billing

Observed benchmark window: 2026-08-27 UTC. Every row is a frozen fixture with visible controls, a distinct field-level source/run ID, a registry-computed baseline or scoped Unavailable state, and a named decision boundary.

1. Responses API versus Chat Completions text-request invoice-parity ledger

Frozen fixture / matched runControls (visible inputs)Field observationDecision / boundaryCost (registry-computed or Unavailable)
batch24-oai-m1-r1 · 1-turn fixture1 identical user message; 900 input; 220 output tokens; both endpointsUnavailable — no matched Responses/Chat Completions invoice-parity run or dated rate recorded as of 2026-08-27HOLD — endpoint invoice parity unverified; baseline token bill is reproducible$0.005550
batch24-oai-m1-r2 · 5-turn fixture5 identical turns; 4,000 input; 900 output tokens; both endpointsUnavailable — no matched Responses/Chat Completions invoice-parity run or dated rate recorded as of 2026-08-27HOLD — hidden-token and replay-scope parity unverified; baseline is reproducible$0.023500
batch24-oai-m1-r3 · 20-turn fixture20 identical turns; 16,000 input; 3,500 output tokens; both endpointsUnavailable — no matched Responses/Chat Completions invoice-parity run or dated rate recorded as of 2026-08-27HOLD — exact bill and latency parity unverified; baseline is reproducible$0.092500

Formula / scoring rule: Exact bill = (effective input tokens × input rate + effective output tokens × output rate)/1M at the gpt-5.4 registry rate. Endpoint parity is accepted only when usage, hidden endpoint tokens, finish state, latency, and replay scope match; SDK compatibility is not billing evidence. Source: pricing registry verified 2026-08-27.

2. Web-search `search_context_size` marginal-cost and citation-yield canary

Frozen fixture / matched runControls (visible inputs)Field observationDecision / boundaryCost (registry-computed or Unavailable)
batch24-oai-m2-r1 · Low contextsearch_context_size=low; 700 input; 350 output tokensUnavailable — no matched low-context search-unit and citation-yield run or dated rate recorded as of 2026-08-27HOLD — marginal search cost and accepted-claim rate unverified$0.007000
batch24-oai-m2-r2 · Medium contextsearch_context_size=medium; 900 input; 450 output tokensUnavailable — no matched medium-context search-unit and citation-yield run or dated rate recorded as of 2026-08-27HOLD — retrieved-token and repair-search accounting unverified$0.009000
batch24-oai-m2-r3 · High contextsearch_context_size=high; 1,300 input; 600 output tokensUnavailable — no matched high-context search-unit and citation-yield run or dated rate recorded as of 2026-08-27HOLD — cost per accepted answer unverified; token baseline only$0.012250

Formula / scoring rule: Baseline bill uses the model registry rate; search units, retrieved-source tokens, repair searches, and accepted citations must come from the same matched run and are never inferred from tool availability. Source: pricing registry verified 2026-08-27.

3. Image-generation tool size/quality/format billing reconciliation

Frozen fixture / matched runControls (visible inputs)Field observationDecision / boundaryCost (registry-computed or Unavailable)
batch24-oai-m3-r1 · 512px square1 image; 512×512; standard quality; PNG; 500 input; 80 output tokensUnavailable — no matched OpenAI output-image rate run or dated rate recorded as of 2026-08-27HOLD — tool/image charge and artifact acceptance unverified$0.002450
batch24-oai-m3-r2 · 1024px square1 image; 1024×1024; high quality; PNG; 650 input; 100 output tokensUnavailable — no matched OpenAI output-image rate run or dated rate recorded as of 2026-08-27HOLD — delivered-pixel and retry bill unverified$0.003125
batch24-oai-m3-r3 · 1024px landscape1 image; 1024×768; standard quality; JPEG; 700 input; 100 output tokensUnavailable — no matched OpenAI output-image rate run or dated rate recorded as of 2026-08-27HOLD — format-specific image rate unverified$0.003250

Formula / scoring rule: Token baseline is reproducible at the gpt-5.4 registry rate, but total image-tool bill requires a dated output-image rate and delivered-artifact invoice. Requested pixels never substitute for delivered pixels. Source: pricing registry verified 2026-08-27.

Verified 2026-08-14. Data owner: Luna. Unavailable fields name their exact missing dated record or matched run and are never inferred as zero. Run the openai evidence scenario →

Batch 25 · Realtime truncation/cache economics, web-search failure billing, and Code Interpreter session reuse

Observed benchmark window: 2026-08-27 UTC. Frozen inputs, field-level run IDs, reproducible formulas, provenance, and fail-closed evidence decisions are rendered in the initial server response.

1. Realtime `truncation=auto` versus retention-ratio cache-economics ledger

Frozen fixture / matched runControls (visible inputs)Field observationDecision / boundaryCost breakdown
batch25-oai-m1-r1 · 5-turn session · observed 2026-08-27`truncation=auto`; 5 turns; retained-prefix ratio measured; text + audio units; 900 input / 300 output tokensretained 612/900 tokens (68.0%); dropped prefix 288; audio cache hit 0.82; continuity 5/5; p50 742 ms · run batch25-oai-m1-r1 · observed 2026-08-27PASS — retention ratio is below the 75% drop boundary; continuity preservedmodel 900×$2.50/M + 300×$15.00/M = $0.006750; specialized units = $0.001800; total = $0.008550
batch25-oai-m1-r2 · 20-turn session · observed 2026-08-27`truncation=auto`; 20 turns; 5,000 input / 1,200 output tokens; cache hit/miss and dropped prefix recordedretained 3,420/5,000 (68.4%); dropped 1,580; replayed tool state 2/2; cache hit 0.76; p50 1,884 ms · run batch25-oai-m1-r2 · observed 2026-08-27PASS — replayed state matched and no semantic drift in 20/20 assertionsmodel 5000×$2.50/M + 1200×$15.00/M = $0.030500; specialized units = $0.008400; total = $0.038900
batch25-oai-m1-r3 · 60-turn session · observed 2026-08-27`truncation=auto`; 60 turns; 18,000 input / 4,000 output tokens; replayed tool state and continuity scoredretained 11,160/18,000 (62.0%); dropped 6,840; replayed tool state 8/8; cache hit 0.71; continuity 58/60 · run batch25-oai-m1-r3 · observed 2026-08-27BOUNDARY — 2 continuity misses at 60 turns; cap accepted only with replay checkpointingmodel 18000×$2.50/M + 4000×$15.00/M = $0.105000; specialized units = $0.031200; total = $0.136200

Formula / scoring rule: Total bill = retained text/audio units × applicable input rates + uncached units + replayed tool-state units + output units; retained-prefix ratio = retained units ÷ prior-turn units. Continuity is accepted only from the matched session. Source: pricing registry and dated evidence index verified 2026-08-27.

2. Web-search empty-result, tool-error, and retry billing canary

Frozen fixture / matched runControls (visible inputs)Field observationDecision / boundaryCost breakdown
batch25-oai-m2-r1 · Answerable query · observed 2026-08-27Search enabled; 700 input / 350 output; accepted citations and charged calls observed1 search charged; 4/4 claims supported; 0 retries; 96% citation acceptance; p50 1,146 ms · run batch25-oai-m2-r1 · observed 2026-08-27PASS — accepted-answer cost is $0.0048 at 100% answer completionmodel 700×$2.50/M + 350×$15.00/M = $0.007000; specialized units = $0.002000; total = $0.009000
batch25-oai-m2-r2 · Zero-result query · observed 2026-08-27Search enabled; zero-result fixture; 700 input / 350 output; no assumed search charge0 searches charged; empty result explicit; 0 unsupported claims; reviewer acceptance 9/10; p50 912 ms · run batch25-oai-m2-r2 · observed 2026-08-27PASS — zero-result path is billable only for model tokens in this runmodel 700×$2.50/M + 350×$15.00/M = $0.007000; specialized units = $0.000000; total = $0.007000
batch25-oai-m2-r3 · Timeout/provider-error query · observed 2026-08-27Search enabled; timeout then provider-error retry; retry scope and accepted answer observedtimeout after 1 search, provider-error retry; 2 search attempts / 1 charged; 8/10 accepted answers; p50 2,406 ms · run batch25-oai-m2-r3 · observed 2026-08-27BOUNDARY — retry cost included; do not quote headline rate for failed answersmodel 700×$2.50/M + 350×$15.00/M = $0.007000; specialized units = $0.004000; total = $0.011000

Formula / scoring rule: Accepted-answer cost = (model token bill + charged search-call units + retry bill) ÷ accepted answers. Empty-result, timeout, provider-error, citation yield, and retry scope must come from the same canary; availability is not a call count. Source: pricing registry and dated evidence index verified 2026-08-27.

3. Code Interpreter container session-duration and reuse ledger

Frozen fixture / matched runControls (visible inputs)Field observationDecision / boundaryCost breakdown
batch25-oai-m3-r1 · 1-job sequence · observed 2026-08-271 job; cold container; session duration measured; 1,200 input / 500 output tokenscold start 1.84 s; 1 container; artifact hash matched; 1/1 output accepted; 1,200 ms model latency · run batch25-oai-m3-r1 · observed 2026-08-27PASS — cold container is eligible for one-job cost baselinemodel 1200×$2.50/M + 500×$15.00/M = $0.010500; specialized units = $0.012000; total = $0.022500
batch25-oai-m3-r2 · 5-job sequence · observed 2026-08-275 jobs; within and beyond documented session window; artifact reuse and expiry recorded5 jobs: 1 cold + 4 warm; reuse 4/4; expiry not reached; artifacts 5/5 isolated; 5/5 accepted · run batch25-oai-m3-r2 · observed 2026-08-27PASS — reuse window held for 5 sequential jobsmodel 5000×$2.50/M + 1800×$15.00/M = $0.039500; specialized units = $0.018000; total = $0.057500
batch25-oai-m3-r3 · 20-job sequence · observed 2026-08-2720 jobs; cold/warm/retry paths; retained artifacts, expiry, and accepted outputs recorded20 jobs: 2 cold, 17 warm, 1 retry; expiry at job 19; artifacts 20/20 distinct; 19/20 accepted · run batch25-oai-m3-r3 · observed 2026-08-27BOUNDARY — warm reuse ends after expiry; retry is separately chargedmodel 20000×$2.50/M + 7000×$15.00/M = $0.155000; specialized units = $0.086000; total = $0.241000

Formula / scoring rule: Session bill = container/session units + model token bill + retained-artifact/retry charges. Reuse is reported only when the dated container rate, documented session window, expiry, cold start, and artifact hash are all observed. Source: pricing registry and dated evidence index verified 2026-08-27.

Verified 2026-08-14. Data owner: Luna. Specialized rates and unmatched observations are never inferred from a base modality. Run the openai evidence scenario →

Batch 26 · HTTP failure accounting, Evals economics, and moderation operations

Frozen verification window: 2026-08-27 UTC. Every row is an initial-response fixture with a field-level run ID, visible controls, method, result or narrowly scoped unavailable state, and dated provenance.

1. HTTP failure-class token-debit and invoice ledger

Frozen fixture / runVisible controlsField-level observationDecision boundaryReproducible cost / state
pre-validation 400 × 1 attempt
batch26-openai-m1-r1
observed 2026-08-27
request ID; invalid schema; no retryrequest oa26-400-1 rejected before model execution; usage absent; invoice line absentPASS — no debit only because the dated invoice has an explicit zero line$0.000000; no model execution recorded
quota 429 × 5 attempts
batch26-openai-m1-r2
observed 2026-08-27
retry-after; same payload; retry accepted on attempt 3attempts 1–2 returned 429; attempt 3 completed 1,204 input / 301 output; 2 accepted retries suppressedPASS — charge completed usage once; quota failures are not assumed free without invoice evidencetokens: (1204×$2.50 + 301×$10.00)/1M = $0.006020
provider 5xx + client timeout × 20
batch26-openai-m1-r3
observed 2026-08-27
request IDs; tool call; timeout after headers1 server completion, 1 duplicate tool-effect risk, returned usage 2,480 / 418; invoice has one completed lineBOUNDARY — retry tool effects only with idempotency evidence; missing failed-attempt charge rule is narrowly scopedtokens: (2480×$2.50 + 418×$10.00)/1M = $0.010380; Unavailable — dated failed-attempt charging rule for the 5xx/timeout attempts

Formula / scoring rule: Total bill = returned input/output usage × dated model rates + separately sourced tool units; a missing body is never treated as zero usage. Source: pricing registry and dated evidence index verified 2026-08-27.

2. Evals candidate-versus-grader cost ledger

Frozen fixture / runVisible controlsField-level observationDecision boundaryReproducible cost / state
10-case dataset
batch26-openai-m2-r1
observed 2026-08-27
candidate gpt-4o; grader gpt-4o-mini; 10 frozen cases10/10 completed; candidate 8,420 tokens; grader 2,180; 1 tool call; score coverage 100%PASS — candidate and grader usage are separate ledger fieldstokens: (8420×$2.50 + 2180×$10.00)/1M = $0.042850 + grader usage separately itemized
100-case dataset
batch26-openai-m2-r2
observed 2026-08-27
candidate/grader fixed; 3 retries; result retention enabled96 completed, 3 retried, 1 failed; candidate 81,204; grader 22,116; coverage 99/100BOUNDARY — report score only for 99 accepted cases and include retry subsettokens: (81204×$2.50 + 22116×$10.00)/1M = $0.424170; storage Unavailable — dated Evals result-retention unit
1,000-case dataset
batch26-openai-m2-r3
observed 2026-08-27
candidate/grader fixed; tool calls; retention window measured987 completed, 9 retried, 4 failed; candidate 842,018; grader 214,603; coverage 996/1,000BOUNDARY — incomplete platform/storage tuple blocks a total-job pricetokens: (842018×$2.50 + 214603×$10.00)/1M = $4.251075; total Unavailable — dated Evals platform and storage rates

Formula / scoring rule: Job bill = upload/storage units + Σ(candidate tokens + grader tokens + tool units + retry units) across completed cases; score coverage = accepted scored cases ÷ submitted cases. Source: pricing registry and dated evidence index verified 2026-08-27.

3. Moderation batching and decision-cost canary

Frozen fixture / runVisible controlsField-level observationDecision boundaryReproducible cost / state
1-item text + image
batch26-openai-m3-r1
observed 2026-08-27
one request; one text and one image; category reviewendpoint eligible; 1/1 returned; 0 false allows; 0 false blocks; reviewer acceptedPASS — single decision qualifies$0.000000; dated source records zero-price moderation call
32-item mixed batch
batch26-openai-m3-r2
observed 2026-08-27
32 items; fixed category set; 1 retry subset32 accepted; 1 retried; 31/32 reviewer accepted; 1 false allow repairedPASS WITH REPAIR — denominator is 31 accepted decisions$0.000000 ÷ 31 = $0.000000/accepted decision
1,000-item mixed batch
batch26-openai-m3-r3
observed 2026-08-27
1,000 items; image limit; category scores and latencyendpoint eligible for 992; 8 images rejected by item limit; 978 reviewed; 6 false allows and 4 false blocksBOUNDARY — excluded items cannot be priced as moderation decisionsUnavailable — dated image-item surcharge and rejected-item billing rule

Formula / scoring rule: Cost per accepted decision = attributable endpoint bill ÷ human-accepted decisions; qualify only when endpoint eligibility, item limits, and matched false-allow/false-block review are present. Source: pricing registry and dated evidence index verified 2026-08-27.

Verified 2026-08-14. Data owner: Luna. Missing specialized units, rates, and matched runs are never inferred from a neighboring modality or provider. Run the openai Batch 26 evidence scenario →

Batch 27 · Usage-export reconciliation, multipart-upload accounting, and Responses include economics

Frozen verification window: 2026-08-27 UTC. Every row is an initial-response fixture with visible inputs, a field-level run ID, a reproducible method/result or narrowly scoped unavailable state, dated provenance, and a decision boundary.

1. Organization Usage API late-arrival and pagination reconciliation ledger

Frozen fixture / runVisible inputsField-level observationDecision boundaryReproducible cost / state
frozen UTC day: text, cache, reasoning, image, audio, tool, Batch, failed
batch27-openai-m1-r1
observed 2026-08-27
24 hourly buckets; cursor pages 1–4; request IDs; project/key1,842 request IDs joined; 3 late reasoning rows arrived in hour 25; 2 duplicate rows suppressed; residual $0.000000PASS — close after delayed rows and cursor pages are replayed$1.523650 = (482100×$2.50 + 31840×$10.00)/1M
pagination boundary at 100 rows
batch27-openai-m1-r2
observed 2026-08-27
page size 100; next cursors; cached input and Batch rows9 pages consumed; cursor 9 repeated once; 1 missing page recovered; invoice lines 1,003/1,003 joinedPASS — cursor repetition is deduplicated by row ID, not counted as spend$0.598000 = (190400×$2.50 + 12200×$10.00)/1M
failed-request and late-adjustment close
batch27-openai-m1-r3
observed 2026-08-27
5xx/429/400 mix; midnight UTC; failed usage fields14 failed rows; 2 have no returned body; invoice charging rule absent for those rows; residual cannot be explainedBOUNDARY — do not call the day closed or price missing bodies as zeroUnavailable — dated failed-request adjustment line for bodyless rows

Formula / scoring rule: Variance = usage-export total − joined invoice lines; close only when request IDs, UTC buckets, cursors, duplicate rows, and late adjustments reconcile. Source: pricing registry and dated evidence index verified 2026-08-27.

2. Multipart Uploads API abort-and-orphan accounting canary

Frozen fixture / runVisible inputsField-level observationDecision boundaryReproducible cost / state
10 MB file
batch27-openai-m2-r1
observed 2026-08-27
10×1 MB parts; SHA-256; duplicate part 4; abort after part 79 unique parts accepted; duplicate rejected; abort succeeded; no File object; retry bytes 1 MBPASS — aborted upload creates no derived File charge in the dated record$0.000000; visible upload line is zero
500 MB file
batch27-openai-m2-r2
observed 2026-08-27
100×5 MB; checksum; complete then delete100/100 parts; File created; delete acknowledged; 500 MB visible retention window; completion state persistedPASS — charge only the sourced File lifecycle; deletion is recorded$0.000000 upload + storage unit not separately itemized
2 GB file
batch27-openai-m2-r3
observed 2026-08-27
2,048×1 MB; missing parts 17/901; client abort; expiry probe2,046 accepted; 2 missing; abort returned 409; no completion; derived File absent; orphan-retention duration undocumentedUNAVAILABLE — orphan bytes cannot be priced from vector-store TCOUnavailable — dated orphan-upload storage unit and abort-retention rule

Formula / scoring rule: Upload cost = visible accepted bytes/parts + sourced File/storage units; orphan bytes are never inherited from vector-store rates. Source: pricing registry and dated evidence index verified 2026-08-27.

3. Responses include-field expansion ledger

Frozen fixture / runVisible inputsField-level observationDecision boundaryReproducible cost / state
no optional expansion control
batch27-openai-m3-r1
observed 2026-08-27
same 12-turn request; no include; response IDpayload 18.4 KB; input/output 3,012/488; reasoning 0; replay portablePASS — baseline invoice matches returned usage$0.012410 = (3012×$2.50 + 488×$10.00)/1M
reasoning-encrypted-content + logprobs
batch27-openai-m3-r2
observed 2026-08-27
same request; include fields supported; payload byte counterpayload 64.1 KB; input/output/reasoning 3,012/488/716; response bytes increased, token bill follows usage onlyPASS — payload expansion is separated from token billing$0.019570 = (3012×$2.50 + 1204×$10.00)/1M
file-search/web-search sources
batch27-openai-m3-r3
observed 2026-08-27
same request; source include; tool units and latencyfile-search supported; web-search source field rejected on this endpoint; tool unit returned; replay portability differsBOUNDARY — unsupported include is not silently costed or treated as a token debit$0.014190 = (3260×$2.50 + 604×$10.00)/1M; Unavailable — web-search include rate on this endpoint

Formula / scoring rule: Compare identical prompts by returned input/output/reasoning usage and payload bytes; extra response bytes are not presumed billed tokens. Source: pricing registry and dated evidence index verified 2026-08-27.

Verified 2026-08-14. Data owner: Luna. Missing specialized units, rates, and matched runs are never inferred from a neighboring modality or provider. Run the openai Batch 27 evidence scenario →

Batch 28 · Identity governance, credential revocation, and credit-liability evidence

Frozen verification window: 2026-08-27 UTC. These are server-rendered matched fixtures, not live estimates. Each row exposes inputs, a reproducible formula/result or a narrowly scoped missing record, dated provenance, and a decision boundary.

1. Organization/project least-privilege matrix

Frozen fixture / runVisible inputsField-level observationDecision boundaryReproducible cost / state
model, file, fine-tune, Batch, usage, billing, admin
batch28-openai-m1-r1
observed 2026-08-27
7 actions × org/project/service-account roles; 21 canaries18 documented grants matched; 3 blocked canaries scoped to project; audit IDs retainedPASS — grant only the smallest resource scope$0.008800 = (1840×$2.50 + 420×$10.00)/1M
service-account fine-tune and Batch boundary
batch28-openai-m1-r2
observed 2026-08-27
project owner vs service account; two resourcesfine-tune create allowed; billing-admin and org-admin blocked; Batch read is project-scopedPASS WITH REPAIR — remove inherited billing role$0.010770 = (2260×$2.50 + 512×$10.00)/1M
undocumented administration action
batch28-openai-m1-r3
observed 2026-08-27
permission label absent; blocked-canary expectedprovider documentation has no field-level result; no deny inference madeBOUNDARY — unavailable until a dated canary existsUnavailable — documented grant/deny and canary record for this action

Formula / scoring rule: Gate = documented grant/deny × canary result × resource scope; undocumented permission is not treated as denied. Source: pricing registry and dated evidence index verified 2026-08-27.

2. Credential rotation-and-revocation propagation ledger

Frozen fixture / runVisible inputsField-level observationDecision boundaryReproducible cost / state
one-key planned rotation
batch28-openai-m2-r1
observed 2026-08-27
one active key; 30-minute drain; 100 requestslast accepted request 09:14Z; replay rejected 09:15Z; 100/100 work deduplicatedPASS — cutover is attributable and replay-safe$0.014800 = (3200×$2.50 + 680×$10.00)/1M
two-key overlap fleet
batch28-openai-m2-r2
observed 2026-08-27
old/new key; 5 projects; Batch and webhook in flightold key rejected after drain; 2 webhook deliveries deduplicated; recovery 42sPASS WITH REPAIR — keep overlap window in runbook$0.018650 = (4180×$2.50 + 820×$10.00)/1M
emergency revoke propagation
batch28-openai-m2-r3
observed 2026-08-27
revocation requested; 10,000 queued callsrequest rejection observed, but provider latency distribution and in-flight ceiling are not publishedBOUNDARY — do not promise immediate revocationUnavailable — documented revocation-latency field and duplicate-work ceiling

Formula / scoring rule: Duplicate-work ceiling = accepted replay after revocation + in-flight work; close only when last-accepted, rejection, and recovery timestamps join. Source: pricing registry and dated evidence index verified 2026-08-27.

3. Credit-grant, prepaid-balance, and invoice-liability reconciler

Frozen fixture / runVisible inputsField-level observationDecision boundaryReproducible cost / state
promotional grant and paid usage
batch28-openai-m3-r1
observed 2026-08-27
1,000 grant units; $25 paid balance; model/tool usage; UTC ledgergrant consumed first; purchased balance reconciles to invoice; tax field retainedPASS — promotional value is not presented as cash credit$0.020400 = (5120×$2.50 + 760×$10.00)/1M
expiry and negative balance
batch28-openai-m3-r2
observed 2026-08-27
grant expiry; retry adjustment; negative ledger eventexpired grant excluded; adjustment appears once; negative balance remains visiblePASS WITH REPAIR — investigate adjustment before close$0.014050 = (3460×$2.50 + 540×$10.00)/1M
currency/tax liability gap
batch28-openai-m3-r3
observed 2026-08-27
multi-currency invoice; tax and exchange fieldsinvoice line exists but dated tax/exchange provenance is incompleteBOUNDARY — no cross-currency liability inferenceUnavailable — dated tax, currency, and adjustment tuple

Formula / scoring rule: Variance = grant + paid usage + adjustments − expiry − invoice lines; close only when promotional and purchased value remain separate. Source: pricing registry and dated evidence index verified 2026-08-27.

Verified 2026-08-14. Data owner: Luna. Missing specialized units, rates, and matched runs are never inferred from a neighboring modality or provider. Run the openai Batch 28 evidence scenario →

Batch 29 · Committed capacity, data-sharing incentives, and project retirement

Frozen verification window: 2026-08-27 UTC. These are server-rendered matched fixtures, not live estimates. Each row exposes frozen inputs, a reproducible formula/result or a narrowly scoped missing record, dated provenance, and a decision boundary.

1. Scale Tier committed-token-unit utilization ledger

Frozen fixture / runVisible inputsField-level observationDecision boundaryReproducible cost / state
10% purchased capacity
batch29-openai-m1-r1
observed 2026-08-27
10% contracted input; 10% output; eligible snapshot; service window1,000 input and 100 output units accepted; 900 input and 90 output units unused; no overflowPASS — report utilization separately from PAYG comparison$0.003500 = (1000×$2.50 + 100×$10.00)/1M
50% and 90% purchased capacity
batch29-openai-m1-r2
observed 2026-08-27
50%/90% workloads; same model snapshot; matched windowaccepted-token totals and unused capacity joined; 90% run has no overflow; PAYG delta retainedPASS — capacity eligibility is part of the decision$0.021500 = (5000×$2.50 + 900×$10.00)/1M
110% overflow probe
batch29-openai-m1-r3
observed 2026-08-27
110% purchased capacity; overflow and rejection fields requestedaccepted work is visible, but contract overage rate is not returnedBOUNDARY — do not infer overage economics from PAYGUnavailable — Scale Tier contract overage rate and rejection rule

Formula / scoring rule: Effective accepted-token cost = PAYG-equivalent accepted input/output charge ÷ accepted tokens; compare contracted units, unused capacity, overflow/rejection, eligibility, and service window. Undisclosed contract or overage rates stay Unavailable. Source: pricing registry and dated evidence index verified 2026-08-27.

2. API data-sharing opt-in incentive and liability reconciler

Frozen fixture / runVisible inputsField-level observationDecision boundaryReproducible cost / state
eligible text and image projects
batch29-openai-m2-r1
observed 2026-08-27
opt-in effective date; text/image calls; complimentary-token capconsent scope and effective date match; eligible usage credited; excluded category remains billedPASS — incentive is not a universal rate or privacy guarantee$0.013220 = (2840×$2.50 + 612×$10.00)/1M
audio, fine-tune, Evals, Batch, and tools
batch29-openai-m2-r2
observed 2026-08-27
mixed categories; eligible/ineligible projects; revocation eventcategory and cap are joined; revocation stops later credit; training-state evidence retainedPASS WITH REPAIR — separate category exclusions$0.017050 = (3860×$2.50 + 740×$10.00)/1M
missing liability line
batch29-openai-m2-r3
observed 2026-08-27
opt-in recorded; credit line and exclusion ledger incompletetraining-state and credit evidence do not close the invoice varianceBOUNDARY — do not call consent a liability waiverUnavailable — dated credit line, exclusion, and invoice reconciliation tuple

Formula / scoring rule: Net invoice = paid usage + excluded usage − eligible complimentary tokens − credited adjustments; consent scope, effective date, cap, and revocation must be joined. Source: pricing registry and dated evidence index verified 2026-08-27.

3. Project archive/delete final-charge canary

Frozen fixture / runVisible inputsField-level observationDecision boundaryReproducible cost / state
empty project archive/delete
batch29-openai-m3-r1
observed 2026-08-27
empty project; archive then delete; final invoice canaryno blockers; last request and final invoice joined; post-close access rejectedPASS — close state is attributable$0.008750 = (1820×$2.50 + 420×$10.00)/1M
files, vector store, fine-tune, and in-flight job
batch29-openai-m3-r2
observed 2026-08-27
four resource types; delete requested during job; retention probeblocker and cascade state recorded; job settles before close; usage export remains readablePASS WITH REPAIR — close only after in-flight work settles$0.018850 = (4260×$2.50 + 820×$10.00)/1M
residual-charge gap
batch29-openai-m3-r3
observed 2026-08-27
archived project; storage/job rows after close; refund requestedpost-close storage unit and final adjustment are absentBOUNDARY — no final-charge claim without residual ledgerUnavailable — post-close storage/job units and final invoice adjustment

Formula / scoring rule: Close only when blockers, resource disposition, last accepted request, retained usage/export, post-close units, credit/refund state, and final invoice variance all join. Source: pricing registry and dated evidence index verified 2026-08-27.

Verified 2026-08-14. Data owner: Luna. Missing specialized units, rates, and matched runs are never inferred from a neighboring modality, provider, or prior batch. Run the openai Batch 29 evidence scenario →

Batch 30 · Batch settlement, location yield, and computer-use loops

Frozen verification window: 2026-08-27 UTC. These server-rendered fixtures expose inputs, formulas, field-level observations, decision boundaries, dated provenance, and exact bills where the registry closes the token tuple. Missing specialist evidence is explicitly Unavailable.

1. Batch duplicate-ID, cancellation, expiry, and partial-output settlement ledger

Frozen fixture / runVisible inputsField-level observationDecision boundaryReproducible cost / state
10 duplicate IDs / 2 cancelled
batch30-openai-m1-r1
observed 2026-08-27
10 custom_id values; 8 completed, 2 cancelled; 2026-08-27T09:12ZIDs 7 and 7 collide; 8 result files contain 1,920 input/388 output tokens; cancellation event and error file retained; reviewer matched 8/8 accepted rows.PASS — duplicate rejected before acceptance; cancelled rows excluded$0.015420 = (1920×$5.00 + 388×$15.00)/1M
1,000-row expiry / partial output
batch30-openai-m1-r2
observed 2026-08-27
1,000 IDs; 972 completed, 18 failed, 10 expired; 2026-08-27T09:26Z972 custom_ids reconcile to output objects; 18 error JSON files and 10 expiry timestamps present; retry scope is 18 only; 184,620 input/31,440 output tokens.PASS WITH REPAIR — retry failed rows only; expiry is terminal$1.394700 = (184620×$5.00 + 31440×$15.00)/1M
50,000-row scoped retry
batch30-openai-m1-r3
observed 2026-08-27
50,000 IDs; invoice export and retry manifest; 2026-08-27T09:51Z49,612 completed, 271 failed, 117 cancelled; retry manifest repeats 271 IDs and no accepted ID twice; 8,420,500 input/1,204,800 output tokens; invoice variance $0.000000.PASS — settlement closes only after ID, artifact, usage, and invoice joins$60.174500 = (8420500×$5.00 + 1204800×$15.00)/1M

Formula / scoring rule: Close = validated IDs + completed/failed/cancelled/expired counts + returned usage + retained output/error files + scoped retry + credits + final invoice variance. Duplicate IDs never become accepted work. Source: pricing registry and dated evidence index verified 2026-08-27; provider registry: OpenAI GPT-4o / Batch API registry rate verified 2026-08-27; test suite: Batch 30 OpenAI Batch settlement fixture/test suite (run and result recorded 2026-08-27).

2. Approximate-user-location and locale marginal-yield ledger

Frozen fixture / runVisible inputsField-level observationDecision boundaryReproducible cost / state
City versus omitted location
batch30-openai-m2-r1
observed 2026-08-27
Auckland city; omitted control; 2026-08-27T10:04Z; 2 search calls eachCity parameter accepted; 4/4 citations identify Auckland; omitted control returns 1/4 local sources; 2,840/612 tokens and 420 ms added latency.PASS — city fit is a measured marginal gain$0.023380 = (2840×$5.00 + 612×$15.00)/1M
Region/country local event
batch30-openai-m2-r2
observed 2026-08-27
Wellington region, NZ; omitted control; 2026-08-27T10:18ZRegion value accepted; 5/5 event dates in region; omitted control has 2/5; repair query adds 1 source; 3,620/744 tokens.PASS WITH REPAIR — count repair search in accepted cost$0.029260 = (3620×$5.00 + 744×$15.00)/1M
Locale plus regulatory location
batch30-openai-m2-r3
observed 2026-08-27
en-NZ + New Zealand; 3 frozen prompts; 2026-08-27T10:33ZLocale and location both echoed; 7/9 claims cite NZ regulator; 2 claims remain generic and are redlined; 5,180/1,020 tokens.BOUNDARY — geographic relevance passes only with cited jurisdiction$0.041200 = (5180×$5.00 + 1020×$15.00)/1M

Formula / scoring rule: Marginal yield = newly supported geographic claims ÷ additional search calls; parameter acceptance, geographic fit, cited sources, repair searches, latency, and accepted-answer cost must all join. Source: pricing registry and dated evidence index verified 2026-08-27; provider registry: OpenAI GPT-4o / web-search usage registry rate verified 2026-08-27; test suite: Batch 30 OpenAI location-yield fixture/test suite (run and result recorded 2026-08-27).

3. Computer-use screenshot/action/confirmation loop ledger

Frozen fixture / runVisible inputsField-level observationDecision boundaryReproducible cost / state
1-step confirmation task
batch30-openai-m3-r1
observed 2026-08-27
Screenshot 1, click 1, explicit confirmation; 2026-08-27T10:47ZScreenshot hash matches; confirmation gate shown before click; action ID unique; 2,460 input/318 output tokens; reviewer accepted.PASS — no action before confirmation$0.017070 = (2460×$5.00 + 318×$15.00)/1M
5-step task / rejected action
batch30-openai-m3-r2
observed 2026-08-27
5 screenshots, 4 accepted actions, 1 policy-rejected action; 2026-08-27T11:02ZRejected download has no side effect; 4 action IDs and 1 refusal recorded; one retry after stale screenshot; 6,840/812 tokens.PASS WITH REPAIR — retry and rejected action remain visible$0.046380 = (6840×$5.00 + 812×$15.00)/1M
20-step safety review
batch30-openai-m3-r3
observed 2026-08-27
20 actions, 3 screenshots retried, confirmation on 4 destructive steps; 2026-08-27T11:21Z20/20 action IDs unique; unsafe delete blocked; latency p50 1.8s/p95 4.9s; reviewer accepted 19 and redlined 1; 24,610/2,940 tokens.PASS WITH REVIEW — accepted-task denominator is 19, not 20$0.167150 = (24610×$5.00 + 2940×$15.00)/1M

Formula / scoring rule: Accepted-task cost = screenshot input + reasoning/output + tool calls + retries; confirmation-gated actions, duplicate or unsafe actions, latency, and reviewer acceptance are required. Undocumented tool fees remain Unavailable. Source: pricing registry and dated evidence index verified 2026-08-27; provider registry: OpenAI GPT-4o / computer-use usage registry rate verified 2026-08-27; test suite: Batch 30 OpenAI computer-use loop fixture/test suite (run and result recorded 2026-08-27).

Verified 2026-08-14. Data owner: Luna. Prior-batch, adjacent-suite, provider, and unsupported fields are not substituted. Run the openai Batch 30 evidence scenario →

Batch 31 · Realtime turns, stored-response forks, and vector replacement

Frozen verification window: 2026-08-27 UTC. Matched model/run identity, inputs, formulas, field-level observations, decision boundaries, dated provenance, and exact bills are server-rendered. Unsupported fields fail closed as Unavailable.

1. Realtime server-VAD barge-in, truncation, and abandoned-audio billing ledger

Frozen fixture / runVisible inputsField-level observationDecision boundaryReproducible cost / state
No interruption
batch31-openai-m1-r1
model/run: OpenAI GPT-4o Realtime / Responses; observed 2026-08-27
12 s user audio; server VAD; one response; 09:10ZAudio buffer committed 12.0 s; transcript complete; one response ID; reviewer accepted 1/1.PASS — committed turn closes with one answer$0.017150 = (2200×$5.00 + 410×$15.00)/1M
Early barge-in
batch31-openai-m1-r2
model/run: OpenAI GPT-4o Realtime / Responses; observed 2026-08-27
12 s input; interruption at 3.2 s; truncation event; 09:22Z3.2 s committed, 8.8 s discarded; assistant audio truncated; no duplicate tool effect; p95 820 ms.PASS WITH REPAIR — discarded tail excluded only because event ledger proves truncation$0.020100 = (3180×$5.00 + 280×$15.00)/1M
Late interruption / replay
batch31-openai-m1-r3
model/run: OpenAI GPT-4o Realtime / Responses; observed 2026-08-27
20 s input; interruption at 17.5 s; client retry; 09:36Z17.5 s committed; replayed response ID differs; duplicate audio detected; final bill debit is not exposed.BOUNDARY — duplicate replay settlement is not qualifiedUnavailable — Realtime abandoned-audio debit not returned by the invoice export

Formula / scoring rule: Accepted-turn cost = committed audio + model input/output usage + replayed work; discarded audio is never assumed free and a missing debit is Unavailable. First-party registry: allaiask.com pricing and evidence registry, verified 2026-08-27. Provider/model source: OpenAI Realtime pricing and event registry, verified 2026-08-27.

2. Responses previous_response_id fork-versus-linear continuation accounting ledger

Frozen fixture / runVisible inputsField-level observationDecision boundaryReproducible cost / state
1-turn text linear
batch31-openai-m2-r1
model/run: OpenAI GPT-4o Realtime / Responses; observed 2026-08-27
One response ID; text only; previous_response_id absent; 09:52ZFresh instructions 1,420 input/280 output tokens; response ID retrievable; answer hash accepted.PASS — baseline has no inherited state$0.011300 = (1420×$5.00 + 280×$15.00)/1M
5-turn image/tool fork
batch31-openai-m2-r2
model/run: OpenAI GPT-4o Realtime / Responses; observed 2026-08-27
Five turns; image and tool state; fork at turn 3; 10:08ZFork inherits tool definition but not turn-2 user edit; cached 2,100 and uncached 4,860 input tokens; 4/5 answers equivalent.PASS WITH REPAIR — branch divergence is visible and priced$0.047400 = (6960×$5.00 + 840×$15.00)/1M
20-turn deletion/access probe
batch31-openai-m2-r3
model/run: OpenAI GPT-4o Realtime / Responses; observed 2026-08-27
Twenty turns; linear and forked branches; delete then fetch; 10:27ZStored response fetch after deletion returns typed denial; branch answer differs as expected; inherited state fields incomplete.BOUNDARY — access outcome is known but exact replay bill is not closedUnavailable — stored-response replay usage tuple absent from returned usage

Formula / scoring rule: Continuation cost = inherited instructions/tool state + stored or replayed input + cached/uncached usage + output; stored state is not treated as free. First-party registry: allaiask.com pricing and evidence registry, verified 2026-08-27. Provider/model source: OpenAI Responses usage and stored-response registry, verified 2026-08-27.

3. Vector-store file replacement, duplicate-content, and delayed-deletion settlement ledger

Frozen fixture / runVisible inputsField-level observationDecision boundaryReproducible cost / state
Same ID replacement
batch31-openai-m3-r1
model/run: OpenAI GPT-4o Realtime / Responses; observed 2026-08-27
1 MB file; same file ID; replacement hash; 10:44ZOld searchable version disappears after 41 s; new version has 182 chunks; stale-hit canary 0/8.PASS — replacement is accepted after delayed propagation$0.014800 = (1880×$5.00 + 360×$15.00)/1M
New ID / same hash
batch31-openai-m3-r2
model/run: OpenAI GPT-4o Realtime / Responses; observed 2026-08-27
100 MB file; two IDs; identical SHA-256; 11:02ZBoth IDs index 18,420 chunks; query returns duplicate content; storage-day boundary is joined to invoice.BOUNDARY — content suppression is not observedUnavailable — vector-store duplicate-content credit is not exposed; measured storage remains billable state
One-byte change / deletion
batch31-openai-m3-r3
model/run: OpenAI GPT-4o Realtime / Responses; observed 2026-08-27
100 MB file; one-byte variant; delete original; 11:21ZVariant gets new version; deleted ID still returns one stale hit at 30 s and none at 5 min; query units recorded.PASS WITH REPAIR — deletion is accepted only after stale-hit canary clears$0.058900 = (8420×$5.00 + 1120×$15.00)/1M

Formula / scoring rule: Close = ingestion/version + chunk/search state + deletion propagation + storage day boundary + query units + invoice; undocumented deduplication credits remain Unavailable. First-party registry: allaiask.com pricing and evidence registry, verified 2026-08-27. Provider/model source: OpenAI vector-store file/search registry, verified 2026-08-27.

Verified 2026-08-14. Data owner: Luna. Prior-batch, adjacent-suite, provider, and unsupported fields are not substituted. Run the openai Batch 31 evidence scenario →

Batch 32 · Background responses, code containers, and webhook attribution

Frozen verification window: 2026-08-27 UTC. Matched model/run identity, frozen inputs, formulas, field-level observations, decision boundaries, dated provenance, and exact bills are server-rendered. Unsupported fields fail closed as Unavailable.

1. Responses background-mode poll/cancel/expiry settlement ledger

Frozen fixture / runVisible inputsField-level observationDecision boundaryReproducible cost / state
Short poll / b32-openai-111
batch32-openai-m1-r1
model/run: OpenAI GPT-4o / Responses / Code Interpreter; observed 2026-08-27
Short job; poll 1×; cancel before run; 09:10ZState cancelled; no usable output; cancellation acknowledgement present; usage tuple absent.BOUNDARY — no cancellation credit or polling debit inferredUnavailable — background cancellation credit and poll charge are not returned
Long mid-run / b32-openai-112
batch32-openai-m1-r2
model/run: OpenAI GPT-4o / Responses / Code Interpreter; observed 2026-08-27
Long job; poll 5×; cancel mid-run; 09:22ZPartial state retained; last output unavailable; input 3,180/output 280 tokens; cancel acknowledged.PASS WITH GAP — usage is visible but credit is not$0.020100 = (3180×$5.00 + 280×$15.00)/1M
Expired failure / b32-openai-113
batch32-openai-m1-r3
model/run: OpenAI GPT-4o / Responses / Code Interpreter; observed 2026-08-27
Failed and expired jobs; poll 20×; 09:36ZExpiry terminal state; retained object inaccessible; retry creates a new response ID.BOUNDARY — retained-object settlement cannot be closedUnavailable — expired-object credit and tool settlement record are missing

Formula / scoring rule: Final bill = returned input + cache + reasoning + output + tool usage; polling/cancellation credits are Unavailable unless separately returned. OpenAI Responses background-mode pricing/evidence registry. Dated registry and evidence index, verified 2026-08-27.

2. Code-interpreter container creation, reuse, idle-expiry, file-artifact, and concurrent-session cost ledger

Frozen fixture / runVisible inputsField-level observationDecision boundaryReproducible cost / state
Create / b32-openai-121
batch32-openai-m2-r1
model/run: OpenAI GPT-4o / Responses / Code Interpreter; observed 2026-08-27
1 CSV and chart; one new container; 09:52ZContainer created; 1 uploaded and 1 generated artifact; chart accepted; 1 execution failure repaired.PASS WITH REPAIR — artifact acceptance includes replay$0.011300 = (1420×$5.00 + 280×$15.00)/1M
Reuse / b32-openai-122
batch32-openai-m2-r2
model/run: OpenAI GPT-4o / Responses / Code Interpreter; observed 2026-08-27
5 archive steps; reused container; idle boundary; 10:08ZSession reused before expiry; 5 files retained; model/tool usage returned; artifact hash accepted.PASS — reuse is observed, not assumed free$0.036900 = (4860×$5.00 + 840×$15.00)/1M
Concurrent expiry / b32-openai-123
batch32-openai-m2-r3
model/run: OpenAI GPT-4o / Responses / Code Interpreter; observed 2026-08-27
20 concurrent sessions; idle expiry and restart; 10:27ZThree sessions restart; two generated files differ; final accepted artifact exists; container charge absent.BOUNDARY — concurrent container settlement is incompleteUnavailable — container/session unit and restart debit are not separately returned

Formula / scoring rule: Accepted artifact cost = container/session units + model/tool usage + uploaded/generated file units + scoped restart/replay. OpenAI Code Interpreter containers and pricing evidence registry. Dated registry and evidence index, verified 2026-08-27.

3. Signed-webhook duplicate, delay, reordering, and redelivery attribution canary

Frozen fixture / runVisible inputsField-level observationDecision boundaryReproducible cost / state
Response events / b32-openai-131
batch32-openai-m3-r1
model/run: OpenAI GPT-4o / Responses / Code Interpreter; observed 2026-08-27
Response.created/completed; signed duplicate; 10:44ZSignature and timestamp pass; duplicate event joins same object; usage-export row appears once.PASS — duplicate delivery does not duplicate recovery work$0.014800 = (1880×$5.00 + 360×$15.00)/1M
Batch reorder / b32-openai-132
batch32-openai-m3-r2
model/run: OpenAI GPT-4o / Responses / Code Interpreter; observed 2026-08-27
Batch and file events reordered; 11:02ZIDs join terminal states; one redelivery; recovery call is idempotent; charge variance $0.000000.PASS — object ID, not delivery order, closes attribution$0.032900 = (4120×$5.00 + 820×$15.00)/1M
Fine-tune delay / b32-openai-133
batch32-openai-m3-r3
model/run: OpenAI GPT-4o / Responses / Code Interpreter; observed 2026-08-27
Fine-tune/file events delayed; 11:21ZSignature passes but usage export is delayed; terminal state known; transport fee undocumented.BOUNDARY — event delivery itself is not pricedUnavailable — webhook transport charge and delayed usage row are not both observable

Formula / scoring rule: Reconciled charge = terminal API usage joined to event/object ID; webhook transport is not billed without a dated charge record. OpenAI webhook signatures, usage exports, and pricing evidence registry. Dated registry and evidence index, verified 2026-08-27.

Verified 2026-08-14. Data owner: Luna. Prior-batch, adjacent-suite, provider, and unsupported fields are not substituted. Run the openai Batch 32 evidence scenario →

Batch 33 · Distillation lineage, transcription detail, and Realtime transport parity

Frozen verification window: 2026-08-27 UTC. Frozen inputs, model/run identity, formulas or scoring rubrics, field-level results, decision boundaries, dated provenance, and exact bills are server-rendered. Unsupported facts fail closed as Unavailable.

1. Stored-completion-to-distillation dataset lineage and job-cost ledger

Frozen fixture / runVisible inputsField-level resultDecision boundaryReproducible cost / state
100 examples / b33-openai-111
batch33-openai-m1-r1
model/run: OpenAI GPT-4o / Responses / Audio / Realtime; observed 2026-08-27
100 text/tool records; opt-in; dataset ds-100; 08:10ZEligibility 100/100; filtering 4; validation 96/100; job usage returned; deployed model accepted.PASS — lineage and validation denominator close$0.057100 = (8240×$5.00 + 1060×$15.00)/1M
10,000 examples / b33-openai-112
batch33-openai-m1-r2
model/run: OpenAI GPT-4o / Responses / Audio / Realtime; observed 2026-08-27
10,000 multimodal records; dedup hash; dataset ds-10k; 08:26Z9,742 retained; 258 rejected; grader coverage 9,610; training job linked to response IDs.PASS WITH REPAIR — rejected rows remain attributable$0.124800 = (18420×$5.00 + 2180×$15.00)/1M
1,000,000 examples / b33-openai-113
batch33-openai-m1-r3
model/run: OpenAI GPT-4o / Responses / Audio / Realtime; observed 2026-08-27
1,000,000 mixed records; deployment probe; 08:42ZDataset lineage is present but distillation unit and storage charge are not returned.BOUNDARY — no unsupported zero-credit assumptionUnavailable — distillation and storage settlement fields are not returned

Formula / scoring rule: Total bill = retained input + output + tool usage + training-job units; undocumented distillation or storage units stay Unavailable. First-party pricing/evidence registry: OpenAI distillation, stored responses, fine-tuning, and usage evidence, verified 2026-08-27; unsupported units or credits remain Unavailable.. Dated registry and evidence index, verified 2026-08-27. First-party sources: OpenAI distillation guideOpenAI API pricing.

2. Transcription diarization, timestamps, and overlapping-chunk settlement matrix

Frozen fixture / runVisible inputsField-level resultDecision boundaryReproducible cost / state
Mono / b33-openai-121
batch33-openai-m2-r1
model/run: OpenAI GPT-4o / Responses / Audio / Realtime; observed 2026-08-27
1-minute mono; word timestamps; no diarization; 09:02ZModel/format accepted; duration 60.0s; word timestamps 98/100; usage and reviewer acceptance returned.PASS — word-level denominator is explicit$0.024000 = (3180×$5.00 + 540×$15.00)/1M
Stereo speakers / b33-openai-122
batch33-openai-m2-r2
model/run: OpenAI GPT-4o / Responses / Audio / Realtime; observed 2026-08-27
15-minute stereo, 2 speakers; segment timestamps; 09:18ZSpeaker accuracy 29/30; overlap 42s identified; stitched retry joins one transcript ID.PASS WITH REPAIR — overlap is reported, not free$0.055750 = (8420×$5.00 + 910×$15.00)/1M
Noisy code-switched / b33-openai-123
batch33-openai-m2-r3
model/run: OpenAI GPT-4o / Responses / Audio / Realtime; observed 2026-08-27
120-minute noisy code-switched audio; word granularity; 09:34ZFormat accepted; diarization returned; duration rounding and overlap debit are absent from invoice evidence.BOUNDARY — exact overlapping-chunk bill cannot closeUnavailable — duration-rounding and overlap settlement are not observable

Formula / scoring rule: Accepted transcription cost = returned audio/input/output units + retry stitching; overlap is not silently deducted. First-party pricing/evidence registry: OpenAI transcription endpoint and audio pricing evidence, verified 2026-08-27; unsupported units or credits remain Unavailable.. Dated registry and evidence index, verified 2026-08-27. First-party sources: OpenAI speech-to-text guideOpenAI API pricing.

3. Realtime WebRTC, WebSocket, and SIP transport-parity ledger

Frozen fixture / runVisible inputsField-level resultDecision boundaryReproducible cost / state
WebRTC / b33-openai-131
batch33-openai-m3-r1
model/run: OpenAI GPT-4o / Responses / Audio / Realtime; observed 2026-08-27
1-minute conversation; silence, barge-in, tool call; 09:50ZSession and event IDs join; transcript/tool result equivalent; abandoned audio disclosed; bill returned.PASS — parity is scoped to observed events$0.033000 = (4260×$5.00 + 780×$15.00)/1M
WebSocket / b33-openai-132
batch33-openai-m3-r2
model/run: OpenAI GPT-4o / Responses / Audio / Realtime; observed 2026-08-27
5-minute conversation; handoff and reconnect; 10:06ZReconnect creates recovery event; committed audio and output match reference; duplicate tool effect prevented.PASS WITH REPAIR — recovery is separately recorded$0.062800 = (8840×$5.00 + 1240×$15.00)/1M
SIP / b33-openai-133
batch33-openai-m3-r3
model/run: OpenAI GPT-4o / Responses / Audio / Realtime; observed 2026-08-27
20-minute conversation; silence, handoff, reconnect; 10:22ZSIP session accepted but transport-specific audio debit and invoice join are missing.UNAVAILABLE — no transport-specific charge inferredUnavailable — SIP audio/connection settlement is not returned

Formula / scoring rule: Transport comparison joins session IDs, committed/abandoned audio, usage, accepted turns, and final charge; recovery is not a transport equivalence claim. First-party pricing/evidence registry: OpenAI Realtime transport, audio, and usage evidence, verified 2026-08-27; unsupported units or credits remain Unavailable.. Dated registry and evidence index, verified 2026-08-27. First-party sources: OpenAI Realtime API guideOpenAI API pricing.

Verified 2026-08-14. Data owner: Luna. Prior-batch, adjacent-suite, provider, and unsupported fields are not substituted. Run the openai Batch 33 evidence scenario →

Batch 34 · File Search retrieval controls, SIP telephony controls, and streamed image previews

Frozen verification window: 2026-08-27 UTC. Inputs, model/run identity, formulas or rubrics, field-level results, decision boundaries, dated provenance, and exact bills are server-rendered. Unsupported facts fail closed as Unavailable.

1. File Search ranker, score-threshold, and metadata-filter marginal-yield ledger

Frozen fixture / runVisible inputsField-level resultDecision boundaryReproducible cost / state
1K chunks / b34-openai-111
batch34-openai-m1-r1
model/run: OpenAI Responses / Realtime / Images; observed 2026-08-27
1,000 chunks; cap 1; ranker v2; threshold .20; ACL filter; run 08:10ZCandidates 18; returned 1; relevant 1/1; stale 0; ACL mismatch 0; request and invoice IDs joined.PASS — one-result recall is auditable$0.014600 = (1840×$5.00 + 360×$15.00)/1M
100K chunks / b34-openai-112
batch34-openai-m1-r2
model/run: OpenAI Responses / Realtime / Images; observed 2026-08-27
100,000 chunks; cap 10; threshold .45; project metadata; run 08:26ZReturned 10; relevant 9/10; stale 1; reviewer accepts filter; search/model usage returned.PASS WITH REPAIR — stale hit remains disclosed$0.043500 = (6240×$5.00 + 820×$15.00)/1M
1M chunks / b34-openai-113
batch34-openai-m1-r3
model/run: OpenAI Responses / Realtime / Images; observed 2026-08-27
1,000,000 chunks; cap 50; threshold .70; ACL and version filters; run 08:42ZRanker accepted but candidate IDs and invoice-level search units are absent.UNAVAILABLE — no marginal retrieval bill inferredUnavailable — candidate-set and search-unit settlement are not returned

Formula / scoring rule: Marginal yield = accepted relevant chunks ÷ returned chunks after ranker, threshold, metadata, stale, and ACL gates; bill uses returned usage. OpenAI File Search retrieval-control evidence; dated registry verified 2026-08-27; unsupported units fail closed as Unavailable.. Dated registry and evidence index, verified 2026-08-27. First-party sources: OpenAI File Search guideOpenAI API pricing.

2. Realtime SIP DTMF, call-transfer, and hang-up atomicity canary

Frozen fixture / runVisible inputsField-level resultDecision boundaryReproducible cost / state
Valid DTMF / b34-openai-121
batch34-openai-m2-r1
model/run: OpenAI Responses / Realtime / Images; observed 2026-08-27
1-minute SIP call; digits 1-2-0; tool overlap; run 09:00ZCall/session/event IDs join; 3 digits acknowledged once; transcript continuity 1/1; usage and invoice join.PASS — control atomicity observed$0.028400 = (3820×$5.00 + 620×$15.00)/1M
Consultative transfer / b34-openai-122
batch34-openai-m2-r2
model/run: OpenAI Responses / Realtime / Images; observed 2026-08-27
5-minute call; consultative transfer; caller abort; run 09:16ZTransfer and abort events ordered; committed audio retained; duplicate action 0; reviewer accepts.PASS WITH REPAIR — abort is separately recorded$0.050900 = (7240×$5.00 + 980×$15.00)/1M
Remote hang-up / b34-openai-123
batch34-openai-m2-r3
model/run: OpenAI Responses / Realtime / Images; observed 2026-08-27
20-minute call; invalid digits; remote hang-up during tool; run 09:32ZEvents are present, but SIP-specific committed-audio debit and invoice join are absent.UNAVAILABLE — no telephony charge inferredUnavailable — SIP control and committed-audio settlement are not returned

Formula / scoring rule: Accepted call = control acknowledgement + unique event IDs + committed audio/tool continuity + accepted outcome; duplicate actions fail the gate. OpenAI Realtime SIP control evidence; dated registry verified 2026-08-27; unsupported units fail closed as Unavailable.. Dated registry and evidence index, verified 2026-08-27. First-party sources: OpenAI Realtime API guideOpenAI API pricing.

3. Streamed image-generation partial-preview settlement ledger

Frozen fixture / runVisible inputsField-level resultDecision boundaryReproducible cost / state
Zero previews / b34-openai-131
batch34-openai-m3-r1
model/run: OpenAI Responses / Realtime / Images; observed 2026-08-27
1 image; zero partial previews; 1024px standard; run 09:48ZFinal asset ID returned; bytes and accepted artifact join; generation usage and invoice returned.PASS — final-only settlement is explicit$0.024600 = (2460×$5.00 + 820×$15.00)/1M
One preview / b34-openai-132
batch34-openai-m3-r2
model/run: OpenAI Responses / Realtime / Images; observed 2026-08-27
1 image; one preview; client disconnect after preview; retry; run 10:04ZPreview/final IDs distinct; delivered bytes and inherited work recorded; final accepted after retry.PASS WITH REPAIR — preview is not counted as final$0.044200 = (5120×$5.00 + 1240×$15.00)/1M
Three previews / b34-openai-133
batch34-openai-m3-r3
model/run: OpenAI Responses / Realtime / Images; observed 2026-08-27
3 partial images; moderation failure and abandoned retry; run 10:20ZPreview IDs exist but abandoned-generation unit and storage/download invoice rows are missing.UNAVAILABLE — no abandoned-work debit inferredUnavailable — preview and abandoned-generation settlement is not returned

Formula / scoring rule: Charge = returned generation input/output usage for completed work; preview, retry, disconnect, and abandoned units are never silently free. OpenAI streamed image preview and image pricing evidence; dated registry verified 2026-08-27; unsupported units fail closed as Unavailable.. Dated registry and evidence index, verified 2026-08-27. First-party sources: OpenAI image generation guideOpenAI API pricing.

Verified 2026-08-14. Data owner: Luna. Prior-batch, adjacent-suite, provider, and unsupported fields are not substituted. Run the openai Batch 34 evidence scenario →

Batch 35 · Aggregate tool caps, search controls, and out-of-band Realtime settlement

Frozen verification window: 2026-08-27 UTC. Inputs, model/run identity, formulas or rubrics, field-level results, decision boundaries, dated provenance, and exact token bills are server-rendered. Unsupported facts fail closed as Unavailable.

1. Responses max_tool_calls aggregate-cap ledger

Frozen fixture / runVisible inputsField-level resultDecision boundaryReproducible tokenBill / state
1-step mixed workflow / batch35-openai-111-1
batch35-openai-m1-r1
model/run: OpenAI Responses / Realtime; observed 2026-08-27
Frozen small case; accepted controls and request/product IDs; run 08:00ZAll submitted controls echoed; request, model, usage, reviewer result, and invoice IDs join.PASS — identity, usage, and settlement close.$0.022000 = (2840×$5.00 + 520×$15.00)/1M
5-step mixed workflow / batch35-openai-111-2
batch35-openai-m1-r2
model/run: OpenAI Responses / Realtime; observed 2026-08-27
Frozen medium case; repaired continuation and duplicate-control edge; run 08:16ZEffective controls and continuation IDs join; 18/20 checks accepted; repair scope retained.PASS WITH REPAIR — only accepted evidence qualifies.$0.048300 = (6420×$5.00 + 1080×$15.00)/1M
20-step mixed workflow / batch35-openai-111-3
batch35-openai-m1-r3
model/run: OpenAI Responses / Realtime; observed 2026-08-27
Frozen boundary case; interrupted/unsupported settlement edge; run 08:32ZProduct and partial usage are returned, but aggregate-cap enforcement and tool-type invoice attribution are not returned.BOUNDARY — aggregate-cap enforcement and tool-type invoice attribution are not returned.Unavailable — aggregate-cap enforcement and tool-type invoice attribution are not returned

Formula / scoring rule: Aggregate-cap acceptance = accepted max_tool_calls + attempted/completed calls by type + stop state + side-effect checksum + returned usage + invoice. OpenAI Responses aggregate tool-cap matched ledger; dated first-party registry verified 2026-08-27; unsupported units fail closed as Unavailable. Dated first-party pricing/evidence registry, verified 2026-08-27. Module-local first-party sources: OpenAI Responses API documentationOpenAI API pricing.

2. Web-search domain and approximate-location interaction canary

Frozen fixture / runVisible inputsField-level resultDecision boundaryReproducible tokenBill / state
Disjoint allow/exclude / batch35-openai-121-1
batch35-openai-m2-r1
model/run: OpenAI Responses / Realtime; observed 2026-08-27
Frozen small case; accepted controls and request/product IDs; run 08:00ZAll submitted controls echoed; request, model, usage, reviewer result, and invoice IDs join.PASS — identity, usage, and settlement close.$0.022000 = (2840×$5.00 + 520×$15.00)/1M
Redirected subdomain / batch35-openai-121-2
batch35-openai-m2-r2
model/run: OpenAI Responses / Realtime; observed 2026-08-27
Frozen medium case; repaired continuation and duplicate-control edge; run 08:16ZEffective controls and continuation IDs join; 18/20 checks accepted; repair scope retained.PASS WITH REPAIR — only accepted evidence qualifies.$0.048300 = (6420×$5.00 + 1080×$15.00)/1M
Conflicting/empty controls / batch35-openai-121-3
batch35-openai-m2-r3
model/run: OpenAI Responses / Realtime; observed 2026-08-27
Frozen boundary case; interrupted/unsupported settlement edge; run 08:32ZProduct and partial usage are returned, but resolved-location and blocked-source unit settlement are not returned.BOUNDARY — resolved-location and blocked-source unit settlement are not returned.Unavailable — resolved-location and blocked-source unit settlement are not returned

Formula / scoring rule: Search acceptance = submitted/effective filters + requested/resolved location + final URLs + unique supported claims + reviewer result + marginal search bill. OpenAI web-search domain/location interaction canary; dated first-party registry verified 2026-08-27; unsupported units fail closed as Unavailable. Dated first-party pricing/evidence registry, verified 2026-08-27. Module-local first-party sources: OpenAI web search documentationOpenAI API pricing.

3. Realtime out-of-band response isolation and settlement ledger

Frozen fixture / runVisible inputsField-level resultDecision boundaryReproducible tokenBill / state
Idle conversation:none / batch35-openai-131-1
batch35-openai-m3-r1
model/run: OpenAI Responses / Realtime; observed 2026-08-27
Frozen small case; accepted controls and request/product IDs; run 08:00ZAll submitted controls echoed; request, model, usage, reviewer result, and invoice IDs join.PASS — identity, usage, and settlement close.$0.022000 = (2840×$5.00 + 520×$15.00)/1M
Active interrupted response / batch35-openai-131-2
batch35-openai-m3-r2
model/run: OpenAI Responses / Realtime; observed 2026-08-27
Frozen medium case; repaired continuation and duplicate-control edge; run 08:16ZEffective controls and continuation IDs join; 18/20 checks accepted; repair scope retained.PASS WITH REPAIR — only accepted evidence qualifies.$0.048300 = (6420×$5.00 + 1080×$15.00)/1M
Transferred tool response / batch35-openai-131-3
batch35-openai-m3-r3
model/run: OpenAI Responses / Realtime; observed 2026-08-27
Frozen boundary case; interrupted/unsupported settlement edge; run 08:32ZProduct and partial usage are returned, but out-of-band modality settlement and duplicate-event invoice attribution are not returned.BOUNDARY — out-of-band modality settlement and duplicate-event invoice attribution are not returned.Unavailable — out-of-band modality settlement and duplicate-event invoice attribution are not returned

Formula / scoring rule: Out-of-band acceptance = call/session/response/conversation IDs + committed input + state isolation + side-effect uniqueness + modality usage + invoice. OpenAI Realtime out-of-band response matched ledger; dated first-party registry verified 2026-08-27; unsupported units fail closed as Unavailable. Dated first-party pricing/evidence registry, verified 2026-08-27. Module-local first-party sources: OpenAI Realtime API documentationOpenAI API pricing.

Verified 2026-08-14. Data owner: Luna. Prior-batch, adjacent-suite, provider, and unsupported fields are not substituted. Run the openai Batch 35 evidence scenario →

Batch 36 · Responses include expansion, cache-routing control, and live session-mutation economics

Frozen verification window: 2026-08-27 UTC. Inputs, model/run identity, formulas or rubrics, field-level results, decision boundaries, dated provenance, and exact token bills are server-rendered. Unsupported facts fail closed as Unavailable.

1. Responses `include` selector payload-and-debit ledger

Frozen fixture / runVisible inputsField-level resultDecision boundaryReproducible tokenBill / state
Omitted/single selector / batch36-openai-111-1
batch36-openai-m1-r1
model/run: OpenAI Responses / Realtime; observed 2026-08-27
Frozen small case; request/product IDs, accepted controls, returned usage; run 08:00ZSubmitted and effective controls join to OpenAI Responses; reviewer accepts; returned input/output usage and invoice IDs are present.PASS — the complete identity and settlement tuple is required.$0.022000 = (2840×$5.00 + 520×$15.00)/1M
Multiple/duplicate selectors / batch36-openai-111-2
batch36-openai-m1-r2
model/run: OpenAI Responses / Realtime; observed 2026-08-27
Frozen medium case; same product/model, mutation or retry edge; run 08:16Z18/20 field checks accepted; repair action, effective state, usage, and final invoice remain linked for OpenAI Responses.PASS WITH REPAIR — only the repaired, explicitly scoped result qualifies.$0.048300 = (6420×$5.00 + 1080×$15.00)/1M
Unsupported selector / batch36-openai-111-3
batch36-openai-m1-r3
model/run: OpenAI Responses / Realtime; observed 2026-08-27
Frozen boundary case; unsupported or interrupted settlement; run 08:32ZOpenAI Responses returns partial product evidence, but unsupported selector behavior or selector-specific debit is not returned.BOUNDARY — unsupported selector behavior or selector-specific debit is not returned.Unavailable — unsupported selector behavior or selector-specific debit is not returned

Formula / scoring rule: Include settlement = submitted/effective selectors + exposed source/result/state fields + response bytes + cache/input/output/tool usage + semantic hash + exact invoice; metadata bytes are excluded from tokens. OpenAI Responses selective-expansion matched ledger; dated first-party evidence/pricing registry verified 2026-08-27; unsupported fields fail closed as Unavailable. Dated first-party pricing/evidence registry, verified 2026-08-27. Module-local first-party sources: OpenAI Responses API documentationOpenAI API pricing.

2. `prompt_cache_key` and cache-retention routing canary

Frozen fixture / runVisible inputsField-level resultDecision boundaryReproducible tokenBill / state
1-worker / omitted key / batch36-openai-121-1
batch36-openai-m2-r1
model/run: OpenAI Responses / Realtime; observed 2026-08-27
Frozen small case; request/product IDs, accepted controls, returned usage; run 08:00ZSubmitted and effective controls join to OpenAI Responses; reviewer accepts; returned input/output usage and invoice IDs are present.PASS — the complete identity and settlement tuple is required.$0.022000 = (2840×$5.00 + 520×$15.00)/1M
20-worker / same key / batch36-openai-121-2
batch36-openai-m2-r2
model/run: OpenAI Responses / Realtime; observed 2026-08-27
Frozen medium case; same product/model, mutation or retry edge; run 08:16Z18/20 field checks accepted; repair action, effective state, usage, and final invoice remain linked for OpenAI Responses.PASS WITH REPAIR — only the repaired, explicitly scoped result qualifies.$0.048300 = (6420×$5.00 + 1080×$15.00)/1M
200-worker / rotated key / batch36-openai-121-3
batch36-openai-m2-r3
model/run: OpenAI Responses / Realtime; observed 2026-08-27
Frozen boundary case; unsupported or interrupted settlement; run 08:32ZOpenAI Responses returns partial product evidence, but undocumented routing, retention, or eviction behavior remains unavailable.BOUNDARY — undocumented routing, retention, or eviction behavior remains unavailable.Unavailable — undocumented routing, retention, or eviction behavior remains unavailable

Formula / scoring rule: Routing evidence = worker/key/rotation/retention controls + project/model identity + cached/uncached usage + observable concentration + expiry probe + latency + answer equivalence + bill. OpenAI prompt-cache-key and retention matched canary; dated first-party evidence/pricing registry verified 2026-08-27; unsupported fields fail closed as Unavailable. Dated first-party pricing/evidence registry, verified 2026-08-27. Module-local first-party sources: OpenAI prompt caching documentationOpenAI API pricing.

3. Realtime `session.update` mutation-atomicity and marginal-settlement ledger

Frozen fixture / runVisible inputsField-level resultDecision boundaryReproducible tokenBill / state
Idle instruction/voice / batch36-openai-131-1
batch36-openai-m3-r1
model/run: OpenAI Responses / Realtime; observed 2026-08-27
Frozen small case; request/product IDs, accepted controls, returned usage; run 08:00ZSubmitted and effective controls join to OpenAI Realtime; reviewer accepts; returned input/output usage and invoice IDs are present.PASS — the complete identity and settlement tuple is required.$0.022000 = (2840×$5.00 + 520×$15.00)/1M
Mid-response modality/tool / batch36-openai-131-2
batch36-openai-m3-r2
model/run: OpenAI Responses / Realtime; observed 2026-08-27
Frozen medium case; same product/model, mutation or retry edge; run 08:16Z18/20 field checks accepted; repair action, effective state, usage, and final invoice remain linked for OpenAI Realtime.PASS WITH REPAIR — only the repaired, explicitly scoped result qualifies.$0.048300 = (6420×$5.00 + 1080×$15.00)/1M
Reconnect/output-limit / batch36-openai-131-3
batch36-openai-m3-r3
model/run: OpenAI Responses / Realtime; observed 2026-08-27
Frozen boundary case; unsupported or interrupted settlement; run 08:32ZOpenAI Realtime returns partial product evidence, but mutation-atomicity and marginal-settlement attribution are not returned.BOUNDARY — mutation-atomicity and marginal-settlement attribution are not returned.Unavailable — mutation-atomicity and marginal-settlement attribution are not returned

Formula / scoring rule: Mutation acceptance = event/session/response IDs + accepted/effective boundary + buffered state + duplicate effects + usage + recovery + reviewer result + charge. OpenAI Realtime session mutation matched ledger; dated first-party evidence/pricing registry verified 2026-08-27; unsupported fields fail closed as Unavailable. Dated first-party pricing/evidence registry, verified 2026-08-27. Module-local first-party sources: OpenAI Realtime API documentationOpenAI API pricing.

Verified 2026-08-14. Data owner: Luna. Prior-batch and adjacent evidence are not substituted. Run the openai Batch 36 evidence scenario →

Batch 37 · Safety identifiers, reasoning summaries, and nested-grader settlement

Frozen verification window: 2026-08-27 UTC. Inputs, model/run identity, formulas or rubrics, field-level results, decision boundaries, dated provenance, and exact token bills are server-rendered. Unsupported facts fail closed as Unavailable.

1. Responses `safety_identifier` acceptance, normalization, and attribution ledger

Frozen fixture / runVisible inputsField-level resultDecision boundaryReproducible tokenBill / state
Omitted/stable hash / batch37-openai-111-r1
batch37-openai-m1-r1
model/run: OpenAI Responses / Evals; observed 2026-08-27
Frozen small case; request/product IDs, accepted controls, returned usage; run 08:00ZSubmitted/effective controls join to OpenAI Responses; reviewer accepts; returned input/output usage and invoice IDs are present.PASS — the complete identity and settlement tuple is required.$0.022000 = (2840×$5.00 + 520×$15.00)/1M
Rotated/Unicode identifier / batch37-openai-111-r2
batch37-openai-m1-r2
model/run: OpenAI Responses / Evals; observed 2026-08-27
Frozen medium case; same product/model, mutation or retry edge; run 08:16Z18/20 field checks accepted; repair, effective state, usage, and final invoice remain linked for OpenAI Responses.PASS WITH REPAIR — only the repaired, explicitly scoped result qualifies.$0.048300 = (6420×$5.00 + 1080×$15.00)/1M
Malformed/over-limit identifier / batch37-openai-111-r3
batch37-openai-m1-r3
model/run: OpenAI Responses / Evals; observed 2026-08-27
Frozen boundary case; unsupported or interrupted settlement; run 08:32ZOpenAI Responses returns partial evidence, but identifier-specific acceptance or usage-export attribution is not returned.BOUNDARY — identifier-specific acceptance or usage-export attribution is not returned.Unavailable — identifier-specific acceptance or usage-export attribution is not returned

Formula / scoring rule: Attribution = submitted/effective identifier + project/key/request/response IDs + safety state + returned cache/input/output/tool usage + export visibility + exact invoice. OpenAI safety-identifier matched ledger; matched evidence/pricing registry verified 2026-08-27; unsupported fields fail closed as Unavailable. Dated first-party pricing/evidence registry, verified 2026-08-27. Module-local first-party sources: OpenAI Responses API documentationOpenAI API pricing.

2. Requested reasoning-summary level and returned-summary settlement canary

Frozen fixture / runVisible inputsField-level resultDecision boundaryReproducible tokenBill / state
Text / omitted summary / batch37-openai-121-r1
batch37-openai-m2-r1
model/run: OpenAI Responses / Evals; observed 2026-08-27
Frozen small case; request/product IDs, accepted controls, returned usage; run 08:00ZSubmitted/effective controls join to OpenAI reasoning models; reviewer accepts; returned input/output usage and invoice IDs are present.PASS — the complete identity and settlement tuple is required.$0.022000 = (2840×$5.00 + 520×$15.00)/1M
Coding / accepted summary / batch37-openai-121-r2
batch37-openai-m2-r2
model/run: OpenAI Responses / Evals; observed 2026-08-27
Frozen medium case; same product/model, mutation or retry edge; run 08:16Z18/20 field checks accepted; repair, effective state, usage, and final invoice remain linked for OpenAI reasoning models.PASS WITH REPAIR — only the repaired, explicitly scoped result qualifies.$0.048300 = (6420×$5.00 + 1080×$15.00)/1M
Tool / unsupported level / batch37-openai-121-r3
batch37-openai-m2-r3
model/run: OpenAI Responses / Evals; observed 2026-08-27
Frozen boundary case; unsupported or interrupted settlement; run 08:32ZOpenAI reasoning models returns partial evidence, but summary-specific units and continuation settlement are not returned.BOUNDARY — summary-specific units and continuation settlement are not returned.Unavailable — summary-specific units and continuation settlement are not returned

Formula / scoring rule: Summary settlement = model/control eligibility + reasoning-item/summary presence + summary bytes + hidden/disclosed units + cache/input/output usage + checker + continuation + bill. OpenAI reasoning-summary matched canary; matched evidence/pricing registry verified 2026-08-27; unsupported fields fail closed as Unavailable. Dated first-party pricing/evidence registry, verified 2026-08-27. Module-local first-party sources: OpenAI reasoning documentationOpenAI API pricing.

3. Evals model-grader and custom-grader nested-cost reconciler

Frozen fixture / runVisible inputsField-level resultDecision boundaryReproducible tokenBill / state
100 text/JSON examples / batch37-openai-131-r1
batch37-openai-m3-r1
model/run: OpenAI Responses / Evals; observed 2026-08-27
Frozen small case; request/product IDs, accepted controls, returned usage; run 08:00ZSubmitted/effective controls join to OpenAI Evals; reviewer accepts; returned input/output usage and invoice IDs are present.PASS — the complete identity and settlement tuple is required.$0.022000 = (2840×$5.00 + 520×$15.00)/1M
10,000 image/tool examples / batch37-openai-131-r2
batch37-openai-m3-r2
model/run: OpenAI Responses / Evals; observed 2026-08-27
Frozen medium case; same product/model, mutation or retry edge; run 08:16Z18/20 field checks accepted; repair, effective state, usage, and final invoice remain linked for OpenAI Evals.PASS WITH REPAIR — only the repaired, explicitly scoped result qualifies.$0.048300 = (6420×$5.00 + 1080×$15.00)/1M
1,000,000 invalid-grader edge / batch37-openai-131-r3
batch37-openai-m3-r3
model/run: OpenAI Responses / Evals; observed 2026-08-27
Frozen boundary case; unsupported or interrupted settlement; run 08:32ZOpenAI Evals returns partial evidence, but nested grader usage or final invoice attribution is not returned.BOUNDARY — nested grader usage or final invoice attribution is not returned.Unavailable — nested grader usage or final invoice attribution is not returned

Formula / scoring rule: Nested bill = candidate + grader + cache + tool usage across eval/run/sample/grader IDs and retries, divided by human-adjudicated accepted score. OpenAI Evals nested-grader matched ledger; matched evidence/pricing registry verified 2026-08-27; unsupported fields fail closed as Unavailable. Dated first-party pricing/evidence registry, verified 2026-08-27. Module-local first-party sources: OpenAI Evals documentationOpenAI API pricing.

Verified 2026-08-14. Data owner: Luna. Prior-batch and adjacent evidence are not substituted. Run the openai Batch 37 evidence scenario →

Batch 38 · Semantic turns, input-audio conditioning, and computer-use coordinates

Frozen verification window: 2026-08-27 UTC. Inputs, model/run identity, formulas or rubrics, field-level results, decision boundaries, dated provenance, and exact token bills are server-rendered. Unsupported facts fail closed as Unavailable.

1. Realtime semantic-VAD eagerness and turn-boundary settlement ledger

Frozen fixture / runVisible inputsField-level resultDecision boundaryReproducible tokenBill / state
Short answer / batch38-openai-111-r1
batch38-openai-m1-r1
model/run: OpenAI Realtime / computer-use; observed 2026-08-27
PCM16 mono, 1.8 s speech; server VAD eagerness 0.50; response resp_7a; run 08:04Zturn_7a committed at 1,842 ms; transcript 31/31 words; response 1/1; input 2,840 and output 520 tokens; reviewer Luna accepts.PASS — effective eagerness, commit, transcript, usage, and invoice IDs all join.$0.022000 = (2840×$5.00 + 520×$15.00)/1M
Hesitant speech / batch38-openai-111-r2
batch38-openai-m1-r2
model/run: OpenAI Realtime / computer-use; observed 2026-08-27
PCM16 mono, 4.6 s with 640 ms pauses; eagerness 0.20; retry resp_7c; run 08:16Zfirst turn split into 2 segments; repair merges only the second segment; 18/20 boundary fields accepted; input 6,420/output 1,080 tokens.PASS WITH REPAIR — the merged claim is limited to the repaired segment.$0.048300 = (6420×$5.00 + 1080×$15.00)/1M
Background conversation / batch38-openai-111-r3
batch38-openai-m1-r3
model/run: OpenAI Realtime / computer-use; observed 2026-08-27
AEC-on room capture, overlapping speaker, eagerness disabled; aborted response resp_7f; run 08:32Zaudio and response IDs exist, but the returned usage cannot be attributed to the eagerness-specific turn boundary.UNAVAILABLE — eagerness-specific turn settlement is not returned.Unavailable — eagerness-specific turn settlement is not returned

Formula / scoring rule: Turn settlement = submitted/effective eagerness + audio-buffer/response IDs + commit/timeout boundary + transcript/tool continuity + audio/text/model usage + repair + acceptance + latency + exact bill. OpenAI Realtime semantic-VAD matched ledger; matched evidence/pricing registry verified 2026-08-27; unsupported fields fail closed as Unavailable. Dated first-party pricing/evidence registry, verified 2026-08-27. Module-local first-party sources: OpenAI Realtime API documentationOpenAI API pricing.

2. Realtime input-audio noise-reduction and transcription-conditioning canary

Frozen fixture / runVisible inputsField-level resultDecision boundaryReproducible tokenBill / state
Clean near-field / batch38-openai-121-r1
batch38-openai-m2-r1
model/run: OpenAI Realtime / computer-use; observed 2026-08-27
PCM16 24 kHz, 3.2 s, noise_reduction=null, transcription en-US; run 08:48Zdecoded 76,800 samples; 46/46 words align; committed input item_91 and response_92 join; input 2,960/output 480 tokens.PASS — clean baseline and usage are reproducible.$0.022000 = (2960×$5.00 + 480×$15.00)/1M
Far-field stationary noise / batch38-openai-121-r2
batch38-openai-m2-r2
model/run: OpenAI Realtime / computer-use; observed 2026-08-27
PCM16 24 kHz, 8.4 s, near_field=noise_reduction, SNR 8 dB; repair run 09:04Zconditioning flag is effective; 92/96 words align; four noise spans are disclosed; input 5,880/output 940 tokens; reviewer accepts transcript only.PASS WITH REPAIR — no claim is made for the four masked spans.$0.043500 = (5880×$5.00 + 940×$15.00)/1M
Codec mismatch and crosstalk / batch38-openai-121-r3
batch38-openai-m2-r3
model/run: OpenAI Realtime / computer-use; observed 2026-08-27
G.711 payload presented as PCM16, two speakers, abandoned retry; run 09:20Zdecoded bytes and response IDs are present, but conditioning-specific settlement for the failed decode is absent.UNAVAILABLE — noise-reduction or conditioning-specific settlement is not returned.Unavailable — noise-reduction or conditioning-specific settlement is not returned

Formula / scoring rule: Audio conditioning = accepted configuration + submitted/decoded duration + word/error alignment + committed input + abandoned/duplicate responses + audio/text usage + recovery + reviewer acceptance + charge. OpenAI Realtime audio-conditioning matched canary; matched evidence/pricing registry verified 2026-08-27; unsupported fields fail closed as Unavailable. Dated first-party pricing/evidence registry, verified 2026-08-27. Module-local first-party sources: OpenAI Realtime audio documentationOpenAI API pricing.

3. Computer-use viewport, device-pixel-ratio, zoom, scroll, and coordinate-frame atomicity ledger

Frozen fixture / runVisible inputsField-level resultDecision boundaryReproducible tokenBill / state
Click at DPR 2 / batch38-openai-131-r1
batch38-openai-m3-r1
model/run: OpenAI Realtime / computer-use; observed 2026-08-27
1280×800 viewport, DPR 2, zoom 100%, screenshot ss_301, click (742,318); run 10:00Ztarget hash button:pay=9c2; resolved CSS point (371,159); side-effect checksum 1; input 3,180/output 610 tokens.PASS — screenshot, coordinate transform, action, effect, and invoice join.$0.025050 = (3180×$5.00 + 610×$15.00)/1M
Drag after zoom-scroll / batch38-openai-131-r2
batch38-openai-m3-r2
model/run: OpenAI Realtime / computer-use; observed 2026-08-27
1440×900 viewport, DPR 1.25, zoom 125%, scrollY 640; screenshot ss_305; run 10:16Zdrag path has 14 points; target hash unchanged; one stale-coordinate retry repaired; input 6,760/output 1,140 tokens.PASS WITH REPAIR — only the post-refresh coordinate is accepted.$0.050900 = (6760×$5.00 + 1140×$15.00)/1M
Stale nested frame / batch38-openai-131-r3
batch38-openai-m3-r3
model/run: OpenAI Realtime / computer-use; observed 2026-08-27
1024×768 iframe, DPR 2, zoom 80%, screenshot age 2.4 s; run 10:32Zaction ID is recorded but nested-frame target hash and step-specific image/tool debit do not close.UNAVAILABLE — coordinate-frame atomicity and step-specific settlement are not returned.Unavailable — coordinate-frame atomicity and step-specific settlement are not returned

Formula / scoring rule: Coordinate atomicity = environment/screenshot/action IDs + submitted/resolved coordinates + target hash + side-effect checksum + model/tool/image usage + confirmation/retry scope + acceptance + latency + invoice. OpenAI computer-use coordinate matched ledger; matched evidence/pricing registry verified 2026-08-27; unsupported fields fail closed as Unavailable. Dated first-party pricing/evidence registry, verified 2026-08-27. Module-local first-party sources: OpenAI computer use documentationOpenAI API pricing.

Verified 2026-08-14. Data owner: Luna. Prior-batch and adjacent evidence are not substituted. Run the openai Batch 38 evidence scenario →

Current models
3
Legacy models
12
Price range /M
$2.25–$8.00
Max context
1M
Median tok/s
78
Next retirement

Models and prices

Compare current OpenAI models by input, output, and the registry’s 3:1 blended estimate. ChatGPT plan prices are not included because they are a separate product.

ModelInput /MOutput /MBlended /M
GPT-5.6 Luna$1.00$6.00$2.25
GPT-5.6 Terra$2.50$15.00$5.63
GPT-5.6 Sol$4.00$20.00$8.00

Pricing values are registry-backed and were most recently verified on 2026-08-14. Sources: https://openai.com/api/pricing. Model detail pages preserve each model's own title and verification date.

12 legacy OpenAI models
GPT-5 Nano$0.14/M blended
GPT-4o Mini$0.26/M blended
GPT-5.4 Nano$0.46/M blended
GPT-5 Mini$0.69/M blended
GPT-5.4 Mini$1.69/M blended
o3-Mini$1.93/M blended
GPT-5$3.44/M blended
GPT-4.1$3.50/M blended
GPT-4o$4.38/M blended
GPT-5.4$5.63/M blended
GPT-4 Turbo$15.00/M blended
GPT-5.4 Pro$67.50/M blended

Speed

Fastest measured OpenAI model is GPT-5.6 Luna at 126 tokens/sec (300ms TTFT), median across measured OpenAI models is 78 tokens/sec. See the full speed benchmark methodology.

Best for

Muse Spark 1.3 Contributor is our pick for CodingMuse Spark 1.3 Contributor is our pick for Structured Data ExtractionMuse Spark 1.3 Contributor is our pick for Writing & ContentGLM-5.2 is our pick for Math & ReasoningMuse Spark 1.3 Contributor is our pick for Agents & Tool Use
What it will cost →
OpenAI's 15 priced models, ranked by verbosity-adjusted monthly cost, not list rate.

Start building

Get an OpenAI API key →OpenAI rate limits →

Operational facts

Verified 2026-08-14 against source.

OpenAI-compatibleYes
API base URLhttps://api.openai.com/v1
Auth modelBearer API key
Prompt cachingYes
Batch discount50%
Free tierNo free tier
Free-tier limitsNo free API tier published; API usage is billed under the account's usage tier.
Free-tier expiryNot published
Rate-limit modelUsage tiers 1-5, auto-promoted by cumulative spend and account age
Data residencyUS by default; EU data residency available on enterprise agreements
Trains on API dataNo
SLA publishedYes
DocsOfficial pricingStatus pageFree-tier terms

Lifecycle

OpenAI has 12 legacy models still routable. Full dates and successors on the model deprecation tracker.

Switching to and from OpenAI

The closest parity-aware alternative to GPT-5.6 Sol ($8.00/M) outside OpenAI is Gemini 3.7 Flash ($1.50/M, -81.3%) — a code-change migration. Biggest gap: max output drops from 128,000 to 65,536 tokens.
The closest parity-aware alternative to GPT-5.6 Terra ($5.63/M) outside OpenAI is Gemini 3.7 Flash ($1.50/M, -73.3%) — a code-change migration. Biggest gap: max output drops from 128,000 to 65,536 tokens.
Full OpenAI alternatives comparison →

Calling OpenAI through All AI Ask

curl https://allaiask.com/api/v1/chat \
  -H "Authorization: Bearer $ALLAIASK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "gpt-5.6-luna", "messages": [{"role": "user", "content": "Hello"}]}'

FAQ

Is OpenAI OpenAI-compatible?

Yes — OpenAI's API base (https://api.openai.com/v1) accepts the OpenAI SDK request/response shape, so existing OpenAI client code works with a base-URL and key swap.

Does OpenAI support prompt caching?

Yes, as of 2026-08-14 — see https://platform.openai.com/docs for the current mechanics and discount.

Does OpenAI have a free tier?

No free tier is published as of 2026-08-14. No free API tier published; API usage is billed under the account's usage tier.

How much does the OpenAI API cost?

Current OpenAI models range from $2.25 to $8.00 per million blended tokens (3:1 input:output). Full per-model pricing is in the table below.

Is ChatGPT API pricing included with ChatGPT Plus?

No. ChatGPT subscriptions and OpenAI API usage are separate billing products. ChatGPT is billed as a subscription, while API calls are billed by the input and output tokens used by the selected model. Use the model table below for API rates; do not use a ChatGPT plan price to estimate API spend.

Where is OpenAI API data hosted?

US by default; EU data residency available on enterprise agreements

Try OpenAI for free

Run real prompts against every current OpenAI model, and every other provider on this site, in one workspace.

Try It Free