How Codex bills credits: one formula
OpenAI's rate card prices Codex and ChatGPT Work with a single formula, each part at its own rate:
credits = uncached input tokens ÷ 1,000,000 × input rate
+ cached input tokens ÷ 1,000,000 × cached rate
+ output tokens ÷ 1,000,000 × output rateRates per model (Standard speed, credits per 1M tokens, checked 2026-09-27):
| Model | Input | Cached input | Output | Fast mode (credits) |
|---|---|---|---|---|
| GPT-6 Astra | 250 | 25 | 1,250 | × 2 |
| GPT-6 Sol | 50 | 5 | 250 | × 2 |
| GPT-6 Luna | 2.5 | 0.25 | 12.5 | × 2 |
| GPT-5.6 Sol | 100 | 10 | 500 | — |
| GPT-5.6 Terra | 50 | 5 | 300 | — |
| GPT-5.6 Luna | 5 | 0.5 | 30 | — |
- The Fast column is the multiplier on purchased credits: 2× the Standard rate. Against your plan's included allowance OpenAI counts Fast at 2.5× (pricing page, checked 2026-10-11).
- Codex credit billing has no cache-write charge (the API has one).
- GPT-5.6 Sol's promotional pricing runs at least through 2026-11-21 and applies to usage paid with purchased credits.
- GitHub code review (@codex on a pull request, automatic reviews) bills as GPT-5.3-Codex; GPT-5.5 was retired from Codex on 2026-10-14.
- At the launch price of $40 per 1,000 credits this table equals the API list prices — GPT-6 Astra's 250 / 1,250 credits are $10 / $50.
Three task sizes, priced (worked examples)
The token counts below are our illustrative assumptions, not OpenAI data. “Cached input” is context re-sent across turns that hits the cache:
| Task | Uncached input | Cached input | Output |
|---|---|---|---|
| Small: read a few files, fix one bug | 25,000 | 50,000 | 5,000 |
| Medium: multi-file feature change plus tests | 80,000 | 220,000 | 20,000 |
| Large: a long refactoring session | 300,000 | 1,200,000 | 80,000 |
Credits per task at OpenAI's rates:
| Model | Small | Medium | Large |
|---|---|---|---|
| GPT-6 Astra | 14 | 51 | 205 |
| GPT-6 Sol | 2.8 | 10 | 41 |
| GPT-6 Luna | 0.1 | 0.5 | 2.1 |
| GPT-5.6 Sol | 5.5 | 20 | 82 |
| GPT-5.6 Terra | 3 | 11 | 45 |
| GPT-5.6 Luna | 0.3 | 1.1 | 4.5 |
And as “tasks per 500 credits” (Standard speed; Fast mode in brackets):
| Model | Small | Medium | Large |
|---|---|---|---|
| GPT-6 Astra | 36 (18) | 9 (4) | 2 (1) |
| GPT-6 Sol | 181 (90) | 49 (24) | 12 (6) |
| GPT-6 Luna | 3,636 (1,818) | 990 (495) | 243 (121) |
| GPT-5.6 Sol | 90 | 24 | 6 |
| GPT-5.6 Terra | 166 | 45 | 11 |
| GPT-5.6 Luna | 1,666 | 450 | 111 |
Sanity check against OpenAI's reference: on GPT-5.6 Sol the small task costs about 5.5 credits, inside OpenAI's 2–15 range for a typical task; the medium one costs about 20, above the top of that range. So the assumptions are the right order of magnitude, but read the medium and large rows as heavier-than-typical work.
Why the same task can cost ten times more
- Model. Per token, GPT-6 Astra costs 5× GPT-6 Sol and 100× GPT-6 Luna. Nothing else moves the bill as much.
- Output costs 5–6× input. Whole-file rewrites, long explanations and repeated full listings multiply the cost.
- Caching. Cached input bills at a tenth. Pushing one job forward in one session keeps most repeated context at the cached rate; making it re-read a pile of files from scratch pays full price.
- Context size. AGENTS.md and every enabled MCP server ride along with each message — OpenAI names both as reasons limits drain faster.
- Fast mode. 2× the credits on the GPT-6 models (2.5× against the plan's included allowance).
- Images. Turns with image generation use allowance 3–5× faster on average.
- Reasoning and tools. In OpenAI's words, model choice, context, reasoning, tool use, retrieval and caching all affect usage; tasks that look similar can consume different amounts, and prompt length alone isn't a reliable estimate.
Voice, Excel and PowerPoint draw on the same balance
| Feature | OpenAI's reference | 500 credits is about |
|---|---|---|
| ChatGPT Voice in the desktop app | 1.25 credits per minute (tasks started by voice bill separately at model rates) | 400 minutes of conversation |
| ChatGPT for Excel / Google Sheets | Typically 5–20 credits per message | 25–100 messages |
| ChatGPT for PowerPoint | Typically 10–50 credits per message | 10–50 messages |
8 ways to make 500 credits last twice as long
The first six are OpenAI's own advice from its pricing pages; the last two follow straight from the rate card:
- Pick the model per task. GPT-6 Sol or Luna for routine edits and tests, Astra for the problems that are actually hard. This alone multiplies what a balance buys.
- Shrink AGENTS.md. In large repos nest it by directory so only the relevant part loads.
- Disable MCP servers you're not using. Each one adds context to every message.
- Limit source material. Name the files and narrow the scope instead of letting it scan the whole repo.
- Say what output you need. Audience, format, length — and separate required work from optional improvements.
- Check the usage dashboard every week or two. chatgpt.com/codex/settings/usage, or
/statusin the CLI. - Leave Fast mode off by default. Same work, 2× the credits.
- Finish one job in one session. Keep repeated context on the cached rate (a tenth) instead of starting fresh and re-reading the repo.
Quick reference: how much to buy
Using the medium task (small task for Luna); prices read hourly from the pricing page:
| Packs | Credits | Price (≈ USDT) | Medium on GPT-6 Sol | Medium on GPT-6 Astra | Small on GPT-6 Luna |
|---|---|---|---|---|---|
| 1 | 500 | ¥180 (≈ 26.83 USDT) | 49 | 9 | 3,636 |
| 2 | 1,000 | ¥360 (≈ 53.66 USDT) | 99 | 19 | 7,272 |
| 5 | 2,500 | ¥900 (≈ 134.13 USDT) | 247 | 49 | 18,181 |
| 10 | 5,000 | ¥1,800 (≈ 268.26 USDT) | 495 | 99 | 36,363 |
| 20 | 10,000 | ¥3,600 (≈ 536.52 USDT) | 990 | 198 | 72,727 |
On ClaudeMax a pack of 500 credits costs ¥180 (≈ 26.83 USDT); order 1–20 packs at once, added to your own Plus or Pro account (not Free), valid 12 months from purchase. Rules and steps: buying guide. Credits or an upgrade? The break-even.