Guides / prompt version cost increase

Tracing a cost increase back to the prompt version that caused it

A prompt version cost increase shows up as a step change in cost per call on one specific date, with call volume unchanged. Finding the edit behind it needs a prompt version recorded on each call, because an invoice can't be bisected after the fact. Culpa, a local-first LLM cost, margin, and forecast ledger, names the prompt version behind every call, so the step resolves to a diff.

Why this happens

Two cost patterns look similar on a monthly chart and need completely different investigations. Gradual growth points at drift across many features. A step change on one day points at a deploy, and that's much easier to solve if the data supports it. Daily granularity finds the date. Cost per call isolates unit cost from volume. A prompt version on the call turns the remaining question into reading a diff, and without it the only remaining tool is rolling changes back in production one at a time.

What this usually looks like

  • Spend stepped up on a specific day rather than ramping across a week.
  • Call volume through the step is flat, so the change is in unit cost.
  • Several things shipped that day and nobody can say which one moved the number.
  • The proposed investigation involves reverting changes in production to see what happens.

Free, no card, no account

Run the free Cost Leak Scan

It shows your most expensive conversation before you install anything.

Run a free scan

Mistakes that cost the most

MistakeWhy it hurtsDo instead
Investigating a step change with monthly totals.A month hides the date, and the date is most of the answer.Chart daily spend and daily cost per call. The step will name its own day.
Looking at total spend rather than cost per call.Volume and unit cost move together in a total, so you can't tell which one changed.Divide by calls first. A flat call count with rising cost per call is a prompt or model change, full stop.
Bisecting by reverting changes in production.It's slow, it's risky, and it only works while the traffic pattern stays comparable.Record a prompt version on every call so the bisect happens in the data rather than in production.

Run this check tonight

  1. Chart daily spend for the last 60 days and mark the exact day the step happened.
  2. Divide by daily call count. Confirm cost per call moved and volume didn't.
  3. Convert the per-call delta into tokens using your input and output rates. That number is what got added.
  4. List everything deployed on that date and compare each candidate against the token delta.
  5. Check whether calls carry a prompt version. If they don't, add it now so the next step change takes minutes.

Turning a daily step change into a token count

Illustrative example

A feature on GPT-5.4 at real rates of $0.0025 per 1k input and $0.015 output. Daily spend and call volume below are modelled, and output length was confirmed unchanged.

Through the 13th: $840 a day across 220,000 calls = $0.0038182 per call
From the 14th: $1,290 a day across 220,000 calls = $0.0058636 per call
Delta per call = $0.0020455, with output length unchanged
At the $0.0025 per 1k input rate that's 818 input tokens added to every call
$450 a day, which annualises to $164,250

The step converts cleanly into 818 added input tokens, which the diff for that day shows as three new instructions and two examples. The investigation took arithmetic rather than a production rollback.

Every number, with its confidence and source

FigureWhat it meansConfidenceSource
$0.0038182 to $0.0058636modelled cost per call either side of a single-day step change on GPT-5.4estimatedDaily spend divided by daily calls, at real GPT-5.4 rates per 1k tokens from the price book, effective 2026-07-02. A range because the daily figures are modelled.
818 tokensinput tokens added per call, derived from the observed per-call cost deltacalculated$0.0020455 divided by the $0.0025 per 1k input rate, with output length held constant.

What a generic answer can’t know

A provider has no idea you deployed anything. Connecting a spend step to a specific prompt revision needs the revision recorded on the call as it happens, alongside the token counts, in your own system. Culpa keeps both on your infrastructure, where your prompts and responses stay, and counts the calls to run your plan.

Questions founders ask next

How do I find which prompt caused a cost increase?

Chart daily cost per call to find the date, convert the per-call delta into tokens using your rates, then compare that token count against everything deployed that day. With a prompt version on each call the comparison is a query rather than a search.

What if several prompts changed on the same day?

Then only per-call version data separates them. Without it you're left reverting changes in production one at a time, which is slow and only works while traffic stays comparable across the test.

Is a gradual rise ever a prompt change?

Sometimes, when a change rolls out progressively behind a flag. The ramp shape then follows the rollout percentage rather than a step, which is another reason to record the version rather than infer the cause from the curve.

On your infrastructure

Culpa runs on your infrastructure. Your prompts and responses never leave it. Culpa counts calls to run your plan, and it fails open, so if it ever breaks your app keeps running.


How Culpa works

Find the culprit. Not just the total.

Your dashboard shows what you spent. It stops short of who spent it. Culpa shows the conversation, the user and the feature behind it.

Your prompts stay local.

Culpa runs on your own infrastructure. What you send to a model reaches us at no point.

Every dollar has a name.

Follow any charge to the conversation, the user, the feature and the customer behind it.

See the bill before it lands.

Cost your next feature before you ship it. You get the likely bill and the worst case, at best, median, p90 and p99.

Three steps to your first answer.

1

Change one base URL.

Or drop in the Python or TypeScript library.

2

Find your most expensive conversation.

In the first session, not the first week.

3

Cost your next feature before you ship it.

Base URLhttp://localhost:4545/v1Your traffic keeps flowing if Culpa ever stops.

Why the bill went up

Example dashboard

Calls traced

418,209

across 3 projects

Spend this week

$378.41

+ $182 vs last week

Failed calls

312

74% retried, and you paid for all of them

+ $182 this week traced to one culprit

Spend over 14 days

$0$20$40$60$8024262830020406
user_384report_generatorconv_91fprompt_v1894,220 tokens3 retries$6.81

Most expensive users

user_384$38.42
user_119$21.07
user_562$14.90
user_204$8.30
user_871$5.10

Next week forecast

Best$180
Median$240
p90$310
p99$395

Graded against reality. Accuracy shown as results land.

Free, no card, no account

Run the free Cost Leak Scan

It shows your most expensive conversation before you install anything.

Run a free scan

Keep reading


Sources: OpenAI API pricing. Last reviewed 2026-08-01. Plain text version.