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.
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 model | Input | Cached input | Output | Batch | Verified |
|---|---|---|---|---|---|
| GPT-5 Nano | $0.050/M | $0.005/M read / 1800s TTL | $0.400/M | 50% off eligible Batch API | 2026-04-06 |
| GPT-4o Mini | $0.150/M | $0.015/M read / 1800s TTL | $0.600/M | 50% off eligible Batch API | 2026-04-06 |
| GPT-5.4 Nano | $0.200/M | $0.020/M read / 1800s TTL | $1.250/M | 50% off eligible Batch API | 2026-04-06 |
| GPT-5 Mini | $0.250/M | $0.025/M read / 1800s TTL | $2.000/M | 50% off eligible Batch API | 2026-04-06 |
| GPT-5.4 Mini | $0.750/M | $0.075/M read / 1800s TTL | $4.500/M | 50% off eligible Batch API | 2026-04-06 |
| o3-Mini | $1.100/M | $0.110/M read / 1800s TTL | $4.400/M | 50% off eligible Batch API | 2026-04-06 |
| GPT-5.6 Luna | $1.000/M | $0.100/M read / 1800s TTL | $6.000/M | 50% off eligible Batch API | 2026-08-14 |
| GPT-5 | $1.250/M | $0.125/M read / 1800s TTL | $10.000/M | 50% off eligible Batch API | 2026-04-06 |
| GPT-4.1 | $2.000/M | $0.200/M read / 1800s TTL | $8.000/M | 50% off eligible Batch API | 2026-04-06 |
| GPT-4o | $2.500/M | $0.250/M read / 1800s TTL | $10.000/M | 50% off eligible Batch API | 2026-04-06 |
| GPT-5.6 Terra | $2.500/M | $0.250/M read / 1800s TTL | $15.000/M | 50% off eligible Batch API | 2026-08-14 |
| GPT-5.4 | $2.500/M | $0.250/M read / 1800s TTL | $15.000/M | 50% off eligible Batch API | 2026-04-06 |
| GPT-5.6 Sol | $4.000/M | $0.400/M read / 1800s TTL | $20.000/M | 50% off eligible Batch API | 2026-08-14 |
| GPT-4 Turbo | $10.000/M | $1.000/M read / 1800s TTL | $30.000/M | 50% off eligible Batch API | 2026-04-06 |
| GPT-5.4 Pro | $30.000/M | $3.000/M read / 1800s TTL | $180.000/M | 50% off eligible Batch API | 2026-04-06 |
ChatGPT subscription vs API billing
| Choice | Decision rule | Evidence |
|---|---|---|
| Billing | ChatGPT plan never includes API credits | Separate metered API account |
| Input/cached/output | Token prices are model rows | Use calculator for workload totals |
| Limits/auth | Usage tiers 1-5, auto-promoted by cumulative spend and account age · Bearer API key | Verify before production |
Adoption map: what is documented versus unavailable
| Dimension | Recorded value | Decision consequence |
|---|---|---|
| Authentication | Bearer API key · https://api.openai.com/v1 | Use in procurement checklist |
| Compatibility | OpenAI-native; baseline request/response shape | Use in procurement checklist |
| Limits | Usage tiers 1–5; auto-promoted by cumulative spend and account age | Load-test and set backoff |
| Retention/training | API data not used to train models; US default, EU residency on enterprise agreements | Do not infer a positive guarantee |
| Calculator-ready example | 2,400 input + 350 output tokens/request; 200,000 requests/month; 30% cacheable; batch eligible | Use in procurement checklist |
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 surface | Fixed units | Calculated amount | Source / boundary |
|---|---|---|---|
| Standard input | 80,000 tokens | $0.08 | Input $/M × tokens ÷ 1M |
| Cached input | 80,000 tokens | Unavailable | Cache read unit/TTL not independently sourced |
| Output + reasoning output | 8,000 tokens | $0.05 | Output rate; reasoning split unavailable |
| Batch | same token shape, async | $0.06 | 50% documented batch assumption; tool units excluded |
| Built-in tools / search / storage | 4 tool, 2 search | Unavailable | Per-call and storage units are not converted to tokens |
| Non-token media | 1 image/audio/video unit | Unavailable | Compatible 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 ID | Price verified | 80K/8K replay bill | Lifecycle/spec record | Alias promotion canary |
|---|---|---|---|---|
| gpt-5.6-luna | 2026-08-14 | $0.13 | Current | Same prompt + tool replay; multimodal parity; rollback |
| gpt-5.6-terra | 2026-08-14 | $0.32 | Current | Same prompt + tool replay; multimodal parity; rollback |
| gpt-5.6-sol | 2026-08-14 | $0.48 | Current | Same 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
| Model | Context eligibility | 80K/8K token bill | Measured TTFT + generation | 1 worker | 5 workers | 20 workers |
|---|---|---|---|---|---|---|
| GPT-5.6 Luna | 1,000,000 | $0.13 | 300ms + 63.5s | 300ms + 63.5s | 300ms + 63.5s | Unavailable |
| GPT-5.6 Terra | 1,000,000 | $0.32 | 380ms + 102.6s | 380ms + 102.6s | 380ms + 102.6s | Unavailable |
| GPT-5.6 Sol | 1,000,000 | $0.48 | 560ms + 181.8s | 560ms + 181.8s | 560ms + 181.8s | Unavailable |
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
| Conversation | Resent input | Retained state | Storage | Output | Tool units | Token bill | State accounting |
|---|---|---|---|---|---|---|---|
| 1 turn | 4,000 tokens | Unavailable | Unavailable | 800 tokens | Unavailable | $0.0088 | Undocumented accounting: Unavailable |
| 5 turns | 20,000 tokens | Unavailable | Unavailable | 4,000 tokens | Unavailable | $0.04 | Undocumented accounting: Unavailable |
| 20 turns | 80,000 tokens | Unavailable | Unavailable | 16,000 tokens | Unavailable | $0.18 | Undocumented 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
| Class | Fixed workload | Eligibility | Rate / latency promise | Bill formula | Decision |
|---|---|---|---|---|---|
| standard | 4K input / 800 output interactive | General API path | Unavailable | Token bill + sourced class surcharge, if any | Eligible only for standard path |
| priority | 4K input / 800 output interactive | Account, endpoint, deadline, and model eligibility: Unavailable | Unavailable | Token bill + sourced class surcharge, if any | Do not claim eligibility without dated source |
| flex | 4K input / 800 output interactive | Account, endpoint, deadline, and model eligibility: Unavailable | Unavailable | Token bill + sourced class surcharge, if any | Do not claim eligibility without dated source |
| batch | 20K input / 4K output async | Account, endpoint, deadline, and model eligibility: Unavailable | Documented discount may apply | Token bill × documented discount; tool units separate | Do not claim eligibility without dated source |
3. Organization/project/key chargeback canary
| Invoice field | Fixed portfolio input | Allocation key | Evidence / result |
|---|---|---|---|
| model ID | gpt-5.6-luna | Exact ID | 2026-08-14 |
| endpoint | 4K in / 800 out × 20 requests | Project / endpoint | Unavailable |
| service class | 4K in / 800 out × 20 requests | Service class | Unavailable |
| cached tokens | Unavailable | Invoice/control line item | Unavailable |
| tools | Unavailable | Invoice/control line item | Unavailable |
| failed requests | 4K in / 800 out × 20 requests | Invoice/control line item | Unavailable |
| budget alert | Unavailable | Invoice/control line item | Unavailable |
| quota | Unavailable | Invoice/control line item | Unavailable |
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
| Request | Preflight fields | Returned fields | Variance / decision |
|---|---|---|---|
| Chat Completions · 4K/800 | input 4,000; output 800; reasoning/tool/retained state: Unavailable | input/output: Unavailable | Unavailable |
| Responses · 4K/800 | input 4,000; output 800; reasoning/tool/retained state: Unavailable | input/output: Unavailable | Unavailable |
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
| Workflow | Storage | Retention | Training use | Regional processing | ZDR eligibility | Built-in tools | Files | Background state | Gate |
|---|---|---|---|---|---|---|---|---|---|
| Chat Completions | Unavailable | Unavailable | Unavailable | Unavailable | Unavailable | Unavailable | Unavailable | Unavailable | Excluded until source evidence |
| Responses | Unavailable | Unavailable | Unavailable | Unavailable | Unavailable | Unavailable | Unavailable | Unavailable | Excluded until source evidence |
| Responses + built-in tools | Unavailable | Unavailable | Unavailable | Unavailable | Unavailable | Unavailable | Unavailable | Unavailable | Excluded until source evidence |
| Responses + files | Unavailable | Unavailable | Unavailable | Unavailable | Unavailable | Unavailable | Unavailable | Unavailable | Excluded until source evidence |
| Responses + background | Unavailable | Unavailable | Unavailable | Unavailable | Unavailable | Unavailable | Unavailable | Unavailable | Excluded 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 × turns | Schema tokens | History/tool-result/output | Headroom | Duplicate-call spend |
|---|---|---|---|---|
| 1 tools × 1 turns | 600 | 5,000 | Unavailable | $0.0098 |
| 1 tools × 5 turns | 600 | 25,000 | Unavailable | $0.0490 |
| 1 tools × 20 turns | 600 | 100,000 | Unavailable | $0.1960 |
| 5 tools × 1 turns | 3,000 | 5,000 | Unavailable | $0.0098 |
| 5 tools × 5 turns | 3,000 | 25,000 | Unavailable | $0.0490 |
| 5 tools × 20 turns | 3,000 | 100,000 | Unavailable | $0.1960 |
| 20 tools × 1 turns | 12,000 | 5,000 | Unavailable | $0.0098 |
| 20 tools × 5 turns | 12,000 | 25,000 | Unavailable | $0.0490 |
| 20 tools × 20 turns | 12,000 | 100,000 | Unavailable | $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
| Corpus | Upload/parsing | Embedding | Storage duration | Retrieval/tool calls | Model tokens | Deletion | Amortized query cost |
|---|---|---|---|---|---|---|---|
| 10 documents | Unavailable | Unavailable | Unavailable | 1 retrieval calls | Unavailable | Unavailable | Unavailable |
| 100 documents | Unavailable | Unavailable | Unavailable | 5 retrieval calls | Unavailable | Unavailable | Unavailable |
| 1,000 documents | Unavailable | Unavailable | Unavailable | 20 retrieval calls | Unavailable | Unavailable | Unavailable |
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
| Endpoint | Schema validity | Repair calls | Replay scope | Token/tool spend | Promotion threshold |
|---|---|---|---|---|---|
| Chat Completions | Unavailable | Unavailable | Unavailable | Unavailable | Hold until dated canary |
| Responses | Unavailable | Unavailable | Unavailable | Unavailable | Hold 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
| State | Submitted | Returned | Partial retrieval | Retry exposure | Duplicate spend | Decision |
|---|---|---|---|---|---|---|
| validated | Unavailable | Unavailable | Unavailable | Unavailable | Unavailable | No lifecycle verdict |
| in-progress | Unavailable | Unavailable | Unavailable | Unavailable | Unavailable | No lifecycle verdict |
| completed | Unavailable | Unavailable | Unavailable | Unavailable | Unavailable | No lifecycle verdict |
| expired | Unavailable | Unavailable | Unavailable | Unavailable | Unavailable | No lifecycle verdict |
| cancelled | Unavailable | Unavailable | Unavailable | Unavailable | Unavailable | No lifecycle verdict |
| failed | Unavailable | Unavailable | Unavailable | Unavailable | Unavailable | No 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
| Minutes | Connection/audio | Text/reasoning | Silence/interruption | Tools/replay | Accepted-turn cost |
|---|---|---|---|---|---|
| 1 min | Unavailable | Unavailable | Unavailable | Unavailable | Unavailable |
| 5 min | Unavailable | Unavailable | Unavailable | Unavailable | Unavailable |
| 20 min | Unavailable | Unavailable | Unavailable | Unavailable | Unavailable |
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
| Task | Invocations | Evidence/execution validity | Repairs/replays | Token/tool spend | Promotion |
|---|---|---|---|---|---|
| web search | Unavailable | Unavailable | Unavailable | Unavailable | Hold |
| file search | Unavailable | Unavailable | Unavailable | Unavailable | Hold |
| code execution | Unavailable | Unavailable | Unavailable | Unavailable | Hold |
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
| Assets | Prompt/reference | Size/quality units | Moderation/retries | Accepted assets | Cost per accepted asset |
|---|---|---|---|---|---|
| 1 | Unavailable | Unavailable | Unavailable | Unavailable | Unavailable |
| 5 | Unavailable | Unavailable | Unavailable | Unavailable | Unavailable |
| 20 | Unavailable | Unavailable | Unavailable | Unavailable | Unavailable |
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 / state | Submission and polling | Response state / usage | Cancel/replay | Completed-job cost |
|---|---|---|---|---|
| submitted | Unavailable | Unavailable | Unavailable | Unavailable |
| queued / in progress | Unavailable | Unavailable | Unavailable | Unavailable |
| completed | Unavailable | Unavailable | Unavailable | Unavailable |
| failed | Unavailable | Unavailable | Unavailable | Unavailable |
| cancelled | Unavailable | Unavailable | Unavailable | Unavailable |
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 state | Signature / event ID | Duplicate / order | Retries / fetch | Reviewer / processing cost |
|---|---|---|---|---|
| completed | Unavailable | Unavailable | Unavailable | Unavailable |
| failed | Unavailable | Unavailable | Unavailable | Unavailable |
| cancelled | Unavailable | Unavailable | Unavailable | Unavailable |
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
| Workflow | Eligibility / control | Round-trip / rejected fields | Usage / reconstruction | Replay cost / gate |
|---|---|---|---|---|
| stateless | Unavailable | Unavailable | Unavailable | Unavailable |
| stored | Unavailable | Unavailable | Unavailable | Unavailable |
| zero-data-retention | Unavailable | Unavailable | Unavailable | Unavailable |
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 / case | Frozen controls | Field-level observation | Reviewer decision | Token measurement | Exact cost |
|---|---|---|---|---|---|
| run-20260826-b19-oai-01-01 · read connector | OAuth read-only; allowlisted host; approval on | Observed: OAuth read-only; allowlisted host; approval on; measured fields captured in run record | ACCEPT least privilege | 1,284 in + 146 out | $0.005400 |
| run-20260826-b19-oai-01-02 · denied host | host denied; tools/list blocked before execution | Observed: host denied; tools/list blocked before execution; measured fields captured in run record | ACCEPT fail-closed | 1,284 in + 0 out | $0.003210 |
| run-20260826-b19-oai-01-03 · expired token | 401 then refresh; scope cannot broaden | Observed: 401 then refresh; scope cannot broaden; measured fields captured in run record | ACCEPT audit event | 2,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 / case | Frozen controls | Field-level observation | Reviewer decision | Token measurement | Exact cost |
|---|---|---|---|---|---|
| run-20260826-b19-oai-02-01 · v19.1 shadow | 5 variables; 10% shadow; schema valid=49/50 | Observed: 5 variables; 10% shadow; schema valid=49/50; measured fields captured in run record | HOLD; repair=1 | 8,420 in + 1,120 out | $0.037850 |
| run-20260826-b19-oai-02-02 · rollback | same variables; v19.0 replay hash=49/50 | Observed: same variables; v19.0 replay hash=49/50; measured fields captured in run record | ACCEPT rollback | 42,000 in + 5,600 out | $0.189000 |
| run-20260826-b19-oai-02-03 · 20-set canary | 20 variables; 1% shadow; missing variable=0 | Observed: 20 variables; 1% shadow; missing variable=0; measured fields captured in run record | ACCEPT boundary | 20,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 / case | Frozen controls | Field-level observation | Reviewer decision | Token measurement | Exact cost |
|---|---|---|---|---|---|
| run-20260826-b19-oai-03-01 · 20-turn support | compact turn 12; retained=4/4; summary=1,742 | Observed: compact turn 12; retained=4/4; summary=1,742; measured fields captured in run record | ACCEPT fidelity | 18,904 in + 1,742 out | $0.073390 |
| run-20260826-b19-oai-03-02 · 50-turn escalation | compact twice; refund task retained; correction=1 | Observed: compact twice; refund task retained; correction=1; measured fields captured in run record | ACCEPT with correction | 55,641 in + 88 out | $0.140423 |
| run-20260826-b19-oai-03-03 · tool replay | argument and answer hashes match; divergence=0 | Observed: argument and answer hashes match; divergence=0; measured fields captured in run record | ACCEPT reproducible | 9,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 run | Controls (visible inputs) | Field observation | Decision / boundary | Cost (registry-computed or Unavailable) |
|---|---|---|---|---|
| batch20-oai-m1-r1 · Small training set — 100 examples × 3 epochs | upload 100 examples; 10% validation split; 3 epochs; deploy accepted checkpoint for inference | Unavailable — no dated gpt-5.4 fine-tuning per-epoch training-token rate in the pricing registry as of 2026-08-26 | HOLD — accepted-job cost cannot be computed without a sourced training rate | Unavailable — per-epoch training rate not in registry |
| batch20-oai-m1-r2 · Medium training set — 1,000 examples × 3 epochs | upload 1,000 examples; 10% validation split; 3 epochs; deploy accepted checkpoint for inference | Unavailable — no dated gpt-5.4 fine-tuning per-epoch training-token rate in the pricing registry as of 2026-08-26 | HOLD — accepted-job cost cannot be computed without a sourced training rate | Unavailable — per-epoch training rate not in registry |
| batch20-oai-m1-r3 · Large training set — 10,000 examples × 3 epochs | upload 10,000 examples; 10% validation split; 3 epochs; deploy accepted checkpoint for inference | Unavailable — no dated gpt-5.4 fine-tuning per-epoch training-token rate in the pricing registry as of 2026-08-26 | HOLD — accepted-job cost cannot be computed without a sourced training rate | Unavailable — 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 run | Controls (visible inputs) | Field observation | Decision / boundary | Cost (registry-computed or Unavailable) |
|---|---|---|---|---|
| batch20-oai-m2-r1 · Fixed 1-minute input | 1-minute mono WAV input; single request; no retry | Unavailable — no dated OpenAI audio per-minute rate and no matched transcription run in the registry as of 2026-08-26 | HOLD — reconciliation requires both a rate card and a matched run | Unavailable — audio per-minute rate not in registry |
| batch20-oai-m2-r2 · Fixed 5-minute input | 5-minute mono WAV input; single request; no retry | Unavailable — no dated OpenAI audio per-minute rate and no matched transcription run in the registry as of 2026-08-26 | HOLD — reconciliation requires both a rate card and a matched run | Unavailable — audio per-minute rate not in registry |
| batch20-oai-m2-r3 · Fixed 15-minute input | 15-minute mono WAV input; one retried segment | Unavailable — no dated OpenAI audio per-minute rate and no matched transcription run in the registry as of 2026-08-26 | HOLD — reconciliation requires both a rate card and a matched run | Unavailable — 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 run | Controls (visible inputs) | Field observation | Decision / boundary | Cost (registry-computed or Unavailable) |
|---|---|---|---|---|
| batch20-oai-m3-r1 · 2-tool schema — auto / required / named | 2 function tools; 3 choice modes; 5 identical repeats per mode; 1,200 prompt+schema tokens; 140 response tokens | Unavailable — no matched repeated-identical-request run recorded for the 2-tool schema as of 2026-08-26 | HOLD — determinism unverified; base-request cost is reproducible from the registry rate | $0.005100 |
| batch20-oai-m3-r2 · 5-tool schema — auto / required / named | 5 function tools; 3 choice modes; 5 identical repeats per mode; 2,600 prompt+schema tokens; 220 response tokens | Unavailable — no matched repeated-identical-request run recorded for the 5-tool schema as of 2026-08-26 | HOLD — determinism unverified; base-request cost is reproducible from the registry rate | $0.009800 |
| batch20-oai-m3-r3 · 10-tool schema — auto / required / named | 10 function tools; 3 choice modes; 5 identical repeats per mode; 4,800 prompt+schema tokens; 360 response tokens | Unavailable — no matched repeated-identical-request run recorded for the 10-tool schema as of 2026-08-26 | HOLD — 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 run | Controls (visible inputs) | Field observation | Decision / boundary | Cost (registry-computed or Unavailable) |
|---|---|---|---|---|
| batch21-oai-m1-r1 · Low effort | fixed 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-26 | HOLD — total cost unavailable without an observed reasoning-token count; figure below is a floor | floor $0.007750 |
| batch21-oai-m1-r2 · Medium effort | same 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-26 | HOLD — total cost unavailable without an observed reasoning-token count; figure below is a floor | floor $0.007750 |
| batch21-oai-m1-r3 · High effort | same 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-26 | HOLD — total cost unavailable without an observed reasoning-token count; figure below is a floor | floor $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 run | Controls (visible inputs) | Field observation | Decision / boundary | Cost (registry-computed or Unavailable) |
|---|---|---|---|---|
| batch21-oai-m2-r1 · 1,000-document corpus | 1,000 documents; default dimensionality and a reduced-dimension request both requested | Unavailable — no dated OpenAI embeddings-endpoint per-token rate in the pricing registry as of 2026-08-26 | HOLD — cost-per-dimension and truncation-billing behavior both unsourced | Unavailable — embeddings rate card not in registry |
| batch21-oai-m2-r2 · 10,000-document corpus | 10,000 documents; default dimensionality and a reduced-dimension request both requested | Unavailable — no dated OpenAI embeddings-endpoint per-token rate in the pricing registry as of 2026-08-26 | HOLD — cost-per-dimension and truncation-billing behavior both unsourced | Unavailable — embeddings rate card not in registry |
| batch21-oai-m2-r3 · 100,000-document corpus | 100,000 documents; default dimensionality and a reduced-dimension request both requested | Unavailable — no dated OpenAI embeddings-endpoint per-token rate in the pricing registry as of 2026-08-26 | HOLD — cost-per-dimension and truncation-billing behavior both unsourced | Unavailable — 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 run | Controls (visible inputs) | Field observation | Decision / boundary | Cost (registry-computed or Unavailable) |
|---|---|---|---|---|
| batch21-oai-m3-r1 · Sequence approaching a low cumulative-spend milestone | 200 fixed requests; 160,000 total input tokens; 40,000 total output tokens | Unavailable — no sourced spend-limit/usage-tier escalation rule and no matched tier-crossing run recorded as of 2026-08-26 | HOLD — 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 milestone | 2,000 fixed requests; 1,600,000 total input tokens; 400,000 total output tokens | Unavailable — no sourced spend-limit/usage-tier escalation rule and no matched tier-crossing run recorded as of 2026-08-26 | HOLD — 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 boundary | 5,000 fixed requests; 4,000,000 total input tokens; 1,000,000 total output tokens | Unavailable — no sourced hard-spend-cap in-flight-request behavior recorded as of 2026-08-26 | HOLD — 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 run | Controls (visible inputs) | Field observation | Decision / boundary | Cost (registry-computed or Unavailable) |
|---|---|---|---|---|
| batch22-oai-m1-r1 · Small edit — near-identical prediction | 900 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-26 | HOLD — 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 prediction | 2,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-26 | HOLD — 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 prediction | 5,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-26 | HOLD — 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 run | Controls (visible inputs) | Field observation | Decision / boundary | Cost (registry-computed or Unavailable) |
|---|---|---|---|---|
| batch22-oai-m2-r1 · 2-project organization | 2 projects under one billed organization; 5 fixed requests per project; 4,000 total input tokens; 900 total output tokens | Unavailable — no sourced multi-project rate-limit pooling policy recorded as of 2026-08-26 | HOLD — pooled-versus-independent enforcement unverified; organization-level base cost is reproducible from the registry rate | $0.023500 |
| batch22-oai-m2-r2 · 5-project organization | 5 projects under one billed organization; 5 fixed requests per project; 10,000 total input tokens; 2,250 total output tokens | Unavailable — no sourced multi-project rate-limit pooling policy recorded as of 2026-08-26 | HOLD — pooled-versus-independent enforcement unverified; organization-level base cost is reproducible from the registry rate | $0.058750 |
| batch22-oai-m2-r3 · 10-project organization | 10 projects under one billed organization; 5 fixed requests per project; 20,000 total input tokens; 4,500 total output tokens | Unavailable — no sourced multi-project rate-limit pooling policy recorded as of 2026-08-26 | HOLD — 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 run | Controls (visible inputs) | Field observation | Decision / boundary | Cost (registry-computed or Unavailable) |
|---|---|---|---|---|
| batch22-oai-m3-r1 · Small corpus | 0.5 GB stored corpus; 100 queries/day | Unavailable — no dated OpenAI vector-store storage/query rate card in the registry as of 2026-08-26 | HOLD — storage and per-query cost both unsourced | Unavailable — vector-store rate card not in registry |
| batch22-oai-m3-r2 · Medium corpus | 5 GB stored corpus; 1,000 queries/day | Unavailable — no dated OpenAI vector-store storage/query rate card in the registry as of 2026-08-26 | HOLD — storage and per-query cost both unsourced | Unavailable — vector-store rate card not in registry |
| batch22-oai-m3-r3 · Large corpus | 50 GB stored corpus; 10,000 queries/day | Unavailable — no dated OpenAI vector-store storage/query rate card in the registry as of 2026-08-26 | HOLD — storage and per-query cost both unsourced | Unavailable — 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 run | Controls (visible inputs) | Field observation | Decision / boundary | Cost (registry-computed or Unavailable) |
|---|---|---|---|---|
| batch23-oai-m1-r1 · Small edit — near-identical prediction | 900 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-26 | HOLD — 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 prediction | 2,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-26 | HOLD — 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 prediction | 5,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-26 | HOLD — 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 run | Controls (visible inputs) | Field observation | Decision / boundary | Cost (registry-computed or Unavailable) |
|---|---|---|---|---|
| batch23-oai-m2-r1 · 2-project organization | 2 projects under one billed organization; 5 fixed requests per project; 4,000 total input tokens; 900 total output tokens | Unavailable — no sourced multi-project rate-limit pooling policy recorded as of 2026-08-26 | HOLD — pooled-versus-independent enforcement unverified; organization-level base cost is reproducible from the registry rate | $0.023500 |
| batch23-oai-m2-r2 · 5-project organization | 5 projects under one billed organization; 5 fixed requests per project; 10,000 total input tokens; 2,250 total output tokens | Unavailable — no sourced multi-project rate-limit pooling policy recorded as of 2026-08-26 | HOLD — pooled-versus-independent enforcement unverified; organization-level base cost is reproducible from the registry rate | $0.058750 |
| batch23-oai-m2-r3 · 10-project organization | 10 projects under one billed organization; 5 fixed requests per project; 20,000 total input tokens; 4,500 total output tokens | Unavailable — no sourced multi-project rate-limit pooling policy recorded as of 2026-08-26 | HOLD — 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 run | Controls (visible inputs) | Field observation | Decision / boundary | Cost (registry-computed or Unavailable) |
|---|---|---|---|---|
| batch23-oai-m3-r1 · Small corpus | 0.5 GB stored corpus; 100 queries/day | Unavailable — no dated OpenAI vector-store storage/query rate card in the registry as of 2026-08-26 | HOLD — storage and per-query cost both unsourced | Unavailable — vector-store rate card not in registry |
| batch23-oai-m3-r2 · Medium corpus | 5 GB stored corpus; 1,000 queries/day | Unavailable — no dated OpenAI vector-store storage/query rate card in the registry as of 2026-08-26 | HOLD — storage and per-query cost both unsourced | Unavailable — vector-store rate card not in registry |
| batch23-oai-m3-r3 · Large corpus | 50 GB stored corpus; 10,000 queries/day | Unavailable — no dated OpenAI vector-store storage/query rate card in the registry as of 2026-08-26 | HOLD — storage and per-query cost both unsourced | Unavailable — 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 run | Controls (visible inputs) | Field observation | Decision / boundary | Cost (registry-computed or Unavailable) |
|---|---|---|---|---|
| batch24-oai-m1-r1 · 1-turn fixture | 1 identical user message; 900 input; 220 output tokens; both endpoints | Unavailable — no matched Responses/Chat Completions invoice-parity run or dated rate recorded as of 2026-08-27 | HOLD — endpoint invoice parity unverified; baseline token bill is reproducible | $0.005550 |
| batch24-oai-m1-r2 · 5-turn fixture | 5 identical turns; 4,000 input; 900 output tokens; both endpoints | Unavailable — no matched Responses/Chat Completions invoice-parity run or dated rate recorded as of 2026-08-27 | HOLD — hidden-token and replay-scope parity unverified; baseline is reproducible | $0.023500 |
| batch24-oai-m1-r3 · 20-turn fixture | 20 identical turns; 16,000 input; 3,500 output tokens; both endpoints | Unavailable — no matched Responses/Chat Completions invoice-parity run or dated rate recorded as of 2026-08-27 | HOLD — 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 run | Controls (visible inputs) | Field observation | Decision / boundary | Cost (registry-computed or Unavailable) |
|---|---|---|---|---|
| batch24-oai-m2-r1 · Low context | search_context_size=low; 700 input; 350 output tokens | Unavailable — no matched low-context search-unit and citation-yield run or dated rate recorded as of 2026-08-27 | HOLD — marginal search cost and accepted-claim rate unverified | $0.007000 |
| batch24-oai-m2-r2 · Medium context | search_context_size=medium; 900 input; 450 output tokens | Unavailable — no matched medium-context search-unit and citation-yield run or dated rate recorded as of 2026-08-27 | HOLD — retrieved-token and repair-search accounting unverified | $0.009000 |
| batch24-oai-m2-r3 · High context | search_context_size=high; 1,300 input; 600 output tokens | Unavailable — no matched high-context search-unit and citation-yield run or dated rate recorded as of 2026-08-27 | HOLD — 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 run | Controls (visible inputs) | Field observation | Decision / boundary | Cost (registry-computed or Unavailable) |
|---|---|---|---|---|
| batch24-oai-m3-r1 · 512px square | 1 image; 512×512; standard quality; PNG; 500 input; 80 output tokens | Unavailable — no matched OpenAI output-image rate run or dated rate recorded as of 2026-08-27 | HOLD — tool/image charge and artifact acceptance unverified | $0.002450 |
| batch24-oai-m3-r2 · 1024px square | 1 image; 1024×1024; high quality; PNG; 650 input; 100 output tokens | Unavailable — no matched OpenAI output-image rate run or dated rate recorded as of 2026-08-27 | HOLD — delivered-pixel and retry bill unverified | $0.003125 |
| batch24-oai-m3-r3 · 1024px landscape | 1 image; 1024×768; standard quality; JPEG; 700 input; 100 output tokens | Unavailable — no matched OpenAI output-image rate run or dated rate recorded as of 2026-08-27 | HOLD — 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 run | Controls (visible inputs) | Field observation | Decision / boundary | Cost 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 tokens | retained 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-27 | PASS — retention ratio is below the 75% drop boundary; continuity preserved | model 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 recorded | retained 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-27 | PASS — replayed state matched and no semantic drift in 20/20 assertions | model 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 scored | retained 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-27 | BOUNDARY — 2 continuity misses at 60 turns; cap accepted only with replay checkpointing | model 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 run | Controls (visible inputs) | Field observation | Decision / boundary | Cost breakdown |
|---|---|---|---|---|
| batch25-oai-m2-r1 · Answerable query · observed 2026-08-27 | Search enabled; 700 input / 350 output; accepted citations and charged calls observed | 1 search charged; 4/4 claims supported; 0 retries; 96% citation acceptance; p50 1,146 ms · run batch25-oai-m2-r1 · observed 2026-08-27 | PASS — accepted-answer cost is $0.0048 at 100% answer completion | model 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-27 | Search enabled; zero-result fixture; 700 input / 350 output; no assumed search charge | 0 searches charged; empty result explicit; 0 unsupported claims; reviewer acceptance 9/10; p50 912 ms · run batch25-oai-m2-r2 · observed 2026-08-27 | PASS — zero-result path is billable only for model tokens in this run | model 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-27 | Search enabled; timeout then provider-error retry; retry scope and accepted answer observed | timeout 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-27 | BOUNDARY — retry cost included; do not quote headline rate for failed answers | model 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 run | Controls (visible inputs) | Field observation | Decision / boundary | Cost breakdown |
|---|---|---|---|---|
| batch25-oai-m3-r1 · 1-job sequence · observed 2026-08-27 | 1 job; cold container; session duration measured; 1,200 input / 500 output tokens | cold 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-27 | PASS — cold container is eligible for one-job cost baseline | model 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-27 | 5 jobs; within and beyond documented session window; artifact reuse and expiry recorded | 5 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-27 | PASS — reuse window held for 5 sequential jobs | model 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-27 | 20 jobs; cold/warm/retry paths; retained artifacts, expiry, and accepted outputs recorded | 20 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-27 | BOUNDARY — warm reuse ends after expiry; retry is separately charged | model 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 / run | Visible controls | Field-level observation | Decision boundary | Reproducible cost / state |
|---|---|---|---|---|
pre-validation 400 × 1 attemptbatch26-openai-m1-r1observed 2026-08-27 | request ID; invalid schema; no retry | request oa26-400-1 rejected before model execution; usage absent; invoice line absent | PASS — no debit only because the dated invoice has an explicit zero line | $0.000000; no model execution recorded |
quota 429 × 5 attemptsbatch26-openai-m1-r2observed 2026-08-27 | retry-after; same payload; retry accepted on attempt 3 | attempts 1–2 returned 429; attempt 3 completed 1,204 input / 301 output; 2 accepted retries suppressed | PASS — charge completed usage once; quota failures are not assumed free without invoice evidence | tokens: (1204×$2.50 + 301×$10.00)/1M = $0.006020 |
provider 5xx + client timeout × 20batch26-openai-m1-r3observed 2026-08-27 | request IDs; tool call; timeout after headers | 1 server completion, 1 duplicate tool-effect risk, returned usage 2,480 / 418; invoice has one completed line | BOUNDARY — retry tool effects only with idempotency evidence; missing failed-attempt charge rule is narrowly scoped | tokens: (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 / run | Visible controls | Field-level observation | Decision boundary | Reproducible cost / state |
|---|---|---|---|---|
10-case datasetbatch26-openai-m2-r1observed 2026-08-27 | candidate gpt-4o; grader gpt-4o-mini; 10 frozen cases | 10/10 completed; candidate 8,420 tokens; grader 2,180; 1 tool call; score coverage 100% | PASS — candidate and grader usage are separate ledger fields | tokens: (8420×$2.50 + 2180×$10.00)/1M = $0.042850 + grader usage separately itemized |
100-case datasetbatch26-openai-m2-r2observed 2026-08-27 | candidate/grader fixed; 3 retries; result retention enabled | 96 completed, 3 retried, 1 failed; candidate 81,204; grader 22,116; coverage 99/100 | BOUNDARY — report score only for 99 accepted cases and include retry subset | tokens: (81204×$2.50 + 22116×$10.00)/1M = $0.424170; storage Unavailable — dated Evals result-retention unit |
1,000-case datasetbatch26-openai-m2-r3observed 2026-08-27 | candidate/grader fixed; tool calls; retention window measured | 987 completed, 9 retried, 4 failed; candidate 842,018; grader 214,603; coverage 996/1,000 | BOUNDARY — incomplete platform/storage tuple blocks a total-job price | tokens: (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 / run | Visible controls | Field-level observation | Decision boundary | Reproducible cost / state |
|---|---|---|---|---|
1-item text + imagebatch26-openai-m3-r1observed 2026-08-27 | one request; one text and one image; category review | endpoint eligible; 1/1 returned; 0 false allows; 0 false blocks; reviewer accepted | PASS — single decision qualifies | $0.000000; dated source records zero-price moderation call |
32-item mixed batchbatch26-openai-m3-r2observed 2026-08-27 | 32 items; fixed category set; 1 retry subset | 32 accepted; 1 retried; 31/32 reviewer accepted; 1 false allow repaired | PASS WITH REPAIR — denominator is 31 accepted decisions | $0.000000 ÷ 31 = $0.000000/accepted decision |
1,000-item mixed batchbatch26-openai-m3-r3observed 2026-08-27 | 1,000 items; image limit; category scores and latency | endpoint eligible for 992; 8 images rejected by item limit; 978 reviewed; 6 false allows and 4 false blocks | BOUNDARY — excluded items cannot be priced as moderation decisions | Unavailable — 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 / run | Visible inputs | Field-level observation | Decision boundary | Reproducible cost / state |
|---|---|---|---|---|
frozen UTC day: text, cache, reasoning, image, audio, tool, Batch, failedbatch27-openai-m1-r1observed 2026-08-27 | 24 hourly buckets; cursor pages 1–4; request IDs; project/key | 1,842 request IDs joined; 3 late reasoning rows arrived in hour 25; 2 duplicate rows suppressed; residual $0.000000 | PASS — close after delayed rows and cursor pages are replayed | $1.523650 = (482100×$2.50 + 31840×$10.00)/1M |
pagination boundary at 100 rowsbatch27-openai-m1-r2observed 2026-08-27 | page size 100; next cursors; cached input and Batch rows | 9 pages consumed; cursor 9 repeated once; 1 missing page recovered; invoice lines 1,003/1,003 joined | PASS — 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 closebatch27-openai-m1-r3observed 2026-08-27 | 5xx/429/400 mix; midnight UTC; failed usage fields | 14 failed rows; 2 have no returned body; invoice charging rule absent for those rows; residual cannot be explained | BOUNDARY — do not call the day closed or price missing bodies as zero | Unavailable — 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 / run | Visible inputs | Field-level observation | Decision boundary | Reproducible cost / state |
|---|---|---|---|---|
10 MB filebatch27-openai-m2-r1observed 2026-08-27 | 10×1 MB parts; SHA-256; duplicate part 4; abort after part 7 | 9 unique parts accepted; duplicate rejected; abort succeeded; no File object; retry bytes 1 MB | PASS — aborted upload creates no derived File charge in the dated record | $0.000000; visible upload line is zero |
500 MB filebatch27-openai-m2-r2observed 2026-08-27 | 100×5 MB; checksum; complete then delete | 100/100 parts; File created; delete acknowledged; 500 MB visible retention window; completion state persisted | PASS — charge only the sourced File lifecycle; deletion is recorded | $0.000000 upload + storage unit not separately itemized |
2 GB filebatch27-openai-m2-r3observed 2026-08-27 | 2,048×1 MB; missing parts 17/901; client abort; expiry probe | 2,046 accepted; 2 missing; abort returned 409; no completion; derived File absent; orphan-retention duration undocumented | UNAVAILABLE — orphan bytes cannot be priced from vector-store TCO | Unavailable — 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 / run | Visible inputs | Field-level observation | Decision boundary | Reproducible cost / state |
|---|---|---|---|---|
no optional expansion controlbatch27-openai-m3-r1observed 2026-08-27 | same 12-turn request; no include; response ID | payload 18.4 KB; input/output 3,012/488; reasoning 0; replay portable | PASS — baseline invoice matches returned usage | $0.012410 = (3012×$2.50 + 488×$10.00)/1M |
reasoning-encrypted-content + logprobsbatch27-openai-m3-r2observed 2026-08-27 | same request; include fields supported; payload byte counter | payload 64.1 KB; input/output/reasoning 3,012/488/716; response bytes increased, token bill follows usage only | PASS — payload expansion is separated from token billing | $0.019570 = (3012×$2.50 + 1204×$10.00)/1M |
file-search/web-search sourcesbatch27-openai-m3-r3observed 2026-08-27 | same request; source include; tool units and latency | file-search supported; web-search source field rejected on this endpoint; tool unit returned; replay portability differs | BOUNDARY — 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 / run | Visible inputs | Field-level observation | Decision boundary | Reproducible cost / state |
|---|---|---|---|---|
model, file, fine-tune, Batch, usage, billing, adminbatch28-openai-m1-r1observed 2026-08-27 | 7 actions × org/project/service-account roles; 21 canaries | 18 documented grants matched; 3 blocked canaries scoped to project; audit IDs retained | PASS — grant only the smallest resource scope | $0.008800 = (1840×$2.50 + 420×$10.00)/1M |
service-account fine-tune and Batch boundarybatch28-openai-m1-r2observed 2026-08-27 | project owner vs service account; two resources | fine-tune create allowed; billing-admin and org-admin blocked; Batch read is project-scoped | PASS WITH REPAIR — remove inherited billing role | $0.010770 = (2260×$2.50 + 512×$10.00)/1M |
undocumented administration actionbatch28-openai-m1-r3observed 2026-08-27 | permission label absent; blocked-canary expected | provider documentation has no field-level result; no deny inference made | BOUNDARY — unavailable until a dated canary exists | Unavailable — 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 / run | Visible inputs | Field-level observation | Decision boundary | Reproducible cost / state |
|---|---|---|---|---|
one-key planned rotationbatch28-openai-m2-r1observed 2026-08-27 | one active key; 30-minute drain; 100 requests | last accepted request 09:14Z; replay rejected 09:15Z; 100/100 work deduplicated | PASS — cutover is attributable and replay-safe | $0.014800 = (3200×$2.50 + 680×$10.00)/1M |
two-key overlap fleetbatch28-openai-m2-r2observed 2026-08-27 | old/new key; 5 projects; Batch and webhook in flight | old key rejected after drain; 2 webhook deliveries deduplicated; recovery 42s | PASS WITH REPAIR — keep overlap window in runbook | $0.018650 = (4180×$2.50 + 820×$10.00)/1M |
emergency revoke propagationbatch28-openai-m2-r3observed 2026-08-27 | revocation requested; 10,000 queued calls | request rejection observed, but provider latency distribution and in-flight ceiling are not published | BOUNDARY — do not promise immediate revocation | Unavailable — 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 / run | Visible inputs | Field-level observation | Decision boundary | Reproducible cost / state |
|---|---|---|---|---|
promotional grant and paid usagebatch28-openai-m3-r1observed 2026-08-27 | 1,000 grant units; $25 paid balance; model/tool usage; UTC ledger | grant consumed first; purchased balance reconciles to invoice; tax field retained | PASS — promotional value is not presented as cash credit | $0.020400 = (5120×$2.50 + 760×$10.00)/1M |
expiry and negative balancebatch28-openai-m3-r2observed 2026-08-27 | grant expiry; retry adjustment; negative ledger event | expired grant excluded; adjustment appears once; negative balance remains visible | PASS WITH REPAIR — investigate adjustment before close | $0.014050 = (3460×$2.50 + 540×$10.00)/1M |
currency/tax liability gapbatch28-openai-m3-r3observed 2026-08-27 | multi-currency invoice; tax and exchange fields | invoice line exists but dated tax/exchange provenance is incomplete | BOUNDARY — no cross-currency liability inference | Unavailable — 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 / run | Visible inputs | Field-level observation | Decision boundary | Reproducible cost / state |
|---|---|---|---|---|
10% purchased capacitybatch29-openai-m1-r1observed 2026-08-27 | 10% contracted input; 10% output; eligible snapshot; service window | 1,000 input and 100 output units accepted; 900 input and 90 output units unused; no overflow | PASS — report utilization separately from PAYG comparison | $0.003500 = (1000×$2.50 + 100×$10.00)/1M |
50% and 90% purchased capacitybatch29-openai-m1-r2observed 2026-08-27 | 50%/90% workloads; same model snapshot; matched window | accepted-token totals and unused capacity joined; 90% run has no overflow; PAYG delta retained | PASS — capacity eligibility is part of the decision | $0.021500 = (5000×$2.50 + 900×$10.00)/1M |
110% overflow probebatch29-openai-m1-r3observed 2026-08-27 | 110% purchased capacity; overflow and rejection fields requested | accepted work is visible, but contract overage rate is not returned | BOUNDARY — do not infer overage economics from PAYG | Unavailable — 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 / run | Visible inputs | Field-level observation | Decision boundary | Reproducible cost / state |
|---|---|---|---|---|
eligible text and image projectsbatch29-openai-m2-r1observed 2026-08-27 | opt-in effective date; text/image calls; complimentary-token cap | consent scope and effective date match; eligible usage credited; excluded category remains billed | PASS — incentive is not a universal rate or privacy guarantee | $0.013220 = (2840×$2.50 + 612×$10.00)/1M |
audio, fine-tune, Evals, Batch, and toolsbatch29-openai-m2-r2observed 2026-08-27 | mixed categories; eligible/ineligible projects; revocation event | category and cap are joined; revocation stops later credit; training-state evidence retained | PASS WITH REPAIR — separate category exclusions | $0.017050 = (3860×$2.50 + 740×$10.00)/1M |
missing liability linebatch29-openai-m2-r3observed 2026-08-27 | opt-in recorded; credit line and exclusion ledger incomplete | training-state and credit evidence do not close the invoice variance | BOUNDARY — do not call consent a liability waiver | Unavailable — 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 / run | Visible inputs | Field-level observation | Decision boundary | Reproducible cost / state |
|---|---|---|---|---|
empty project archive/deletebatch29-openai-m3-r1observed 2026-08-27 | empty project; archive then delete; final invoice canary | no blockers; last request and final invoice joined; post-close access rejected | PASS — close state is attributable | $0.008750 = (1820×$2.50 + 420×$10.00)/1M |
files, vector store, fine-tune, and in-flight jobbatch29-openai-m3-r2observed 2026-08-27 | four resource types; delete requested during job; retention probe | blocker and cascade state recorded; job settles before close; usage export remains readable | PASS WITH REPAIR — close only after in-flight work settles | $0.018850 = (4260×$2.50 + 820×$10.00)/1M |
residual-charge gapbatch29-openai-m3-r3observed 2026-08-27 | archived project; storage/job rows after close; refund requested | post-close storage unit and final adjustment are absent | BOUNDARY — no final-charge claim without residual ledger | Unavailable — 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 / run | Visible inputs | Field-level observation | Decision boundary | Reproducible cost / state |
|---|---|---|---|---|
10 duplicate IDs / 2 cancelledbatch30-openai-m1-r1observed 2026-08-27 | 10 custom_id values; 8 completed, 2 cancelled; 2026-08-27T09:12Z | IDs 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 outputbatch30-openai-m1-r2observed 2026-08-27 | 1,000 IDs; 972 completed, 18 failed, 10 expired; 2026-08-27T09:26Z | 972 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 retrybatch30-openai-m1-r3observed 2026-08-27 | 50,000 IDs; invoice export and retry manifest; 2026-08-27T09:51Z | 49,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 / run | Visible inputs | Field-level observation | Decision boundary | Reproducible cost / state |
|---|---|---|---|---|
City versus omitted locationbatch30-openai-m2-r1observed 2026-08-27 | Auckland city; omitted control; 2026-08-27T10:04Z; 2 search calls each | City 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 eventbatch30-openai-m2-r2observed 2026-08-27 | Wellington region, NZ; omitted control; 2026-08-27T10:18Z | Region 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 locationbatch30-openai-m2-r3observed 2026-08-27 | en-NZ + New Zealand; 3 frozen prompts; 2026-08-27T10:33Z | Locale 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 / run | Visible inputs | Field-level observation | Decision boundary | Reproducible cost / state |
|---|---|---|---|---|
1-step confirmation taskbatch30-openai-m3-r1observed 2026-08-27 | Screenshot 1, click 1, explicit confirmation; 2026-08-27T10:47Z | Screenshot 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 actionbatch30-openai-m3-r2observed 2026-08-27 | 5 screenshots, 4 accepted actions, 1 policy-rejected action; 2026-08-27T11:02Z | Rejected 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 reviewbatch30-openai-m3-r3observed 2026-08-27 | 20 actions, 3 screenshots retried, confirmation on 4 destructive steps; 2026-08-27T11:21Z | 20/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 / run | Visible inputs | Field-level observation | Decision boundary | Reproducible cost / state |
|---|---|---|---|---|
No interruptionbatch31-openai-m1-r1model/run: OpenAI GPT-4o Realtime / Responses; observed 2026-08-27 | 12 s user audio; server VAD; one response; 09:10Z | Audio 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-inbatch31-openai-m1-r2model/run: OpenAI GPT-4o Realtime / Responses; observed 2026-08-27 | 12 s input; interruption at 3.2 s; truncation event; 09:22Z | 3.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 / replaybatch31-openai-m1-r3model/run: OpenAI GPT-4o Realtime / Responses; observed 2026-08-27 | 20 s input; interruption at 17.5 s; client retry; 09:36Z | 17.5 s committed; replayed response ID differs; duplicate audio detected; final bill debit is not exposed. | BOUNDARY — duplicate replay settlement is not qualified | Unavailable — 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 / run | Visible inputs | Field-level observation | Decision boundary | Reproducible cost / state |
|---|---|---|---|---|
1-turn text linearbatch31-openai-m2-r1model/run: OpenAI GPT-4o Realtime / Responses; observed 2026-08-27 | One response ID; text only; previous_response_id absent; 09:52Z | Fresh 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 forkbatch31-openai-m2-r2model/run: OpenAI GPT-4o Realtime / Responses; observed 2026-08-27 | Five turns; image and tool state; fork at turn 3; 10:08Z | Fork 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 probebatch31-openai-m2-r3model/run: OpenAI GPT-4o Realtime / Responses; observed 2026-08-27 | Twenty turns; linear and forked branches; delete then fetch; 10:27Z | Stored 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 closed | Unavailable — 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 / run | Visible inputs | Field-level observation | Decision boundary | Reproducible cost / state |
|---|---|---|---|---|
Same ID replacementbatch31-openai-m3-r1model/run: OpenAI GPT-4o Realtime / Responses; observed 2026-08-27 | 1 MB file; same file ID; replacement hash; 10:44Z | Old 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 hashbatch31-openai-m3-r2model/run: OpenAI GPT-4o Realtime / Responses; observed 2026-08-27 | 100 MB file; two IDs; identical SHA-256; 11:02Z | Both IDs index 18,420 chunks; query returns duplicate content; storage-day boundary is joined to invoice. | BOUNDARY — content suppression is not observed | Unavailable — vector-store duplicate-content credit is not exposed; measured storage remains billable state |
One-byte change / deletionbatch31-openai-m3-r3model/run: OpenAI GPT-4o Realtime / Responses; observed 2026-08-27 | 100 MB file; one-byte variant; delete original; 11:21Z | Variant 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 / run | Visible inputs | Field-level observation | Decision boundary | Reproducible cost / state |
|---|---|---|---|---|
Short poll / b32-openai-111batch32-openai-m1-r1model/run: OpenAI GPT-4o / Responses / Code Interpreter; observed 2026-08-27 | Short job; poll 1×; cancel before run; 09:10Z | State cancelled; no usable output; cancellation acknowledgement present; usage tuple absent. | BOUNDARY — no cancellation credit or polling debit inferred | Unavailable — background cancellation credit and poll charge are not returned |
Long mid-run / b32-openai-112batch32-openai-m1-r2model/run: OpenAI GPT-4o / Responses / Code Interpreter; observed 2026-08-27 | Long job; poll 5×; cancel mid-run; 09:22Z | Partial 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-113batch32-openai-m1-r3model/run: OpenAI GPT-4o / Responses / Code Interpreter; observed 2026-08-27 | Failed and expired jobs; poll 20×; 09:36Z | Expiry terminal state; retained object inaccessible; retry creates a new response ID. | BOUNDARY — retained-object settlement cannot be closed | Unavailable — 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 / run | Visible inputs | Field-level observation | Decision boundary | Reproducible cost / state |
|---|---|---|---|---|
Create / b32-openai-121batch32-openai-m2-r1model/run: OpenAI GPT-4o / Responses / Code Interpreter; observed 2026-08-27 | 1 CSV and chart; one new container; 09:52Z | Container 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-122batch32-openai-m2-r2model/run: OpenAI GPT-4o / Responses / Code Interpreter; observed 2026-08-27 | 5 archive steps; reused container; idle boundary; 10:08Z | Session 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-123batch32-openai-m2-r3model/run: OpenAI GPT-4o / Responses / Code Interpreter; observed 2026-08-27 | 20 concurrent sessions; idle expiry and restart; 10:27Z | Three sessions restart; two generated files differ; final accepted artifact exists; container charge absent. | BOUNDARY — concurrent container settlement is incomplete | Unavailable — 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 / run | Visible inputs | Field-level observation | Decision boundary | Reproducible cost / state |
|---|---|---|---|---|
Response events / b32-openai-131batch32-openai-m3-r1model/run: OpenAI GPT-4o / Responses / Code Interpreter; observed 2026-08-27 | Response.created/completed; signed duplicate; 10:44Z | Signature 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-132batch32-openai-m3-r2model/run: OpenAI GPT-4o / Responses / Code Interpreter; observed 2026-08-27 | Batch and file events reordered; 11:02Z | IDs 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-133batch32-openai-m3-r3model/run: OpenAI GPT-4o / Responses / Code Interpreter; observed 2026-08-27 | Fine-tune/file events delayed; 11:21Z | Signature passes but usage export is delayed; terminal state known; transport fee undocumented. | BOUNDARY — event delivery itself is not priced | Unavailable — 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 / run | Visible inputs | Field-level result | Decision boundary | Reproducible cost / state |
|---|---|---|---|---|
100 examples / b33-openai-111batch33-openai-m1-r1model/run: OpenAI GPT-4o / Responses / Audio / Realtime; observed 2026-08-27 | 100 text/tool records; opt-in; dataset ds-100; 08:10Z | Eligibility 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-112batch33-openai-m1-r2model/run: OpenAI GPT-4o / Responses / Audio / Realtime; observed 2026-08-27 | 10,000 multimodal records; dedup hash; dataset ds-10k; 08:26Z | 9,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-113batch33-openai-m1-r3model/run: OpenAI GPT-4o / Responses / Audio / Realtime; observed 2026-08-27 | 1,000,000 mixed records; deployment probe; 08:42Z | Dataset lineage is present but distillation unit and storage charge are not returned. | BOUNDARY — no unsupported zero-credit assumption | Unavailable — 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 / run | Visible inputs | Field-level result | Decision boundary | Reproducible cost / state |
|---|---|---|---|---|
Mono / b33-openai-121batch33-openai-m2-r1model/run: OpenAI GPT-4o / Responses / Audio / Realtime; observed 2026-08-27 | 1-minute mono; word timestamps; no diarization; 09:02Z | Model/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-122batch33-openai-m2-r2model/run: OpenAI GPT-4o / Responses / Audio / Realtime; observed 2026-08-27 | 15-minute stereo, 2 speakers; segment timestamps; 09:18Z | Speaker 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-123batch33-openai-m2-r3model/run: OpenAI GPT-4o / Responses / Audio / Realtime; observed 2026-08-27 | 120-minute noisy code-switched audio; word granularity; 09:34Z | Format accepted; diarization returned; duration rounding and overlap debit are absent from invoice evidence. | BOUNDARY — exact overlapping-chunk bill cannot close | Unavailable — 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 / run | Visible inputs | Field-level result | Decision boundary | Reproducible cost / state |
|---|---|---|---|---|
WebRTC / b33-openai-131batch33-openai-m3-r1model/run: OpenAI GPT-4o / Responses / Audio / Realtime; observed 2026-08-27 | 1-minute conversation; silence, barge-in, tool call; 09:50Z | Session 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-132batch33-openai-m3-r2model/run: OpenAI GPT-4o / Responses / Audio / Realtime; observed 2026-08-27 | 5-minute conversation; handoff and reconnect; 10:06Z | Reconnect 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-133batch33-openai-m3-r3model/run: OpenAI GPT-4o / Responses / Audio / Realtime; observed 2026-08-27 | 20-minute conversation; silence, handoff, reconnect; 10:22Z | SIP session accepted but transport-specific audio debit and invoice join are missing. | UNAVAILABLE — no transport-specific charge inferred | Unavailable — 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 / run | Visible inputs | Field-level result | Decision boundary | Reproducible cost / state |
|---|---|---|---|---|
1K chunks / b34-openai-111batch34-openai-m1-r1model/run: OpenAI Responses / Realtime / Images; observed 2026-08-27 | 1,000 chunks; cap 1; ranker v2; threshold .20; ACL filter; run 08:10Z | Candidates 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-112batch34-openai-m1-r2model/run: OpenAI Responses / Realtime / Images; observed 2026-08-27 | 100,000 chunks; cap 10; threshold .45; project metadata; run 08:26Z | Returned 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-113batch34-openai-m1-r3model/run: OpenAI Responses / Realtime / Images; observed 2026-08-27 | 1,000,000 chunks; cap 50; threshold .70; ACL and version filters; run 08:42Z | Ranker accepted but candidate IDs and invoice-level search units are absent. | UNAVAILABLE — no marginal retrieval bill inferred | Unavailable — 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 / run | Visible inputs | Field-level result | Decision boundary | Reproducible cost / state |
|---|---|---|---|---|
Valid DTMF / b34-openai-121batch34-openai-m2-r1model/run: OpenAI Responses / Realtime / Images; observed 2026-08-27 | 1-minute SIP call; digits 1-2-0; tool overlap; run 09:00Z | Call/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-122batch34-openai-m2-r2model/run: OpenAI Responses / Realtime / Images; observed 2026-08-27 | 5-minute call; consultative transfer; caller abort; run 09:16Z | Transfer 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-123batch34-openai-m2-r3model/run: OpenAI Responses / Realtime / Images; observed 2026-08-27 | 20-minute call; invalid digits; remote hang-up during tool; run 09:32Z | Events are present, but SIP-specific committed-audio debit and invoice join are absent. | UNAVAILABLE — no telephony charge inferred | Unavailable — 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 / run | Visible inputs | Field-level result | Decision boundary | Reproducible cost / state |
|---|---|---|---|---|
Zero previews / b34-openai-131batch34-openai-m3-r1model/run: OpenAI Responses / Realtime / Images; observed 2026-08-27 | 1 image; zero partial previews; 1024px standard; run 09:48Z | Final 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-132batch34-openai-m3-r2model/run: OpenAI Responses / Realtime / Images; observed 2026-08-27 | 1 image; one preview; client disconnect after preview; retry; run 10:04Z | Preview/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-133batch34-openai-m3-r3model/run: OpenAI Responses / Realtime / Images; observed 2026-08-27 | 3 partial images; moderation failure and abandoned retry; run 10:20Z | Preview IDs exist but abandoned-generation unit and storage/download invoice rows are missing. | UNAVAILABLE — no abandoned-work debit inferred | Unavailable — 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 / run | Visible inputs | Field-level result | Decision boundary | Reproducible tokenBill / state |
|---|---|---|---|---|
1-step mixed workflow / batch35-openai-111-1batch35-openai-m1-r1model/run: OpenAI Responses / Realtime; observed 2026-08-27 | Frozen small case; accepted controls and request/product IDs; run 08:00Z | All 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-2batch35-openai-m1-r2model/run: OpenAI Responses / Realtime; observed 2026-08-27 | Frozen medium case; repaired continuation and duplicate-control edge; run 08:16Z | Effective 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-3batch35-openai-m1-r3model/run: OpenAI Responses / Realtime; observed 2026-08-27 | Frozen boundary case; interrupted/unsupported settlement edge; run 08:32Z | Product 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 / run | Visible inputs | Field-level result | Decision boundary | Reproducible tokenBill / state |
|---|---|---|---|---|
Disjoint allow/exclude / batch35-openai-121-1batch35-openai-m2-r1model/run: OpenAI Responses / Realtime; observed 2026-08-27 | Frozen small case; accepted controls and request/product IDs; run 08:00Z | All 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-2batch35-openai-m2-r2model/run: OpenAI Responses / Realtime; observed 2026-08-27 | Frozen medium case; repaired continuation and duplicate-control edge; run 08:16Z | Effective 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-3batch35-openai-m2-r3model/run: OpenAI Responses / Realtime; observed 2026-08-27 | Frozen boundary case; interrupted/unsupported settlement edge; run 08:32Z | Product 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 / run | Visible inputs | Field-level result | Decision boundary | Reproducible tokenBill / state |
|---|---|---|---|---|
Idle conversation:none / batch35-openai-131-1batch35-openai-m3-r1model/run: OpenAI Responses / Realtime; observed 2026-08-27 | Frozen small case; accepted controls and request/product IDs; run 08:00Z | All 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-2batch35-openai-m3-r2model/run: OpenAI Responses / Realtime; observed 2026-08-27 | Frozen medium case; repaired continuation and duplicate-control edge; run 08:16Z | Effective 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-3batch35-openai-m3-r3model/run: OpenAI Responses / Realtime; observed 2026-08-27 | Frozen boundary case; interrupted/unsupported settlement edge; run 08:32Z | Product 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 / run | Visible inputs | Field-level result | Decision boundary | Reproducible tokenBill / state |
|---|---|---|---|---|
Omitted/single selector / batch36-openai-111-1batch36-openai-m1-r1model/run: OpenAI Responses / Realtime; observed 2026-08-27 | Frozen small case; request/product IDs, accepted controls, returned usage; run 08:00Z | Submitted 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-2batch36-openai-m1-r2model/run: OpenAI Responses / Realtime; observed 2026-08-27 | Frozen medium case; same product/model, mutation or retry edge; run 08:16Z | 18/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-3batch36-openai-m1-r3model/run: OpenAI Responses / Realtime; observed 2026-08-27 | Frozen boundary case; unsupported or interrupted settlement; run 08:32Z | OpenAI 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 / run | Visible inputs | Field-level result | Decision boundary | Reproducible tokenBill / state |
|---|---|---|---|---|
1-worker / omitted key / batch36-openai-121-1batch36-openai-m2-r1model/run: OpenAI Responses / Realtime; observed 2026-08-27 | Frozen small case; request/product IDs, accepted controls, returned usage; run 08:00Z | Submitted 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-2batch36-openai-m2-r2model/run: OpenAI Responses / Realtime; observed 2026-08-27 | Frozen medium case; same product/model, mutation or retry edge; run 08:16Z | 18/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-3batch36-openai-m2-r3model/run: OpenAI Responses / Realtime; observed 2026-08-27 | Frozen boundary case; unsupported or interrupted settlement; run 08:32Z | OpenAI 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 / run | Visible inputs | Field-level result | Decision boundary | Reproducible tokenBill / state |
|---|---|---|---|---|
Idle instruction/voice / batch36-openai-131-1batch36-openai-m3-r1model/run: OpenAI Responses / Realtime; observed 2026-08-27 | Frozen small case; request/product IDs, accepted controls, returned usage; run 08:00Z | Submitted 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-2batch36-openai-m3-r2model/run: OpenAI Responses / Realtime; observed 2026-08-27 | Frozen medium case; same product/model, mutation or retry edge; run 08:16Z | 18/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-3batch36-openai-m3-r3model/run: OpenAI Responses / Realtime; observed 2026-08-27 | Frozen boundary case; unsupported or interrupted settlement; run 08:32Z | OpenAI 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 / run | Visible inputs | Field-level result | Decision boundary | Reproducible tokenBill / state |
|---|---|---|---|---|
Omitted/stable hash / batch37-openai-111-r1batch37-openai-m1-r1model/run: OpenAI Responses / Evals; observed 2026-08-27 | Frozen small case; request/product IDs, accepted controls, returned usage; run 08:00Z | Submitted/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-r2batch37-openai-m1-r2model/run: OpenAI Responses / Evals; observed 2026-08-27 | Frozen medium case; same product/model, mutation or retry edge; run 08:16Z | 18/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-r3batch37-openai-m1-r3model/run: OpenAI Responses / Evals; observed 2026-08-27 | Frozen boundary case; unsupported or interrupted settlement; run 08:32Z | OpenAI 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 / run | Visible inputs | Field-level result | Decision boundary | Reproducible tokenBill / state |
|---|---|---|---|---|
Text / omitted summary / batch37-openai-121-r1batch37-openai-m2-r1model/run: OpenAI Responses / Evals; observed 2026-08-27 | Frozen small case; request/product IDs, accepted controls, returned usage; run 08:00Z | Submitted/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-r2batch37-openai-m2-r2model/run: OpenAI Responses / Evals; observed 2026-08-27 | Frozen medium case; same product/model, mutation or retry edge; run 08:16Z | 18/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-r3batch37-openai-m2-r3model/run: OpenAI Responses / Evals; observed 2026-08-27 | Frozen boundary case; unsupported or interrupted settlement; run 08:32Z | OpenAI 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 / run | Visible inputs | Field-level result | Decision boundary | Reproducible tokenBill / state |
|---|---|---|---|---|
100 text/JSON examples / batch37-openai-131-r1batch37-openai-m3-r1model/run: OpenAI Responses / Evals; observed 2026-08-27 | Frozen small case; request/product IDs, accepted controls, returned usage; run 08:00Z | Submitted/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-r2batch37-openai-m3-r2model/run: OpenAI Responses / Evals; observed 2026-08-27 | Frozen medium case; same product/model, mutation or retry edge; run 08:16Z | 18/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-r3batch37-openai-m3-r3model/run: OpenAI Responses / Evals; observed 2026-08-27 | Frozen boundary case; unsupported or interrupted settlement; run 08:32Z | OpenAI 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 / run | Visible inputs | Field-level result | Decision boundary | Reproducible tokenBill / state |
|---|---|---|---|---|
Short answer / batch38-openai-111-r1batch38-openai-m1-r1model/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:04Z | turn_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-r2batch38-openai-m1-r2model/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:16Z | first 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-r3batch38-openai-m1-r3model/run: OpenAI Realtime / computer-use; observed 2026-08-27 | AEC-on room capture, overlapping speaker, eagerness disabled; aborted response resp_7f; run 08:32Z | audio 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 / run | Visible inputs | Field-level result | Decision boundary | Reproducible tokenBill / state |
|---|---|---|---|---|
Clean near-field / batch38-openai-121-r1batch38-openai-m2-r1model/run: OpenAI Realtime / computer-use; observed 2026-08-27 | PCM16 24 kHz, 3.2 s, noise_reduction=null, transcription en-US; run 08:48Z | decoded 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-r2batch38-openai-m2-r2model/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:04Z | conditioning 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-r3batch38-openai-m2-r3model/run: OpenAI Realtime / computer-use; observed 2026-08-27 | G.711 payload presented as PCM16, two speakers, abandoned retry; run 09:20Z | decoded 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 / run | Visible inputs | Field-level result | Decision boundary | Reproducible tokenBill / state |
|---|---|---|---|---|
Click at DPR 2 / batch38-openai-131-r1batch38-openai-m3-r1model/run: OpenAI Realtime / computer-use; observed 2026-08-27 | 1280×800 viewport, DPR 2, zoom 100%, screenshot ss_301, click (742,318); run 10:00Z | target 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-r2batch38-openai-m3-r2model/run: OpenAI Realtime / computer-use; observed 2026-08-27 | 1440×900 viewport, DPR 1.25, zoom 125%, scrollY 640; screenshot ss_305; run 10:16Z | drag 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-r3batch38-openai-m3-r3model/run: OpenAI Realtime / computer-use; observed 2026-08-27 | 1024×768 iframe, DPR 2, zoom 80%, screenshot age 2.4 s; run 10:32Z | action 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 →
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.
| Model | Input /M | Output /M | Blended /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 |
OpenAI API pricing and setup
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
Start building
Operational facts
Verified 2026-08-14 against source.
| OpenAI-compatible | Yes |
| API base URL | https://api.openai.com/v1 |
| Auth model | Bearer API key |
| Prompt caching | Yes |
| Batch discount | 50% |
| Free tier | No free tier |
| Free-tier limits | No free API tier published; API usage is billed under the account's usage tier. |
| Free-tier expiry | Not published |
| Rate-limit model | Usage tiers 1-5, auto-promoted by cumulative spend and account age |
| Data residency | US by default; EU data residency available on enterprise agreements |
| Trains on API data | No |
| SLA published | Yes |
Lifecycle
OpenAI has 12 legacy models still routable. Full dates and successors on the model deprecation tracker.
Switching to and from OpenAI
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
