Skip to content
Effloow
← Back to article
EFFLOOW LAB LAB-RUN

Gpt 56 Explicit Prompt Cache Controls Cost Proof 2026

Evidence notes document the bounded local or source-based checks behind an Effloow article. They are not product endorsements, legal advice, or benchmark claims.
  • Date: 2026-07-20 (UTC)
  • Script: scripts/gpt56-explicit-cache-probe.py
  • Artifact: data/lab-runs/gpt-56-explicit-prompt-cache-controls-cost-proof-2026.openai.json
  • Endpoint: https://api.openai.com/v1/responses
  • Models: gpt-5.6-luna, gpt-5.5-2026-04-23
  • Purpose: measure what GPT-5.6's explicit prompt-cache controls actually change versus implicit caching, and versus GPT-5.5's 24h retention
  • Prefix: 9,208 characters of synthetic, invented "operations handbook" text, SHA-256 80761fcc454ee750... (full digest in the JSON artifact)
  • Budget guard: every call passed through scripts/proof_budget.py (check_budget before, record_usage after)
  • Safety boundary: no confidential, customer, credential, or private data. The handbook text is entirely fictional.

Command

python3 scripts/gpt56-explicit-cache-probe.py

Configurations

ID Model Cache settings
A gpt-5.6-luna prompt_cache_key only (implicit, the default)
B gpt-5.6-luna prompt_cache_options: {"mode": "explicit"} + prompt_cache_breakpoint on the handbook block
B2 gpt-5.6-luna same as B, plus prompt_cache_options.ttl: "24h" (1 call)
C gpt-5.5-2026-04-23 prompt_cache_retention: "24h" (the legacy control)

Identical prefix and identical question in every configuration. 4 calls per config (B2: 1 call), ~2 seconds apart.

Raw output

[A_gpt56_implicit] call 1: input=2032 cached=0 cache_write=2029
[A_gpt56_implicit] call 2: input=2032 cached=2029 cache_write=None
[A_gpt56_implicit] call 3: input=2032 cached=2029 cache_write=None
[A_gpt56_implicit] call 4: input=2032 cached=2029 cache_write=None
[B_gpt56_explicit] call 1: input=2032 cached=0 cache_write=2001
[B_gpt56_explicit] call 2: input=2032 cached=2001 cache_write=None
[B_gpt56_explicit] call 3: input=2032 cached=2001 cache_write=None
[B_gpt56_explicit] call 4: input=2032 cached=2001 cache_write=None
[B2_gpt56_explicit_ttl_24h] call 1: ERROR HTTP 400: {
  "error": {
    "message": "Invalid value: '24h'. Supported values are: '30m'.",
    "type": "invalid_request_error",
    "param": "prompt_cache_options.ttl",
    "code": "invalid_value"
  }
}
[C_gpt55_retention_24h] call 1: input=2032 cached=0 cache_write=None
[C_gpt55_retention_24h] call 2: input=2032 cached=1792 cache_write=None
[C_gpt55_retention_24h] call 3: input=2032 cached=1792 cache_write=None
[C_gpt55_retention_24h] call 4: input=2032 cached=1792 cache_write=None

Measured summary

Config Input tokens/call Cached tokens on repeat calls Share of prefix cached cache_write_tokens on first call
A — 5.6 implicit 2,032 2,029 99.9% 2,029
B — 5.6 explicit breakpoint 2,032 2,001 98.5% 2,001
C — 5.5, retention 24h 2,032 1,792 88.2% field absent

What worked

  • Both GPT-5.6 modes produced a cache hit on the very next call, with no warm-up delay beyond the ~2s gap between requests.
  • The explicit breakpoint was accepted on the developer-role content block and produced a stable, repeatable cached prefix of exactly 2,001 tokens across all three repeat calls.
  • GPT-5.5 with prompt_cache_retention: "24h" also hit on the second call, at a smaller cached prefix (1,792 tokens).

What failed

  • prompt_cache_options.ttl: "24h" was rejected with HTTP 400: Invalid value: '24h'. Supported values are: '30m'. The 24-hour cache lifetime that GPT-5.5 offers has no equivalent on GPT-5.6 in this run.

What is new on 5.6

  • cache_write_tokens appeared as a populated field in usage.input_tokens_details on the first GPT-5.6 call of each config, and was absent on GPT-5.5. Per OpenAI's pricing page, cache writes bill at 1.25x the uncached input rate.

Limitations

  • Single prefix, single account, single region, one session on 2026-07-20. Cache behaviour is infrastructure-dependent and may vary by tenant, load, and time.
  • 4 calls per config is enough to show hit/miss and the write field, not enough to characterise eviction, cross-machine routing, or hit rate under production concurrency.
  • Only gpt-5.6-luna was tested. Sol and Terra were not exercised.
  • Repeat calls were ~2 seconds apart, so nothing here tests the 30-minute TTL boundary itself.
  • All dollar figures in the published article are arithmetic over OpenAI's published price table and these measured token counts. No billing statement was read; no dollar amount was directly measured.

Read the article

This note supports the public article and records what was actually checked.

Open article →