Self-hosting looks cheap because the marginal cost per token appears to be near zero once the hardware is paid for. The comparison only becomes honest when you price utilisation, idle time, operations and the engineering hours that keep inference running.
Self-hosting wins when:
monthly_gpu_cost + ops_cost < monthly_api_spend
The hard part is ops_cost. It is not zero, and it is not small. It includes the engineer time to own the inference stack, the cost of spare capacity for failover, and the opportunity cost of that attention.
| Model | Input / 1M | Output / 1M | Blended 3:1 |
|---|---|---|---|
| DeepSeek V4.1 Flash | $0.30 | $1.20 | $0.52 |
| GPT-6 Luna | $0.10 | $0.50 | $0.20 |
| Gemini 3.5 Flash-Lite | $0.30 | $2.50 | $0.85 |
| Claude Haiku 4.5 | $1.00 | $5.00 | $2.00 |
| DeepSeek V4 Pro | $1.32 | $3.96 | $1.98 |
| GPT-6 Astra | $10.00 | $50.00 | $20.00 |
A single modern GPU node rented at market rates costs on the order of a few thousand dollars a month. To beat that with API spend, a workload needs to consume roughly:
break-even tokens ≈ (gpu_cost + ops_cost) / blended_price_per_token
At a blended $0.20 per million tokens and a $3,000 monthly all-in node cost, break-even sits near 15000 million tokens per month — around 5787 tokens per second sustained, twenty-four hours a day.
That is a very large workload. Most teams that assume self-hosting is cheaper are operating at one or two percent of that volume.
API pricing is per token and scales to zero when nobody uses your product. Self-hosted hardware bills whether or not anyone is using it. At 10% utilisation, the effective cost per token on owned hardware is ten times the nominal figure. Overnight troughs, weekend lulls and launch-day spikes all cut against you, because capacity must be sized for peak while cost is amortised over average.
Exhaust the cheap levers first: routing, caching, truncation, batch. Those reduce spend without capital or headcount. Only then compare the residue against hardware. If the residue is still large and steady, self-hosting becomes a real conversation.
Model both sides with your actual token volume in the calculator.