Self-Hosting LLMs: The Full Cost
On this page
The Slide That Only Shows the GPU
The self-hosting pitch always opens with the same slide: the GPU price divided by the tokens it can serve, set against the API’s per-token rate. The arithmetic shows the GPU winning by a wide margin, and the conclusion writes itself: why rent the tokens when you can own the machine?
The slide is not wrong; it is incomplete. The GPU is one line item in a system that includes power, cooling, networking, storage, redundancy, and the people who keep it running. A per-token comparison that counts only the hardware is the same category of error the price-list post warns about: a number describing no actual purchase.
This post is the full invoice: the line items the slide omits, the utilisation math that decides everything, and the honest comparison against the API.
What Does Self-Hosting Actually Cost?
Hardware: the GPUs, the servers around them, the storage for model weights and data. The facility: power, cooling, rack space (costs that run with every GPU hour, serving or idle). The network: bandwidth and connectivity that make the endpoint reachable. The redundancy: the second machine, the backup power, the failover path (a single GPU is a single point of failure, and production means the failure is planned for).
Then the people: the engineers who provision, patch, monitor, and fix. The people cost never appears on the slide and always appears on the invoice, and it does not scale down when the traffic does.
And the opportunity cost: capital tied up in hardware that could have gone to the product. The GPU is a depreciating asset; the product is the thing that compounds.
Utilization: The Number That Decides Everything
The whole self-hosting economics collapse into one number: utilisation, the fraction of the GPU’s capacity actually serving tokens. A GPU at full utilisation is the slide’s arithmetic, and it wins. A GPU at a fraction is the slide’s arithmetic divided by that fraction, and it loses.
Utilisation is decided by the traffic pattern, not the engineering. A steady, predictable, always-on workload can keep a GPU hot; a bursty, spiky, seasonal workload cannot: the capacity covering the peak idles through the trough. The batch post’s argument about pay-per-use applies here with hardware: the spiky workload is exactly the one that should rent.
And the utilisation math includes maintenance windows, failed runs, redeploys: every hour the machine is not serving is an hour the slide assumed it was. The honest utilisation number is always lower than the planned one.
When Does Self-Hosting Win?
Three conditions, all necessary. Utilisation high and steady: the workload predictable enough to keep the hardware hot. Scale large enough to amortise the people: the engineering team spread across enough tokens that its cost per token is small. And requirements that demand it: data that cannot leave the building, latency that cannot tolerate a network, control the API cannot offer.
The third condition is the one that actually decides most self-hosting decisions: the requirements, not the arithmetic. Teams self-hosting for compliance or control are not comparing token prices; they are buying a property the API does not sell.
And the honest test is the same as every cost decision on this blog: model the full cost, people and idle time included, against the API at actual volume. The slide’s arithmetic is the starting point, never the conclusion.
When Is Self-Hosting the Wrong Answer?
When the workload is spiky, small, or still unproven. Bursty traffic pays for idle hardware; small traffic cannot amortise the people; unproven traffic is a bet made with capital instead of tokens. Pay-per-use exists precisely for these workloads, and the batch post’s rule applies: unproven workloads deserve pay-per-use.
It is also wrong when the model landscape is moving fast. Hardware bought for this quarter’s model is wrong for next quarter’s: the API customer switches models with a config change while the self-hoster runs a procurement.
And it is wrong when the team is not staffed for operations. The self-hosted stack is a production system with all the production responsibilities: monitoring, patching, on-call. Buying the GPU without buying the operations is how the slide’s savings become the invoice’s surprise.
Related Articles
What Serverless LLM Inference Actually Costs at Enterprise Volume
The break-even between per-token serverless and a dedicated GPU endpoint: the one formula, the three mistakes, and how to measure the line for your own traffic.
The Cheapest Request Is the One That Can Wait
Urgency is what the real-time rate buys. Splitting inference traffic by deadline (interactive, asynchronous, batch) and what each lane saves.
How to Read an LLM Price List
Reading an LLM price list like a contract: the rows behind the headline (cached tokens, batch tiers, context surcharges) and the three rules for honest comparison.