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 rate

Rates per model (Standard speed, credits per 1M tokens, checked 2026-09-27):

ModelInputCached inputOutputFast mode (credits)
GPT-6 Astra250251,250× 2
GPT-6 Sol505250× 2
GPT-6 Luna2.50.2512.5× 2
GPT-5.6 Sol10010500—
GPT-5.6 Terra505300—
GPT-5.6 Luna50.530—
  • 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:

TaskUncached inputCached inputOutput
Small: read a few files, fix one bug25,00050,0005,000
Medium: multi-file feature change plus tests80,000220,00020,000
Large: a long refactoring session300,0001,200,00080,000

Credits per task at OpenAI's rates:

ModelSmallMediumLarge
GPT-6 Astra1451205
GPT-6 Sol2.81041
GPT-6 Luna0.10.52.1
GPT-5.6 Sol5.52082
GPT-5.6 Terra31145
GPT-5.6 Luna0.31.14.5

And as “tasks per 500 credits” (Standard speed; Fast mode in brackets):

ModelSmallMediumLarge
GPT-6 Astra36 (18)9 (4)2 (1)
GPT-6 Sol181 (90)49 (24)12 (6)
GPT-6 Luna3,636 (1,818)990 (495)243 (121)
GPT-5.6 Sol90246
GPT-5.6 Terra1664511
GPT-5.6 Luna1,666450111

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

  1. Model. Per token, GPT-6 Astra costs 5× GPT-6 Sol and 100× GPT-6 Luna. Nothing else moves the bill as much.
  2. Output costs 5–6× input. Whole-file rewrites, long explanations and repeated full listings multiply the cost.
  3. 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.
  4. Context size. AGENTS.md and every enabled MCP server ride along with each message — OpenAI names both as reasons limits drain faster.
  5. Fast mode. 2× the credits on the GPT-6 models (2.5× against the plan's included allowance).
  6. Images. Turns with image generation use allowance 3–5× faster on average.
  7. 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

FeatureOpenAI's reference500 credits is about
ChatGPT Voice in the desktop app1.25 credits per minute (tasks started by voice bill separately at model rates)400 minutes of conversation
ChatGPT for Excel / Google SheetsTypically 5–20 credits per message25–100 messages
ChatGPT for PowerPointTypically 10–50 credits per message10–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:

  1. 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.
  2. Shrink AGENTS.md. In large repos nest it by directory so only the relevant part loads.
  3. Disable MCP servers you're not using. Each one adds context to every message.
  4. Limit source material. Name the files and narrow the scope instead of letting it scan the whole repo.
  5. Say what output you need. Audience, format, length — and separate required work from optional improvements.
  6. Check the usage dashboard every week or two. chatgpt.com/codex/settings/usage, or /status in the CLI.
  7. Leave Fast mode off by default. Same work, 2× the credits.
  8. 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:

PacksCreditsPrice (≈ USDT)Medium on GPT-6 SolMedium on GPT-6 AstraSmall on GPT-6 Luna
1500¥180 (≈ 26.83 USDT)4993,636
21,000¥360 (≈ 53.66 USDT)99197,272
52,500¥900 (≈ 134.13 USDT)2474918,181
105,000¥1,800 (≈ 268.26 USDT)4959936,363
2010,000¥3,600 (≈ 536.52 USDT)99019872,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.