Open the workspace
Economics of custom models

The ROI of post-training: when a fine-tune pays back

A cash-flow model for fine-tuning ROI: data, training, eval, serving and upkeep vs savings and quality gains, with payback, NPV and Monte Carlo.

The return on investment of post-training is the value a fine-tuned model creates (lower inference cost, fewer failures, more revenue) set against what it costs to build and keep running (data, training compute, evaluation, engineering, monitoring and retraining). A fine-tune is a capital project with an upfront cost and a stream of monthly savings, and it can be analysed like one: with a cash-flow model, a payback period, a net present value, and a sensitivity analysis that shows which assumptions the decision actually rests on. This article builds that model for a concrete case, derives the payback and optimal-dataset-size formulas, and runs a Monte Carlo over the uncertain inputs. The result is a decision rule more specific than "fine-tune at scale": under our assumptions the decision hinged on volume, the cost of a failure and whether the fine-tune actually beats the baseline, and a cheap pilot that measures the last of these was worth more than any other step.

A fine-tune is an investment, not a line item#

The other articles in this series compare options at a point in time: the quality-adjusted cost per task of a fine-tuned model against a frontier API, and the monthly TCO of serving it. Both treat the training project as a fixed cost amortised over twelve months. That hides the questions a budget owner asks: how much do we spend before we see any return, how many months until we are even, what is it worth over the life of the model, and what has to be true for it to be worth doing at all. Answering them needs the time dimension, because costs come first and savings arrive gradually as traffic moves over.

Sculley et al. (2015) are the standard warning against counting only the build: machine-learning systems accumulate maintenance cost through data dependencies, configuration and feedback loops, and that cost recurs. In the model below, recurring costs (monitoring time and periodic retraining) turn out to move the payback period more than the training compute does.

The cash-flow model#

Costs

The upfront investment for a fine-tune trained on labelled examples at each, with training compute (including hyperparameter sweeps), evaluation (building a held-out set and running it) and engineer-months at loaded monthly cost , is

Each month after launch carries monitoring effort FTE, a serving fixed cost , and a retraining cost every months to keep up with drift and base-model upgrades.

Benefits

Per task, the fine-tune saves the difference in inference cost against the baseline, and the difference in failures , where is the success rate and the cost of a failed task, exactly as in the quality-adjusted model. If quality also moves revenue (conversion, retention), add dollars per task per point of success rate. Retiring the baseline also removes its fixed cost . With tasks in month , ramping linearly to over months, the net cash flow is

Payback and NPV

The payback period is the first month at which cumulative net cash turns positive, . If monthly net cash at full volume is a constant (with retraining spread evenly) and the ramp is linear over months, the ramp months jointly deliver less than full months would, so

The net present value over a horizon of months at monthly discount rate is . We use months, because a fine-tune rarely outlives two base-model generations without being rebuilt, and 10% a year.

How quality depends on data

The success rate is not a constant you choose; it rises with data and saturates. We model it as a saturating power law, the shape that scaling studies find for loss against data (Kaplan et al., 2020) and that Hernandez et al. (2021) found for fine-tuning on top of pretraining, where pretraining acts like a multiplier on the fine-tuning set:

is the prompted model before training, the ceiling the model class can reach on this task, a scale constant and the rate. These are assumptions to be fitted on your own learning curve: train on 250, 500, 1,000 and 2,000 examples, evaluate each, and fit the three parameters. LIMA (Zhou et al., 2023) is a reminder that the curve can be steep early when data is carefully curated: 1,000 curated prompt-response pairs were enough to teach a strong base model specific response formats.

Setting the derivative of NPV with respect to to zero gives the optimal dataset size. Ignoring the ramp, with annuity factor :

The left side is the present value of one more example's quality gain across all future tasks; the right side is its price. Data is worth buying until the two are equal, so higher volume and costlier failures justify larger datasets, and the optimum scales as .

Assumptions for the base case#

The base case continues the ticket-triage task from the quality-adjusted cost model: the baseline is a frontier API, the fine-tune a post-trained 8B open model served per token. All values are illustrative assumptions.

ItemBase valueRange tested
Volume , ramp 300,000 tasks/month, 3 months50k to 1M; 1 to 6 months
Baseline inference , success , fixed $0.0066, 0.92, $1,500/month ×0.5 to ×2; 0.88 to 0.95
Fine-tune inference , serving fixed $0.000088, $500/monthfixed
Failure cost ; revenue per point $1.50; $0$0.30 to $5
Data: , 4,000 examples at $2.50 (labelling and review)$0.50 to $10
Training compute , evaluation $3,000 (LoRA SFT plus preference stage, with sweeps); $4,000fixed
Engineering , loaded cost 1.5 FTE-months, $22,000/month0.75 to 3 FTE-months
Monitoring ; retraining every 0.15 FTE; $8,000 every 4 months0.05 to 0.4 FTE; $3k to $25k
Quality curve 0.80, 0.975, 300, 0.8 0.93 to 0.985; 0.5 to 1.0

Under this curve the fine-tune reaches 0.867 at 250 examples, 0.895 at 500, 0.921 at 1,000 (level with the baseline), 0.941 at 2,000, 0.954 at 4,000 and 0.968 at 16,000.

Worked example by hand#

Upfront: data , compute , evaluation , engineering : . Two-thirds of it is people.

Per task: inference saving ; quality saving ; in total . The quality term is eight times the inference term. At 300,000 tasks a month that is ; add the baseline's fixed cost no longer paid, subtract serving, monitoring and average retraining: a month.

The month-by-month model, with the retraining spend landing in months 4, 8 and so on, gives 5.0 months. Over 24 months cumulative net cash reaches $246,000 and the NPV at 10% a year is $217,000.

Results#

Volume decides whether it pays back at all

Cumulative net cash flow of a fine-tune vs staying on the frontier API -$100k $0 $100k $200k $300k $400k $500k $600k $700k 0 3 6 9 12 15 18 21 24 months after the project starts cumulative $ (undiscounted) break-even 50k tasks/month 150k tasks/month 300k tasks/month 600k tasks/month
Cumulative undiscounted net cash flow of the fine-tune against staying on the frontier API, for four monthly volumes, all other inputs at base. Small steps every four months are retraining.

At 600,000 tasks a month the project pays back in 2.6 months with a 24-month NPV of $578,000. At 300,000, 5.0 months. At 150,000, 13.0 months and an NPV of $37,000, a marginal investment. At 50,000 it never pays back: the monthly benefit of $2,900 does not cover $4,300 of net recurring cost (monitoring, serving and retraining, less the baseline's fixed cost no longer paid), so cumulative cash falls further every month and the NPV is −$83,000. Below some volume a fine-tune is a running loss, not a slow payback, because its recurring costs do not shrink with traffic. In this model that volume is tasks a month.

How much data to buy

24-month NPV vs size of the training set -$200k -$100k $0 $100k $200k $300k $400k 100 300 1k 3k 10k 30k labelled training examples (log) NPV at 10% a year best 45,041 best 18,537 best 8,469 $0.5 per example $2.5 per example $10 per example
24-month NPV as a function of training-set size for three prices per labelled example, assuming the model is not deployed if it would lose money (so NPV is floored at minus the upfront cost). Dots mark the optimum.

Below about 1,000 examples the fine-tune does not beat the baseline and is not deployed. Above that, NPV rises steeply and flattens. The optimum sits at about 45,000 examples at $0.50 each (NPV $370,000), 18,500 at $2.50 ($316,000) and 8,500 at $10 ($227,000). The closed-form condition gives 47,000, 19,000 and 8,700 for the same three prices; the small gap is the adoption ramp, which the formula ignores. Two practical readings follow. First, at realistic labelling prices the value-maximising dataset is several times larger than the minimum that beats the baseline, because each point of success rate is worth , here about $98,000 in present value. Second, the NPV curve is flat near its peak: 4,000 examples at $2.50 already captures $217,000 of the $316,000 optimum, and the remaining gain is less certain than the curve suggests. Buy data in rounds, refit the learning curve after each, and stop when the measured marginal gain falls below the formula's threshold.

What the payback period rests on

What moves the payback period 0 4 8 12 16 20 24 months to payback (24.5 = not within two years) Volume 50k to 1M tasks/month never Failure cost $0.30 to $5 never Baseline success 0.88 to 0.95 never Quality ceiling 0.93 to 0.985 never Monitoring 0.05 to 0.4 FTE Engineering 0.75 to 3 FTE-months Adoption ramp 1 to 6 months Data $0.50 to $10 per example Retrain cost $3k to $25k Frontier input/output price x0.5 to x2 base 5.0 input at low end at high end
One-at-a-time sensitivity of the payback period. Bars reaching the right edge mean no payback within two years ("never" marks the end of the range that causes it).

Four inputs can make the project fail outright: volume (no payback at 50,000 tasks a month; 1.9 months at a million), failure cost (never at $0.30; 2.0 months at $5), baseline success rate (2.6 months if the frontier API only reaches 0.88; never if it reaches 0.95), and the quality ceiling of the fine-tune (never at 0.93; 4.2 months at 0.985). Every other input moves payback by a few months at most: monitoring effort from 4.4 to 8.7 months, upfront engineering from 3.8 to 7.4, the adoption ramp from 3.7 to 6.7, data price from 4.5 to 7.0, retraining cost from 4.7 to 6.1. The frontier API's own price, halved or doubled, moved payback only from 5.3 to 4.5 months, because the inference saving is a small part of . Training compute was too small to include: at $3,000 it is 6% of the upfront cost.

Notice that three of the four decisive inputs (failure cost, baseline success and the fine-tune's ceiling) are measurable before the project starts, with an evaluation set and a few small training runs. Volume is usually known.

Uncertainty and the value of a pilot

We drew 20,000 scenarios (seed 2026) at each of three known volumes, sampling the uncertain inputs over their ranges: failure cost log-uniform from $0.30 to $5, quality ceiling and rate, baseline success, engineering, data price, monitoring, retraining cost and ramp. In each scenario the team deploys only if the fine-tune's steady-state monthly net cash is positive; otherwise it abandons after spending .

Probability the fine-tune has paid back by month m (20,000 scenarios) 0 20 40 60 80 100 0 3 6 9 12 15 18 21 24 months after the project starts scenarios paid back (%) 150k tasks/month 300k tasks/month 1000k tasks/month
Share of sampled scenarios in which the fine-tune has paid back by each month, for three monthly volumes. The curves plateau where the remaining scenarios never pay back because the fine-tune did not beat the baseline by enough.

At 300,000 tasks a month, 22% of scenarios paid back within 6 months, 34% within 12 and 42% within 24; in the other 58% the fine-tune was not enough better than the baseline to cover its recurring costs and was abandoned. The NPV distribution was strongly skewed: 10th percentile −$77,000, median −$36,000, 90th percentile $506,000, mean $107,000. At a million tasks a month, 71% paid back within two years, the median payback was 5.1 months and the mean NPV $715,000. At 150,000, only 23% paid back and the mean NPV was −$4,800.

A positive mean with a negative median is the signature of a bet whose downside is bounded and whose upside is large, and it is exactly the situation in which buying information first pays. Suppose an $8,000 pilot (a few hundred examples, a small training run and the evaluation set) reveals whether the full project would clear the bar, and its work is reused if the project proceeds. Then abandoned scenarios lose $8,000 instead of about $58,000. In the simulation that raised the mean NPV at 150,000 tasks a month from −$4,800 to +$34,000, at 300,000 from $107,000 to $136,000, and at a million from $715,000 to $730,000. The pilot turns a marginal project into a positive one at moderate volume and is cheap insurance at high volume.

How ROI estimates go wrong#

Counting only the token saving. In this model the inference saving was one-eighth of the per-task benefit. An ROI case built on token prices alone either understates a good project or, if the fine-tune is less accurate than the baseline, approves a bad one. Price failures.

Assuming the quality gain instead of measuring it. The Monte Carlo's main finding is that whether beats by enough decides the project. Published comparisons (Bucher and Martini, 2024; Hsieh et al., 2023) show fine-tuned small models often win on narrow tasks, but "often" is not your task. Measure it with an evaluation set large enough to detect the gap you need; see how many eval examples.

Leaving out recurring costs. Monitoring and retraining were the costs that made low-volume projects lose money every month. A business case with no line after launch is incomplete.

Ignoring the ramp. Traffic moves to a new model gradually, behind feature flags and A/B tests. Each month of ramp adds about half a month to payback.

Comparing against a moving baseline as if it were fixed. If the baseline API improves during the project, rises and the benefit shrinks. The tornado shows that a baseline at 0.95 instead of 0.92 erases the return. Re-run the case at each retraining point against the current baseline.

Decision guide#

SituationRecommendation
Volume below the level where covers recurring costsDo not fine-tune for cost; consider it only for control, latency or data residency
Moderate volume, quality gain unknownRun a pilot: small dataset, learning curve, evaluation against the baseline; decide after
High volume, failures cost dollars, pilot shows a clear gainFine-tune; size the dataset with the optimum condition and buy data in rounds
Quality gain small, failures cheapFine-tune only if the token saving alone covers recurring costs
Baseline likely to improve quicklyShorten the horizon in the NPV and require faster payback

Implementation sketch#

def q_of_n(n, q0=0.80, qmax=0.975, n0=300, alpha=0.8):
    return qmax - (qmax - q0) * (1 + n / n0) ** (-alpha)

def cash_flows(N=300_000, ramp=3, k_b=0.0066, q_b=0.92, F_b=1500, k_t=0.000088, F_t=500,
               c_f=1.50, n=4000, c_ex=2.50, compute=3000, eval_cost=4000, eng_months=1.5,
               fte=22_000, monitor=0.15, retrain=8000, retrain_every=4, T=24):
    beta = (k_b - k_t) + (q_of_n(n) - q_b) * c_f          # $ saved per task
    flows = [-(n * c_ex + compute + eval_cost + eng_months * fte)]
    for t in range(1, T + 1):
        N_t = N * min(1, t / ramp)
        flows.append(N_t * beta + F_b - F_t - monitor * fte - (retrain if t % retrain_every == 0 else 0))
    return flows

def payback_months(flows):
    cum = 0.0
    for t, x in enumerate(flows):
        if t and cum + x >= 0:
            return t - 1 + (-cum) / x
        cum += x
    return float("inf")

def npv(flows, annual_rate=0.10):
    r = (1 + annual_rate) ** (1 / 12) - 1
    return sum(x / (1 + r) ** t for t, x in enumerate(flows))

f = cash_flows()
print(round(payback_months(f), 1), round(npv(f)))      # about 5.0 months, about 217,000

The function is deliberately small enough to put in a planning document. The inputs that decide the answer, , the learning curve and , come from evaluation; in POFE a training run reports the held-out success rate next to the baseline's on the same set, which is the number this model needs most.

Further reading#

Sculley et al. (2015) is the classic account of the recurring costs of machine-learning systems. Kaplan et al. (2020) and Hernandez et al. (2021) establish the power-law behaviour behind the learning-curve model, the second specifically for fine-tuning. Zhou et al. (2023) show how far a small curated dataset can go. Hsieh et al. (2023), Bucher and Martini (2024) and Le Scao and Rush (2021) are evidence on when small trained models beat large prompted ones and what a prompt is worth in data. For the inputs to , see cost per task and the quality-adjusted comparison; for the training methods themselves, SFT, LoRA and DPO.

Frequently asked questions#

How do I calculate the payback period of a fine-tune?

Add up upfront costs (data, compute, evaluation, engineering), compute the monthly net benefit at full volume (per-task savings times volume, minus monitoring, serving and retraining), and divide. With a linear adoption ramp over μ months, payback ≈ I0 / B + (μ − 1) / 2.

What dominates the cost of a fine-tuning project?

In the illustrative model on this page, engineering time was two-thirds of the $50,000 upfront cost and training compute about 6%. After launch, monitoring and periodic retraining were the costs that decided whether low-volume projects paid back at all.

What volume do I need for fine-tuning to pay off?

Enough that per-task savings times volume exceed recurring costs. In the model, a triage fine-tune paid back in 5 months at 300,000 tasks a month, 13 months at 150,000, and never at 50,000.

How many training examples should I buy?

Until the present value of one more example's quality gain equals its price. Under the stated learning-curve assumptions the NPV-maximising dataset was about 18,500 examples at $2.50 each and 8,500 at $10, several times the roughly 1,000 needed just to match the baseline.

Is a pilot worth it before a full fine-tuning project?

Usually. In the Monte Carlo, an $8,000 pilot that reveals whether the fine-tune beats the baseline raised the mean 24-month NPV at 150,000 tasks a month from about −$5,000 to +$34,000, because it caps the loss in scenarios where the project would fail.

References#

  1. D. Sculley, Gary Holt, Daniel Golovin, Eugene Davydov, Todd Phillips, Dietmar Ebner, et al. (2015). Hidden Technical Debt in Machine Learning Systems. papers.nips.cc/paper_files/paper/2015/hash/86df7dcfd896fcaf2674f757a2463eba-Abstract.html
  2. Jared Kaplan, Sam McCandlish, Tom Henighan, Tom B. Brown, Benjamin Chess, Rewon Child, Scott Gray, Alec Radford, Jeffrey Wu, Dario Amodei (2020). Scaling Laws for Neural Language Models. arxiv.org/abs/2001.08361
  3. Danny Hernandez, Jared Kaplan, Tom Henighan, Sam McCandlish (2021). Scaling Laws for Transfer. arxiv.org/abs/2102.01293
  4. Chunting Zhou, Pengfei Liu, Puxin Xu, Srini Iyer, Jiao Sun, Yuning Mao, Xuezhe Ma, Avia Efrat, Ping Yu, Lili Yu, et al. (2023). LIMA: Less Is More for Alignment. arxiv.org/abs/2305.11206
  5. Cheng-Yu Hsieh, Chun-Liang Li, Chih-Kuan Yeh, Hootan Nakhost, Yasuhisa Fujii, Alexander Ratner, Ranjay Krishna, Chen-Yu Lee, Tomas Pfister (2023). Distilling Step-by-Step! Outperforming Larger Language Models with Less Training Data and Smaller Model Sizes. arxiv.org/abs/2305.02301
  6. Martin Juan José Bucher, Marco Martini (2024). Fine-Tuned 'Small' LLMs (Still) Significantly Outperform Zero-Shot Generative AI Models in Text Classification. arxiv.org/abs/2406.08660
  7. Teven Le Scao, Alexander M. Rush (2021). How Many Data Points is a Prompt Worth?. arxiv.org/abs/2103.08493

Bring a model and a metric.

Tell us what the model should get better at. A post-training engineer replies within one business day with a plan, a compute estimate and an eval design.