{
 "samples": {
  "en-short.txt": {
   "chars": 298,
   "tokens": 79
  },
  "en-mid.txt": {
   "chars": 1399,
   "tokens": 283
  },
  "en-long.txt": {
   "chars": 2380,
   "tokens": 495
  },
  "zh-short.txt": {
   "chars": 102,
   "tokens": 77
  },
  "zh-mid.txt": {
   "chars": 401,
   "tokens": 309
  },
  "zh-long.txt": {
   "chars": 667,
   "tokens": 515
  }
 },
 "S1": {
  "en": {
   "low": {
    "doc_tokens": 79,
    "ds_peak": 0.13,
    "oai": 0.16,
    "ds_peak_per_1k": 2.69,
    "oai_per_1k": 3.11
   },
   "mid": {
    "doc_tokens": 283,
    "ds_peak": 0.24,
    "oai": 0.28,
    "ds_peak_per_1k": 4.79,
    "oai_per_1k": 5.63
   },
   "high": {
    "doc_tokens": 495,
    "ds_peak": 0.43,
    "oai": 0.51,
    "ds_peak_per_1k": 8.6,
    "oai_per_1k": 10.28
   }
  },
  "zh": {
   "low": {
    "doc_tokens": 77,
    "ds_peak": 0.13,
    "oai": 0.16,
    "ds_peak_per_1k": 2.68,
    "oai_per_1k": 3.1
   },
   "mid": {
    "doc_tokens": 309,
    "ds_peak": 0.24,
    "oai": 0.28,
    "ds_peak_per_1k": 4.85,
    "oai_per_1k": 5.69
   },
   "high": {
    "doc_tokens": 515,
    "ds_peak": 0.43,
    "oai": 0.52,
    "ds_peak_per_1k": 8.64,
    "oai_per_1k": 10.32
   }
  }
 },
 "S2": {
  "en": {
   "low": {
    "ds_peak": 0.99,
    "ds_off": 0.49,
    "oai": 1.32,
    "oai_batch": 0.66,
    "ds_peak_per_1k": 1.98,
    "oai_per_1k": 2.63,
    "oai_batch_per_1k": 1.32
   },
   "mid": {
    "ds_peak": 2.02,
    "ds_off": 1.01,
    "oai": 2.56,
    "oai_batch": 1.28,
    "ds_peak_per_1k": 4.04,
    "oai_per_1k": 5.11,
    "oai_batch_per_1k": 2.56
   },
   "high": {
    "ds_peak": 3.89,
    "ds_off": 1.94,
    "oai": 4.84,
    "oai_batch": 2.42,
    "ds_peak_per_1k": 7.78,
    "oai_per_1k": 9.67,
    "oai_batch_per_1k": 4.84
   }
  },
  "zh": {
   "low": {
    "ds_peak": 0.99,
    "ds_off": 0.49,
    "oai": 1.32,
    "oai_batch": 0.66,
    "ds_peak_per_1k": 1.97,
    "oai_per_1k": 2.63,
    "oai_batch_per_1k": 1.32
   },
   "mid": {
    "ds_peak": 2.05,
    "ds_off": 1.02,
    "oai": 2.58,
    "oai_batch": 1.29,
    "ds_peak_per_1k": 4.1,
    "oai_per_1k": 5.17,
    "oai_batch_per_1k": 2.58
   },
   "high": {
    "ds_peak": 3.91,
    "ds_off": 1.95,
    "oai": 4.86,
    "oai_batch": 2.43,
    "ds_peak_per_1k": 7.82,
    "oai_per_1k": 9.71,
    "oai_batch_per_1k": 4.86
   }
  }
 },
 "assumptions": {
  "prefix_small": 400,
  "prefix_shared": 4000,
  "retry_s1": 0.05,
  "retry_s2": 0.03,
  "out_by_tier": {
   "low": 200,
   "mid": 400,
   "high": 800
  },
  "rates": {
   "ds-peak": "DeepSeek deepseek-flash peak (¥2/¥8, cache ¥0.04)",
   "ds-off": "DeepSeek deepseek-flash off-peak (half)",
   "oai": "OpenAI gpt-6.1-sol ($2/$10, cached $0.10)",
   "oai-batch": "OpenAI gpt-6.1-sol Batch (50%)"
  },
  "as_of": "2026-11-11; rates re-verified 2026-11-12"
 },
 "corrections": [
  "2026-11-12: the guide's per-1,000-documents sentence had repeated the 500-doc OpenAI figures ($2.58/$1.29, Chinese mid) instead of doubling; tables now label language per row/column and per-1k values come from this file (oai_per_1k, oai_batch_per_1k, ds_peak_per_1k).",
  "2026-11-12: the S2 table is now labeled an idealized warm-cache lower bound; warm-to-cold bounds added below from OpenAI's documented cache-write rates (30m 1.25x, 12h 2.5x input; min cacheable prefix 1,024 tokens) and DeepSeek's no-write-fee cache-miss pricing.",
  "Token counts (samples) are the original 2026-11-11 o200k_base measurements, unchanged."
 ],
 "cache_bounds": {
  "workload": "S2 mid, EN sample (283 doc tokens, 4,000-token prefix, 400 output, 500 docs, 3% retry)",
  "openai_gpt_6_1_sol": {
   "warm_lower_bound_usd": 2.56,
   "cold_every_request_30m_ttl_usd": 7.5,
   "cold_every_request_12h_ttl_usd": 12.65,
   "write_rates": "30m TTL = 1.25x input ($2.50/1M), 12h TTL = 2.5x ($5.00/1M), replacing input billing; min cacheable prefix 1,024 visible input tokens (OpenAI prompt caching guide, checked 2026-11-12)"
  },
  "deepseek_peak": {
   "warm_lower_bound_cny": 2.02,
   "cold_every_request_cny": 6.06,
   "write_rates": "no write fee; cold request pays normal cache-miss input price (official pricing page, re-checked 2026-11-12)"
  },
  "note": "Real months land between the bounds depending on request pacing vs TTL."
 }
}