Skip to content

Total Cost of Ownership

Most software decisions are made with a partial cost picture. The number on the proposal, the line item in the budget, and the estimate in the planning meeting almost always reflect implementation cost: what it takes to ship the first version. Total cost of ownership (TCO) is the discipline of looking at all of it: the implementation, the operation, the maintenance, the eventual replacement, and the obligations that come with the system existing at all.

The concept was popularized by Gartner in the 1980s for evaluating PC fleets, but the framing applies cleanly to software.1 Whether the question is "should we build this," "should we buy this," or "is this old system still worth keeping," TCO is the right unit of analysis.

What Usually Gets Missed

The hidden share of software TCO is typically large. Some of the costs that consistently fall outside the original estimate:

  • Hosting and infrastructure. Cloud bills compound monthly for the life of the system. A back-of-the-envelope check is "what will this cost us over five years?" The answer is almost always larger than people expect.
  • Licenses and vendor subscriptions. Every SaaS the system depends on, every observability tool, every CI/CD service, every analytics platform. Each is small. The sum is not.
  • Security and compliance. Penetration tests, vulnerability scanning, SOC 2 audits, ongoing patching, access reviews. These costs scale with the system's footprint and rarely shrink.
  • Support and operations. On-call coverage, customer support load, billing disputes, account provisioning, and the staffing required to handle them. Often the largest line item over time.
  • Documentation, training, and onboarding. Every new hire who has to learn the system, every customer who needs help, every internal team that has to be educated when the system changes. This is real cost paid in human time.
  • End-of-life cost. Decommissioning, data migration, archiving for legal retention, customer notification. Easy to forget at the start, expensive at the end.

A useful exercise is to ask: "if we knew at decision time what we know now, would we have priced this differently?" The honest answer is usually yes, by a wide margin.

Why Software TCO Is Especially Hard

Three properties of software make its total cost particularly difficult to predict:

  • Long, indeterminate lifetimes. A "temporary" tool routinely runs for ten years. A flagship product that was meant to last forever can be replaced in two. Cost projections that depend on lifetime assumptions are nearly impossible to calibrate.
  • Cost that scales with use. Unlike a building or a vehicle, software's cost often grows with success: more users, more data, more integrations, more support load. A feature that worked at one thousand users may need a rewrite at one million.
  • Costs paid by people who did not make the decision. The team that ships often hands the operational load to a different team, sometimes years later. Without explicit hand-off accounting, the original decision is never tied back to the cost it produced.

This is why "we built it cheap" is rarely a defensible claim until at least three years of operating cost are on the books.

What This Looks Like in Practice

A few habits make TCO operational rather than rhetorical:

  • Estimate in lifetime cost, not first-version cost. When proposing work, attach a rough multi-year cost band, not just a sprint estimate.
  • Track operational cost per system. Tagging cloud spend, license cost, and support effort to specific systems makes TCO visible after the fact, which is the only way it becomes visible before the next decision.
  • Ask "what will it cost to leave." For any major dependency, ask up front what the exit cost looks like. Most lock-in is discovered, not negotiated.
  • Treat decommissioning as part of the project. When new systems replace old ones, the work to shut down the old one is part of the cost of the new one.
  • Compare alternatives on the same time horizon. Build vs buy comparisons that pit a one-time implementation cost against an annual subscription are not real comparisons. Both should be normalized to the same number of years.

Expensive lesson

The build cost is only one part of the software cost. The decision-relevant number is what the system will cost to exist over its useful life, including the cost of eventually retiring it.

See also: Software Is Economics, Estimates Are Forecasts, Perfection Is Irrational, Owning vs Licensing, Maintainability, Technical Debt.



  1. The Total Cost of Ownership concept was introduced by Gartner Group in 1987 as a model for evaluating the lifetime cost of personal computer fleets. It has since become a standard framework for any infrastructure or software acquisition decision, and is the formal name for the intuition that "the sticker price is not the price."