Guides / fine tuning vs base model cost
What a fine-tune costs against the base model you gave up
Fine-tuning cost has three parts: training, inference on the tuned model, and the frontier model you stopped using. OpenAI's pricing page lists fine-tuning on prior-generation models only, so the third part is real. Culpa, a local-first LLM cost, margin, and forecast ledger, prices each call so the comparison runs on your own traffic.
Why this happens
Fine-tuning is usually costed as the training run, which is the small part and the only part that arrives as a single obvious charge. Two larger costs sit either side of it. The first is inference: a tuned model bills at its own rates for as long as you serve it, so a rate difference of cents per million compounds across every call for the life of the deployment. The second is the model you gave up. On OpenAI's published pricing, read 2026-08-05, every model priced for fine-tuning is prior generation, and the GPT-5 family appears nowhere in that section. So committing to a fine-tune means committing to a gpt-4.1, gpt-4o or o4-mini generation model, and the base rates you're comparing against keep moving without you. The comparison also refuses to resolve in general, because it depends on the shape of your traffic rather than on which model is better. Fine-tuned gpt-4.1 is cheaper than base gpt-5.4 on output and dearer on input, so there's an exact ratio where they cross. Which side you land on is a property of your own traffic, and it also depends on whether the fine-tune changes your prompts or only the model running them. Those two readings of one decision disagree.
What this usually looks like
- Your fine-tuning business case counts the training run and stops.
- Nobody compared the tuned model's inference rate to the base model's.
- You fine-tuned a model a generation behind and never revisited it.
- You picked o4-mini, whose training bills by the hour, and budgeted it from a token count.
- You can't say whether your traffic is input-heavy or output-heavy.
Free, no card, no account
Run the free Cost Leak Scan
It shows your most expensive conversation before you install anything.
Mistakes that cost the most
| Mistake | Why it hurts | Do instead |
|---|---|---|
| Costing a fine-tune as its training run. | Training is one charge and inference is every call afterwards, which is the larger number by far. | Model training plus inference over the deployment's expected life, against the base model. |
| Comparing a tuned model only to the base model it was tuned from. | The real alternative is the current frontier model, which may be cheaper on your token shape. | Compare against what you would actually run today, not against last year's default. |
| Assuming a fine-tune is cheaper because the model is smaller. | Fine-tuned inference carries its own rate card, and it can exceed a newer frontier rate. | Read both rate cards and work out the crossover for your input to output ratio. |
| Budgeting an hourly training charge from a token count. | Wall-clock hours track dataset size and epochs only loosely, so a token count won't give you the number. | Treat hourly training as an unknown with a cap, and measure the first run before scaling. |
Run this check tonight
- Decide first whether the fine-tune would change your prompts or only the model behind them.
- If only the model, work out your input to output ratio and see which side of 6:1 you sit on.
- Put the tuned model's inference rate next to the frontier model you would otherwise run.
- Multiply the rate difference by a year of your call volume before deciding.
- Check whether the model you fine-tuned is still the one you would choose today.
Where fine-tuned gpt-4.1 stops being cheaper
Illustrative example
Fine-tuned gpt-4.1 bills $3.00 input and $12.00 output per million. Base gpt-5.4 bills $2.50 and $15.00. Both are standard rates read off OpenAI's pricing page on 2026-08-05, without the data-sharing inference discount that page offers. The gpt-5.4 rates match this price book exactly and the fine-tuned rates sit outside it entirely. The tuned model is dearer on input and cheaper on output. Token shapes below are modelled.
The 6:1 crossover answers one question: swap the model, keep the prompts. It doesn't answer the question people actually ask, which is whether to fine-tune so they can stop sending the context. Those are different comparisons and the same two rate cards give opposite answers, $0.0720 against $0.0650 one way and $0.0180 against $0.0650 the other. Work out which question you're asking before you use either number, because the arithmetic is easy and picking the wrong comparison is the mistake that actually gets made.
Every number, with its confidence and source
| Figure | What it means | Confidence | Source |
|---|---|---|---|
| $3.00 and $12.00 per million | fine-tuned gpt-4.1 inference rates, against base gpt-5.4 at $2.50 and $15.00 | provider-reported | Read off OpenAI's pricing page at developers.openai.com/api/docs/pricing on 2026-08-05, from the fine-tuning section, at standard rates without the data-sharing inference discount. This site's price book carries no gpt-4.x row of any kind, so these fine-tuned rates sit outside it and stand on the provider's page alone. The base gpt-5.4 figures of $2.50 and $15.00 on the same page do match the price book's row effective 2026-07-02 exactly. Nothing here is aggregated or recalculated. |
| 6 to 1 | input to output token ratio at which fine-tuned gpt-4.1 and base gpt-5.4 cost the same | calculated | Setting 3.00i + 12.00o equal to 2.50i + 15.00o per million gives 0.50i = 3.00o, so i = 6o. Checked at three points: at 2:1 the tuned model costs $18.00 against $20.00, at 6:1 both cost $30.00, at 10:1 the tuned model costs $42.00 against $40.00. Rates are provider-published, the ratios are modelled. |
What a generic answer can’t know
Both rate cards are public and the crossover is arithmetic anyone can do. What decides it: your own input to output ratio, which is a property of your traffic that no pricing page contains. It also moves: add retrieval and the ratio climbs, tighten a prompt and it falls, and a fine-tune that made sense at 3:1 quietly stops making sense at 8:1 without anything announcing it. Culpa prices every call from a versioned price book in exact decimal and keeps the token shape alongside the cost, so the ratio is a number you have rather than one you assume, and the comparison can be re-run against the traffic you actually served rather than the traffic the business case imagined.
Questions founders ask next
Can you fine-tune GPT-5 models?
Not according to OpenAI's pricing page, read on 2026-08-05. The fine-tuning section lists o4-mini, gpt-4.1 in three sizes, gpt-4o in two, and three legacy models. No GPT-5 family model appears in it, so a fine-tune means running a prior-generation model.
Is a fine-tuned model cheaper than a frontier base model?
It depends on your token shape. Fine-tuned gpt-4.1 at $3.00 and $12.00 per million is dearer than base gpt-5.4 at $2.50 and $15.00 on input and cheaper on output, and they cross at an input to output ratio of exactly 6:1. Below that the tuned model wins on rates, above it the base model does.
What does fine-tuning training actually cost?
It varies by model, and one of them isn't token-based at all. OpenAI lists o4-mini fine-tuning at $100 per hour, while gpt-4.1 is $25.00 and gpt-4.1-nano $1.50 per million training tokens. Hours track dataset size and epochs only loosely, so treat a first o4-mini run as a measurement rather than an estimate.
What is usually missing from a fine-tuning business case?
Inference. Training is one charge and inference bills on every call for the life of the deployment, so a rate gap of a few dollars per million outweighs the training run quickly. The other omission is the frontier model you stop being able to use, which keeps improving and repricing without you.
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.
Change one base URL.
Or drop in the Python or TypeScript library.
Find your most expensive conversation.
In the first session, not the first week.
Cost your next feature before you ship it.
Why the bill went up
Example dashboardCalls 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
Most expensive users
Next week forecast
Graded against reality. Accuracy shown as results land.
Keep reading
Sources: OpenAI API pricing, including fine-tuning, Anthropic pricing. Last reviewed 2026-08-05, rates effective 2026-07-02. Plain text version.