TokenSkim

Why is my OpenAI bill so high? The 6 usual culprits

Teams pick a model, ship, and then watch the invoice climb past forecast within a quarter. The provider was rarely the variable that mattered — visibility was. Here are the six drivers behind almost every surprise OpenAI bill, ranked by how often they're the real cause.

1. You're re-sending the same prompt at full price

If a large system prompt or document is included on every call and prompt caching isn't enabled, you pay full input price to reprocess identical tokens each time.

Cached input bills at a fraction of the standard rate. On a repetitive chat or RAG flow this alone is often a double-digit percentage of the bill.

2. Everything runs on the top model

The price gap between tiers is enormous — often more than 10x from the cheapest to the most expensive model. Routing simple classification and extraction to a small model while reserving the frontier model for genuinely hard reasoning is the single largest lever.

3. Non-urgent work runs synchronously

Nightly jobs, bulk classification, evals and report generation don't need a real-time answer. The Batch API is 50% cheaper on both input and output for anything that tolerates minutes-to-hours latency.

4. Unbounded output

Output tokens cost several times more than input. Leaving max_tokens unset and using verbose formats quietly inflates the most expensive token class.

5. Duplicate and retry calls

A meaningful share of production queries are near-duplicates — same document, same question, or a retry storm when a response fails to parse. Without semantic caching you pay to generate identical tokens twice.

6. Old, overpriced model snapshots

Deprecated model versions often cost several times their current-generation replacement for the same or better quality. Migrating is a config change, not a trade-off.

Turn this into your number

Drop your usage export into the free analyzer and see how much of this applies to your account — provable savings separated from estimates. Nothing is uploaded.

Analyze my usage — free

FAQ

How do I see which of these apply to me?
Download your usage export from the OpenAI dashboard and drop it into the free analyzer. It measures your caching gap, tier mix, batch share and stale-model spend and shows the monthly figure behind each — parsed in your browser, no keys.