API/{chat gpt, claude, deepseek}/*.csv exports.| model | avg cost / req | vs deepseek | vs gpt-4o |
|---|---|---|---|
| gpt-5.5-2026-04-23 | $0.00890 | 332× | 11.7× |
| claude-sonnet-4-5 / 4-6 | $0.00214 | 80× | 2.8× |
| gpt-4o-2024-11-20 | $0.00076 | 28× | ref |
| deepseek-v4-flash (alias, 05-13/15) | $0.0000268 | ref | 1/28× |
| deepseek-v4-flash (explicit pin, 05-16) | $0.000187 | 7× | 1/4× |
The 7× DeepSeek per-call cost jump on 05-16 (explicit-pin) is from 26× more output tokens per request — see "DeepSeek · cache mechanism + the 05-16 surprise" below.
output_text length stays in the ~30-character Standard Thai range across every model we ran, confirming the gpt-5.5 surplus is reasoning, not verbosity.
Observed mid-sweep while the refresh was running: GPT-5.5's throughput collapsed ~20× between the Thai-imperative prompt and the English-imperative prompt despite identical source text. Reasoning-token spend is non-stationary in the instruction surface, not in the dataset.
| prompt | instruction | throughput | relative |
|---|---|---|---|
| p1 | Thai imperative · จง… | ~10 rows/min | 1.0× |
| p2 | English imperative · Translate the following… | ~0.5 rows/min | 0.05× |
| p3 | Thai question · …แปลว่าอย่างไร | ~8 rows/min (recovered) | 0.8× |
DeepSeek V4-flash bills two token types separately: input cache miss and input cache hit. The 3-prompt fan reuses the same chat-template prefix 99 times per row, which DeepSeek's automatic prompt caching detects and discounts:
| date | requests | out_tok | cache_hit | cache_miss | hit rate | cost |
|---|---|---|---|---|---|---|
| 2026-05-13 (v1, alias) | 397 | 11,221 | 12,928 | 52,409 | 19.8% | $0.0105 |
| 2026-05-15 (v2, alias) | 397 | 9,722 | 11,520 | 57,118 | 16.8% | $0.0108 |
| 2026-05-16 (v2, explicit pin) | 398 | 255,540 | 50,432 | 18,380 | 73.3% | $0.0743 |
deepseek-chat alias on 05-13/15 vs deepseek-v4-flash explicit pin on 05-16. Either the alias was routing to a different (terser) snapshot, or v4-flash has a thinking/reasoning mode enabled by default under the explicit pin. This likely explains the −2.07 chrf_avg regression documented in the diagnostic findings: long verbose outputs miss the short Standard-Thai-translation reference style.
Cache hits are 50× cheaper than cache misses on DeepSeek ($0.0000000028 vs $0.00000014 per token). Per-call cost averages $0.0000268 across 05-13/15 and $0.000187 on 05-16. Even the bloated 05-16 run kept DeepSeek at 1.4% of the total 4-day spend.
| date | provider | model | requests | input tok | output tok | cost |
|---|---|---|---|---|---|---|
| 2026-05-13 | OpenAI | gpt-4o-2024-11-20 | 397 | 74,639 | 10,359 | $0.2902 |
| 2026-05-13 | Anthropic | claude-sonnet-4-5 | 397 | 159,354 | 23,807 | $0.8400 |
| 2026-05-13 | DeepSeek | deepseek-v4-flash | 397 | 65,337 | 11,221 | $0.0105 |
| 2026-05-15 | OpenAI | gpt-4o-2024-11-20 | 397 | 79,270 | 10,018 | $0.3076 |
| 2026-05-15 | OpenAI | gpt-5.5-2026-04-23 (smoke) | 2 | 364 | 248 | ~$0.0000 |
| 2026-05-15 | Anthropic | claude-sonnet-4-5 | 397 | 168,550 | 22,501 | $0.8500 |
| 2026-05-15 | Anthropic | claude-sonnet-4-6 (smoke) | 1 | 396 | 10 | ~$0.0000 |
| 2026-05-15 | DeepSeek | deepseek-v4-flash | 396 | 68,482 | 9,423 | $0.0107 |
| 2026-05-16 | OpenAI | gpt-5.5-2026-04-23 | 401 | 79,768 | 105,593 | $3.5666 |
| 2026-05-16 | Anthropic | claude-sonnet-4-6 | 397 | 168,946 | 23,115 | $0.8600 |
| 2026-05-16 | DeepSeek | deepseek-v4-flash (explicit pin) | 398 | 68,812 | 255,540 | $0.0743 |
| Grand total | $6.8100 | |||||
DeepSeek 2026-05-16 numbers are now from the refreshed cost + amount CSVs. Output tokens jumped 26× per request vs prior days (255,540 / 398 = 642 tok/req vs 24 tok/req on 05-13/15). See "Surprise · DeepSeek v4-flash explicit pin produces 26× more output tokens" below.
output_text. Budget planning that uses GPT-4o-era token estimates underestimates GPT-5 costs by ~10×. Future refreshes should pre-budget at ~$0.009 per call for any GPT-5 family member.
deepseek-v4-flash pin, the cache rate jumped to 73% (50,432 / 18,380). For the 3-prompt fan structure where every prompt shares the system message + Satu prefix, this is essentially free repetition — and the explicit pin captures it dramatically better than the alias did.
deepseek-chat alias was routing to a terser snapshot, or the explicit deepseek-v4-flash pin enables thinking/reasoning behaviour by default. Likely explanation for the −2.07 chrf_avg regression documented in the diagnostic findings (verbose outputs hurt chrf on short-translation targets). Costs jump 7× per call (still 47× cheaper than gpt-4o though).
API/ ├── api.txt ◄ keys (gitignored) ├── chat gpt/ │ ├── cost_2026-04-16_2026-05-16.csv ◄ daily USD spend │ └── completions_usage_2026-04-16_2026-05-16.csv ◄ per-model req + token counts ├── claude/ │ ├── claude_api_cost_2026_05_01_to_2026_05_16.csv ◄ cost split by input_no_cache / output / cache_* │ └── claude_api_tokens_2026_05.csv ◄ raw token counts per model_version └── deepseek/ ├── usage_data_2026_5.zip ◄ raw export └── usage_data_2026_5/ ├── cost-2026-5.csv ◄ daily USD per model └── amount-2026-5.csv ◄ token counts split by cache_hit / cache_miss / output
All four CSVs are downloaded directly from each provider's billing dashboard. They are the
ground truth — the registry's model_id labels may diverge from the served model
(as documented in docs/api_model_provenance.md for the DeepSeek
deepseek-chat alias). Always cite billing CSVs when reporting cost in the paper.